最短時間で upscaler を使って高品質画像を生成する方法 stable diffusion

フルタニ

こんにちは、フルタニです。放送局で番組作りをしてました。 upscaler を書きます。

AIで高画質な画像を生成しようとしたら、微妙に使えない絵ができて困ったことありませんか。

画像生成AIの弱点は絵が崩れやすいこと。

ラーメンが食べられなかったり、指先が変な形になったりします。

こうなると描き直すしかありません。

確実な方法は小さな画像をいくつも生成して、その中から使えない絵を間引きすること。

使える絵がガチャできたら修正を加えたうえで拡大することです。

高画質な画像を作るにはupscalerが役に立ちます。

upscalerは小さな画像を大きなサイズに拡大する機能です。

高品質な画像を効率的に生成するには、なるべく少ない回数で小さな画像を完成させ、それを拡大するのが早道です。

upscalerを効率的に使う方法をご案内します。

洗練された画像を生成する方法

ざっくりした流れは

  • プロンプト(指示文をつくる)
  • 画像を小さなサイズで複数生成する
  • その中から気に入った絵を選ぶ
  • 気に入った絵をもとにさらに複数の小さな画像を生成する
  • その中からさらに気に入った絵を選ぶ
  • 気に入った絵をアップスケールする
  • これで気に入った絵が超精細画像で手に入ります

それでは行ってみましょう。

stable diffusion初心者の方は別記事で設定をお願いします。

ブラウザ上で使い倒したい人はGoogleColab の設定方法から

自分のPCに環境を作って使い倒したい人はAUTOMATIC1111の使い方を参照ください。

Stable Diffusion

画像を生成する

Stable Diffusion webUIの画面が下記のように立ち上がりました。

WebUIにプロンプトとネガティブプロンプトを入力します。

必要に応じてモデルやLoRAを指定します。

Batch countは8にしてGenerateボタンを押します。

ちなみに[Sampling Steps]は18とします。

すると、画像が8枚生成されます。

メモリーエラーが出る場合は、メモリー環境を見直すか、画像サイズを512×512以下に下げて再度Generateボタンを押すと回避できる場合があります。

画像サイズを上げすぎるとメモリに負担がかかるので作業効率が下がります。

なので、小さな画像(512×768)をいくつか作ってその中から拡大する画像を選ぶことをおすすめします。

画像が8枚生成されるので好みの画像を選択します。

気に入った画像がなければ操作を繰り返します。

絞り込んだ画像をアップグレードする

気に入った絵が見つかったら画像をクリックして一枚絵の状態にします。

サイコロマークの横にある【リサイクルマーク】をクリックします。

すると、生成された画像が持つ固有番号が[seed値]の枠に表示されます。

Batch count とBatch sizeを1にします。

Cromeブラウザーのタブを右クリックして[タブを複製]を選択します。

するとWebUI画面が複製されます。

これを繰り返し、三つのタブをつくります。

三つのタブをつくる理由は、

  • 最初のタブには複数枚の画像を残しておく
  • 二つ目のタブには選んだ一枚を使って修正を施す
  • 3枚目のタブは最終的に残った画像をアップスケールする

以上使い分けるためです。

あらかじめ機能を分けておくことで、やり直しの際などの時間を節約することができます。

ちなみに一度に起動できるのは一つのタブだけです。

複製したタブの[Generate]ボタンの下にあるチェックマーク[Styles]アイコンをクリックします。

これで直前に生成したパラメーター(プロンプトなど)が新規タブにそれぞれペーストされます。

Cromeブラウザーのタブが三つ用意され、それぞれの内容が同じになっていることを確認します。

一枚目のタブの[seed値]をコピーして、二枚目と三枚目の[seed値]にペーストします。

選んだ絵をさらに洗練する

二枚目のタブを選択し、[Script]から[x/y/z prot]を選択します。

その下段にある[X type]はSteps に、[X value]は12-21とします。

これで一つの[seed値]から12から21までの10枚が生成されます。

[Generate]をクリックします。

すると元画像と微妙に似た絵が横並びになって10枚生成されます。

生成された画像を一つずつクリックして内容を確認します。

人物画像を生成する場合のチェックポイントは指先と表情です。

お気に入りの一枚が見つかればそれでOKです。

見つからなければGenerateを繰り返しましょう。

生成した画像を高画質化する

三つ目のタブを開きます。

二つ目のタブの[Sampling Steps]の数値をコピペします。

[Hirez.fix]にチェック。

すると、横に「resize from 数値 to 拡大数値」が表示されます。

  • [Hirez steps]は0
  • [Denoise strength]は0.5
  • [Upscale by]は2

以上を設定します。

次に画像を拡大する時に使用するUpscslerを選びます。

Upscslerの初期値は[Latent]です。クリックすると数多くの選択枝が表示されるのでお好みを選びます。

生成する画像がUpscslerにより変わること。

選んだ数値により絵の仕上がりが変わるのでお好みで選ぶパラメーターです。

数値は0.5付近が無難です。

数値を上げると絵が壊れます。

初めての人は[R-ESRGAN 4X+]を選択[Denoise strength]は0.5にしてGenerateをクリックします。(慣れてきたらいろいろ試してみてください)

これで小さな画像(512×768)で始めた画像生成が1024×1536となって生成できました。

必要に応じてダウンロードして使いましょう。

まとめ

高画質でかつ崩れのない画像を生成するには

  • 小さなサイズで複数生成する
  • その中から気に入った絵を選ぶ
  • その絵をもとにさらに複数生成する
  • その中から気に入った絵をUpscslerを使ってアップスケールする

以上のように

小さく産んで大きく育てるのが効率的だということがお分かりいただけたかと思います。

ぜひお試しください。