🎨

Stable Diffusionのimg2imgで好みの絵を作成するまでの過程

2022/08/25に公開
2

イラストの生成方法なので技術情報サイトで公開すべきか迷いましたが、ローカル環境では生成手順にコマンドプロンプトの操作を必要とするためこちらにも投稿します。

はじめに

Stable Diffusionにはテキストから画像を生成するtxt2imgと画像から画像を生成するimg2imgという機能が実装されています。今回はimg2imgを使用してある程度好みの絵柄になるまで試行錯誤を行った過程を記録したいと思います。

環境構築

私が使用しているグラフィックボードはVRAMが6GBしかないため、最低でも10GBのVRAMを必要とする下記リンク先の本家StableDiffusionは使用できません

https://github.com/CompVis/stable-diffusion

代わりにフォークされた以下のStableDiffusionを使用します。

https://github.com/basujindal/stable-diffusion

こちらのリポジトリをGit経由でClone or 直接ダウンロードして、本家に記載されている手順に従って環境構築を行ってください。(より具体的な環境構築手順を知りたい方や環境構築に不慣れな方はこのページの下部に記載されてあるWebUI版を参考にしていただけるといいかと思います)

上記のStable Diffusionを稼働させるスペックのない方やスマートフォンの方はGoogle Collab上でStable Diffusionを使用することができます。下記サイトに手順が記載されてあります。

https://zenn.dev/karaage0703/articles/22ee47b71fab9c
https://www.reddit.com/r/StableDiffusion/comments/wv2msc/stable_diffusion_img2img_google_collab_setup_guide/

変換1

黒髪のジトっとした目の女の子が生成したかったので、まずはそれっぽい絵を用意しました。

Input A

promptを

a portrait of a cute girl,Girl with dark hair and wearing a school uniform, detailed face with gorgeous eyes, by mucha, by Range Murata, by Akihiko Yoshida, C95, C96, trending on pixiv, trending on Artstation

と設定してオプションを

--strength 0.5 --n_iter 2 --n_samples 5 --H 576 --W 768

で生成します

--strength 0.5

は変換のかかり具合を調整する部分です。このパラメータを調整することで

0.2~ 全体はほとんど変わらず顔の表情などディティールが変化する
~0.5 構図は大きく変わらないが絵柄やポーズが変化する場合が多い
~0.7 構図や絵柄が大きく変わる
といった具合で入力画像が変化します。上記の変化量はあくまで体感上の目安でpromptや変換対象の画像で異なります。


Output A1

Output A2

Output A3

他にも8つほど画像がありますが割愛します。

変換2

Output A1が最も破綻していないため

--strength 0.5

で再度変換をかけます


Output B

変換3

Output Bの不自然な部分を修正をしました。背後のスカスカ部分や、大きすぎる目、髪に絡まった赤いリボンをスポイトでガシガシ消します。

Input B

--strength 0.35 --n_iter 2 --n_samples 5 --H 576 --W 768

Strengthを0.35に変更し変換します。


Output C1

Output C2

Output C3

変換4

Output C2が好みだったので修正
服の襟を追加したりシワをスポイトでガシガシ消しました。


Input D

--strength 0.2 --n_iter 2 --n_samples 5 --H 576 --W 768

Strengthを0.2に変更し変換します。


Output D

結果


Before

After

ここでは省略していますが、各変換時には10枚程度生成して最も好みだと感じられた画像を選定しています。画像の選定は1分、修正は3分程度で済みました。
promptやStrengthを微調整すれば猫耳を生やしたり眼鏡を追加することもできそうです。

追記

2022/08/27 
環境構築手順の簡易的な説明、省かれた一部手順を追加しました。

2022/09/01 
https://rentry.org/GUItard
https://github.com/hlky/stable-diffusion
こちらでWebUI版が公開されています。VRAMが6GBの場合512x512のサイズしか出力できませんが、txt2imgとimg2imgを使用するためのGUIと簡易的なマスク機能やクリップ機能があるので解像度にこだわりの無い方はこちらの使用をお勧めします。
環境構築手順は上記リンクのGUIDE STARTに従ってください。

Discussion

TakashiAiharaTakashiAihara

有用な記事ありがとうございます。フォローしました!
すごく細かくて恐縮なんですが、VRM → VRAM ですね。

moskumosku

誤字ってました💦
ご指摘ありがとうございます