より思い通りのAI画像を作る!inpaintと複数モデルの使い分け[StableDiffusion]
こんにちは。最近フォトリアルな映画風画像を作成するのにハマっております。以前もイメージ通りの画像をAIで作成する方法についてご紹介しましたが、今回は以前は未実装だったinapint、outpainting、要所でのAIモデルの切り替えなども駆使して作成していきますので良ければご覧ください。作業としては以前よりもやり易くなっています。
また以前のワークフロー解説noteも読んでいただけると内容がスッと入って来るかと思いますのでどーぞ↓
では前回に続き、狐娘とベイマックスが食事をしている映画風画像を作ってみましょう。まず基本の基本に使えそうな良い感じの画像を生成します。
解像度は512*512で生成しています。stable diffusion v1.5とその派生モデルの基本解像度は512*512であり、それ以上の高解像度生成を行うと人体バランスが狂い易くなります。縦長画像を生成した際にたまになんかやたら胴長な人が生成される例のやつですね。ネガティブプロンプトで人体バランスを制御するよりは、512*512で良い感じのを生成してから縦長画像に編集する方が確実かと思われます。
次にoutpaintingで画像を右側に拡張します。今回の映画風画像は512*960のサイズにしときましょう。
img2imgタブ下のscript欄からpoor man's outpaintingを選択。Masked contentはfill。Outpainting directionはrightのみ。Denoising strengthは0.7。一回では足りないのでPixels to expandを必要なだけ動かして2回に分けて拡張しましょう。
右方向に拡張されました。途中まではそれっぽいですが、やはり後半が狂ってきますね。outpaintingはそれっぽく画面外を生成してくれますが、全体の整合性を考慮した生成はしてくれないので、マトモにやりたければ手作業で生成を誘導していくしかありません。
という訳でなんとなくの完成像を想像しつつ、ペイントソフトの適当ベタ塗りでベース画像を作りました。これをimg2imgで良い感じにしますが、女の人はそのままにしておきたいのでi2i箇所をマスクで指示できるinpaint機能を使います。
作成したベース画像をimg2imgのinpaintに持って行き、修正して欲しい部分をビャーッと塗り潰します。生成設定のMasked contentを「original(べース画像の色調に従う)」、Inpaint areaを「Whole picture」にします。
ちなみにMasked contentの「fill」はマスク下の色調に従わず、マスク周辺の色調とプロンプトから独自の生成を行います。ベース画像が無いけどとりあえず適当に背景や被写体を大きく変えて欲しい時とかはfillが適切ですね。
さてDenoising strength 0.65、CFG 7で生成を実行します。最近気づきましたが、inpaintやi2i編集作業終盤でDSを下げていく際は、同様にCFGもちょっと下げた方が生成傾向が安定して良さそうです。私はDS 0.4ならCFGも5くらいでやってます。
はい、良い感じになりました。背景などは処理に時間がかかっても画面全体を一括で生成させた方が良いです。スペックが少ないPCの人は分割で編集して後から統合したいかもしれませんが、分割で背景を生成させると背景の統一感が損なわれてしまい、「右だけ80年代SFなのに左だけ90年代SF」みたいなチグハグな感じになりがちです。seed値固定すれば良いのかもしれないけどその辺は面倒なので試してない。
狐娘のベタ塗りベース画像を作ってから金髪姉ちゃんをinpaintします。これがちょっと凄いんですが、inpaintは通常のi2iとは違い「マスク外の色調に合うようにしろよ?」とAIに生成を強制させることができます。被写体の髪や服など特徴的な部分だけマスクを外しておけば、AIは「ああ、ここが髪でここが服になるように生成するんすね」と、ある程度被写体のシルエットを維持したまま生成を行う訳です。画像改変がめちゃくちゃ楽ですよクォレハ…!
■追記 2023/02/04
あれから少し試しましたが、inpaintを使えばベース画像の要点を維持したまま高strengthでの変換が可能ですねこれ。↓
多少手間はかかるし、ベース画像自体ある程度質感やライティングが作られている必要があるけど。応用すれば色々複雑なもの作れそうなのだ。
できたな。右側にベイマックスも追加していきましょう。ベイマ用ベース画像作成の目安にしたいので、とりあえず太った裸のオッサンでも生成しときます。今は影も形もないオッサンを生成させるので、オッサンが座ってそうな感じにマスクをかけて、Masked content「fill」で生成!!
クリック一発でオッサン座らせてくれるのは実際スゴイ!プロンプトで「二人のオッサン」と表記していますが、「オッサン」だけだとベース画像を見たAIが「飯食ってるオッサン…、オッサン…、的な人はもう左に居ますね^^」と誤解してプロンプトに従わない場合があるからです。プロンプトに姉ちゃん入れてるとトークンが影響し合って微妙に姉ちゃんっぽいオッサンが出て来る可能性もあるし。どうせマスク部分以外は変化しない訳ですから、AIには「二人のオッサンを描け!」と指示しておきましょう。
ではオッサンを手作業で弄ってベイマックスのベース画像を作ります。
ヴォー、こっわ。これをi2iでベイマックスにします。狐娘の生成には女性特化AIを使いましたが、ここでモンスター特化AIに切り替えていきます。人間特化系のAIでメカやモンスターを生成しようとすると、なんだかオモチャっぽくなったりただのオッサンになったりで作成し辛いです。AIが学習していない内容をi2iを繰り返して無理矢理作るよりも、要所要所で特化モデルに切り替えていくのが完成度を高めるのに重要でしょう。
モンスター生成してる方はプロンプトでクリーチャーとかモンスターとかタコとかイカとかブツブツ肌とか修飾すると思いますが、私は隠し味として「old man(ジジイ)」を記述しています。ジジイを混ぜるとモンスターの肌の質感に良い感じに生っぽい本物感が出てくれます。また生成されたモンスター画像をi2iで繰り返し編集していくと、徐々にシルエットが無秩序なモンスター体型に引っ張られていってしまいがちですが、隠し味ジジイが加わっているとAIの頭の隅にジジイが居座りますので、生成されるモンスターも良い具合にヒューマノイド体型を維持してくれる訳です。ジジイ万能や。
途中でちょっと弄ったりしつつベイマ完成!さて、一見完成したかに見えますが、ベイマは雑に切り抜いているものなので、シルエットが微妙にガタガタしています。コラ作成などでは背景とコラした被写体のシルエットを上手く馴染ませるのは大変な作業ですが、inpaintでシルエット部分をマスクすれば、AIが良い感じに被写体と背景の輪郭を馴染ませてくれます。こういうシルエット加工が出来るのも地味に凄い&クッソ便利と感じた点ですね。
ではシルエット修正したりAIっぽくグネグネしてる背景など細部を最終調整します。使用してるモンスター特化AIが背景にはちょっと弱いので、再度女性特化AIに戻します。女性特化AIはモンスターには弱いのですが、テカテカした謎物体のシルエット程度にはちゃんと対応してくれますので。
完成!所要時間1時間30分!!!
inpaintや特化モデルは実装後もしばらく使わなかったんですが、使った方が手早く思い通りに作れていいですね。
また今回はベース画像作成にフォトショップを使いましたが、Automatic1111にはペイント機能もついていますので、webUIのみでも良い感じのシーンを作れます。「思い通りな感じの画像がなかなかできねぇな~」と思ってる方は是非活用してみて下さい。
以上、inpaintと複数AIモデルを使用した画像作成でした。
この記事が気に入ったらサポートをしてみませんか?