Stable Diffusionのimg2imgで好みの絵を作成するまでの過程
イラストの生成方法なので技術情報サイトで公開すべきか迷いましたが、ローカル環境では生成手順にコマンドプロンプトの操作を必要とするためこちらにも投稿します。
はじめに
Stable Diffusionにはテキストから画像を生成するtxt2imgと画像から画像を生成するimg2imgという機能が実装されています。今回はimg2imgを使用してある程度好みの絵柄になるまで試行錯誤を行った過程を記録したいと思います。
環境構築
私が使用しているグラフィックボードはVRAMが6GBしかないため、最低でも10GBのVRAMを必要とする下記リンク先の本家StableDiffusionは使用できません
代わりにフォークされた以下のStableDiffusionを使用します。
こちらのリポジトリをGit経由でClone or 直接ダウンロードして、本家に記載されている手順に従って環境構築を行ってください。(より具体的な環境構築手順を知りたい方や環境構築に不慣れな方はこのページの下部に記載されてあるWebUI版を参考にしていただけるといいかと思います)
上記のStable Diffusionを稼働させるスペックのない方やスマートフォンの方はGoogle Collab上でStable Diffusionを使用することができます。下記サイトに手順が記載されてあります。
変換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
環境構築手順は上記リンクのGUIDE STARTに従ってください。
Discussion
有用な記事ありがとうございます。フォローしました!
すごく細かくて恐縮なんですが、VRM → VRAM ですね。
誤字ってました💦
ご指摘ありがとうございます