目次
【Stable Diffusion】AIペイント初心者が「リアルピーチ姫」をAIに描かせるまで
はじめに
Stable Diffusion は AI お絵かきソフトです.
この度,ローカル環境に Stable Diffusion の作業環境一式を構築してみました.
話題の AI を使って,AIペインティング初心者が「ピーチ姫」を描くまでを解説します.
※今回はソフトのインストールと基本操作については扱いません.
Pytnon, git, Stable Diffusion, AOM3などの各種モデル, Automatic1111 Web UI, ControlNet, Deapth-lib などを導入済みで,ある程度基本操作に慣れている事を前提とします.
これら関連ソフト類のインストールと扱い方については,いずれ紹介する予定です.
個人的 CG 歴
この手の CG は15年くらい前に Daz Studio(フリーのPOSERの様なソフト)などで 3D CG をやっていましたが,AIペイントについては素人同然です.
私でも出来たので,環境構築さえクリアしてしまえば,誰にでも描けると思います.
呪文の作成と最初の一枚を得るまで
大体描きたいイメージに合わせてプロンプト(呪文)を作ります.
最初のスタート地点として,先人のサイト様からコピペさせて頂き,一部を改造して使用します.
best quality, masterpiece, ultra high res, (photo realistic:1.4),
1 girl, medium breasts, cute, young,
big blue eyes, very long blond hair,
pink dress with a many of frill, long white grove, tiara,
looking at viewers,
professional lighting, physically-based rendering,
Negative promptは
painting,sketches,(worst quality:2),(low quality:2),(normal quality:2),lowers,normal quality,
((monochrome)),((grayscale)),skin spots,acnes,skin blemishes,age spot,(outdoor:1.6),nsfw,ugly face,fat
などとし,モデルは AOM3 で設定は サンプラーを DPM++ 2S a Karras に変更し,その他はデフォルトのまま大量に出力します(ガチャ).
だんだん目が肥えてくると,出力したままの状態ではどれもぱっとしない.
「これくらいならいつでも出るよな」みたいなのばっかり….
幾つかは,「未加工だけどお手軽仕様でこれでもう完成でいいや!」とゆうのが出る.
この辺は,飽くまでピーチ姫とゆうゲームキャラのリアル化として,わりと特徴を捉えてる気がする.
改造案とアイデアを煮詰める
ただ,このままでも十分良いんだけど,イマイチ面白くない.
別呪文でガチャってて出てきたこれの構図,背景だと良くなりそう.
※こうした「いま使わないけど,ポーズと構図の素材として使えそう」なものは取っておくと良いです.
ただ,ちょっとスレンダーで縦長すぎて,ピーチ姫のキャラの個性とは合わないかも知れない.
ControlNet で埋め込んでみます.
やはり,別の何かになってしまった.少なくともピーチ姫ではない.特に衣装が(笑).
ControlNet は,抽出した線画に原画を押し込んでくれるだけだから,飽くまで構図・ポーズ・衣装までもがセットである.
様子見と線画抽出と傾向を知る為,関係を逆にしてみた.全然パッとしない.
とは言え,ControlNetで拘束しているにも関わらず,若干プロポーションが変わっている事が解る.
オリジナルに比べて特に下半身がかなりスレンダー.こういうのはAIの挙動を推測する上で,けっこう重要な情報である.
原画(ControlNet用アウトライン)の制作
両方の良いとこ取りを試みます.やり方としては,
- 上記二点の呪文とシードを使い,一方を出力する時,他方を ControlNet の画像として読み込む.
すると,プリプロセッサを通った結果も同時に出力されるので,ブラウザからそれを保存する.
- これらをGIMPで読み込み,レイアーで透過しながら,
- 矩形変形や拡大縮小を使って,ざっくりとキャラの背の高さや肩の位置を合わせ,
- アルファチャンネルを使って,改造したい部分を透過させ,
- 足りない部分はざっくりとフリーハンドで上のレイヤーに描く.
今回はプロポーションと髪型の変更,ティアラの形を変え,ついでにプリンセスロッドを持たせてみた.
あと,何度も実際に出力してテストするうちに,城の描画が弱い傾向にあったので,それを描き加えた.
出来上がった修正原画がこちら.
どうせ AI が呪文に応じて勝手に書き換えるので,この時点ではざっくりとで構いません.
ブラシの強さ(線の太さ)さえ調整する必要はないです(輪郭抽出を再び通るので).
これを ControlNet に読み込ませ,一枚目の呪文とシードで出力してみる.
※この時使った線画は開発途上のものだった為,上記の完成版線画とは若干異なります.
これはイメージにかなり近い.
あとは微調整と呪文の洗練とDeapth-libによる手の修正で完成出来ると思われた….
とは言え,何度やっても全然手袋をしてくれない.(())で呪文の該当部分を強化してもダメ.
そもそも大きく呪文を変えると,原画が違ったものになってしまう為,ControlNet を通った出力結果も大幅に違ったものになる.
もちろん,ControlNet のおかげで,構図とポーズは同じだが,色味や細部の表現やドレスのデザイン,表情,背景など,全然別物になってしまう.
洗練過程(呪文修正とガチャの繰り返し)
で,よく見ると呪文に含まれる単語 ‘Glove’ のスペルが間違っていた事に気付く(笑).
そこから出力された一枚が奇跡の完成度だったとしても,これはこれで偶然の産物として受け入れるしかない.
が,全然スマートじゃないですね(汗).
こうなると,呪文に戻ってやりなおしです.
単語や順番,線画の修正を納得行くまで繰り返し,細部を煮詰めて行きます.
背景を説明する為,lake, woods, castle などを記述したりもしたが,原画にどう解釈しても森や城にしか見えない線が含まれる為,この辺は特に指定しなくても大丈夫になりました.
ただ,無くても問題ないからナシで良いかと言うとそうゆうものでもく,確かに呪文はシンプルで洗練されてる方が良いに越した事はないが,それにも関わらず,どう考えても冗長だといえる呪文から良い絵が生まれたりするのが面白いところ.
ひたすら,ただひたすらに,呪文の変更とランダムシードによるガチャを繰り返します.
コレ,あとちょっとで完成出来るよな…と思えるものも,GIMP に移ってから手作業で大きく労力をかけるのは,A.I.ペインティングにおいては邪道だと思ってます.
敢えて手作業による修正をするよりも,その時間を使って,飽くまでマシンに数を描かせる,人海戦術が出来る事がこの手法の最大の武器であり,余す事なく活用するべきです.
上記バージョンの呪文とシードで,ControlNetの拘束を解除するとこうなっている.
もはや一枚目の面影はまったくない.
さらに良いと思ったものは,サンプル数を若干前後させて,変化を見ます.
ちなみに,同じ呪文とシードでも,サンプルが 1 違うだけでも,出力結果は以下の様に大きく異る事があって,当然 ControlNet を通った後の最終出力も違ったものになります.
素材の厳選
100~200枚の中から厳選していき,それぞれの絵の中の各部で,ここの表現が良いとか,ここがイマイチとか,ここは使いたいとゆう方針を決めていきます.
最終的に残ったのはこの4枚です.
全体的に良い.ほぼパーフェクトにイメージに近く,これをベースとして使用する事にする.
サンプルを若干ずつ変化させて様子を見て,一番良い表現を選ぶ.
最終的な呪文は以下の様になりました.
(サンプルステップ22)
best quality, masterpiece, ultra high res, (photo realistic:1.4),
1 girl, medium breasts, cute, young,
big blue eyes, very long blond hair,
pink dress with a many of frill, ((long white glove)), tiara, princess wand,
lake, woods, castles,
looking at viewers,
professional lighting, physically-based rendering,
ちなみに,この呪文とシードでの,ControlNet で拘束していない状態での原画はコレです.
一番最初の工程でのガチャで出てくれば,100% 間違いなく捨てているクオリティ.
にも関わらず,ControlNet に食わせる修正原画次第で化けるのだから面白い.
手の修正.
Depth-lib で img2img で手を修正します.
ただ,この段階では全然完璧とは言い難く,無いよりマシ程度です.
GIMP で仕上げる!
上記の四枚を GIMP で読み込み,レイヤーとアルファチャンネルを使って,良い部分を慎重に合わせていきます.
Depth-lib といえど,手の修正は完璧ではないので,この工程で殆ど手作業にて新たに描き足します.
また,光の表現やレンズフレア,ハイライトや頬紅や口紅などを加えていきます.
そして StableDiffusion のアップスケーラー R-ESRGAN 4x+ Anime6B で倍のサイズにアップスケールします.
最終的に出来上がったのがこちら.
如何でしょうか?!
まとめ
大まかな手順としては,
- 呪文の作成.
- 必要に応じて,GIMP で原画の作成(アウトラインの決定).
- 呪文の洗練,アウトラインの修正で煮詰めてゆく.
- ひたすらシードガチャ.
- サンプル数で微調整.
- Depth-lib で手の修正(ほぼ常に必須).
- 複数の出力画の良いところを GIMP で合成する.
- 細部の表現を描き加える.
- アップスケールして完成.
となります.
以上,興味のある方は挑戦してみて下さい.
A.I.ペインティングにお勧めの GPU はこちら.