見出し画像

より思い通りの画像を作る!img2img&フォトバッシュ複合ワークフローについて[StableDiffusion]

こんにちは。今回はStableDiffusionのimg2imgと昔ながらのフォトバッシュを複合することで、より思い通りに、より完璧に近い画像を仕上げる手法について紹介します。SDやimg2imgについては過去記事を参照して下さい。まずこちらをご覧下さい。

■『昼飯を食べるバットマンとジョーカー』を作る。

『昼飯を食べるバットマンとジョーカー』A film still of Batman and Joker eating lunch in the diner, worm lighting, cinematic tone. The Dark Knight(2008)

なんでしょうかこの凶悪な白塗りバットマンは。『昼飯を食べるバットマンとジョーカー』を生成させると高確率でこのような画像が出て来ます。
現在のSDは二つの異なる要素を独立した形で平行描写することが難しく、このようにバットマンとジョーカーの"要素"が混ざってしまいます。このような混同はあらゆる場面で少なからず影響を出しており、最早入力方式の問題ではなくStableDiffusion自体の性能限界に起因するものでしょう。
そこでより良い画像作りの為に考えられる解決策が「いっそPhotoshopで合成してしまおう」です。シード値を固定したまま、『昼飯を食べる二人のバットマン』と『昼飯を食べる二人のジョーカー』の二枚の画像を作り、後から加工で繋いでしまう訳ですね。シード値が同じであれば多少プロンプトを変更しても構図やライティングは近似のものが生成されますので、フォトバッシュ作業は非常に容易です。

シード値を固定して『昼飯を食べる二人のバットマン』と『昼飯を食べる二人のジョーカー』を生成してからフォトショップで統合。だいたい雑に消しゴムかけるだけ。

はい、バットマンとジョーカーが仲良く飯を食うことができました。思い通りの画像が出るまで生成ガチャを100回続けるよりも、遥かに素早く確実性の高いアプローチだと思われます。

■『ベイマックスと狐娘』を作る。

では次はimg2imgを使ってベイマックスと狐娘が並んでいる画像を作ってみましょう。ここから少し複雑になります。まず元となるベイマックスが必要ですが、生憎SDはベイマックスをあまり上手く理解していません。なのでベイマックス作りから始める必要があります。google画像検索から本物ベイマックスを持ってきても良いですが、折角なので0から作りましょうか。

A movie scene of A baymax in the diner, Disney, pixer. Big Hero 6 (2014)

なんとなく白くて丸い以外は全然ベイマックスに見えませんが、10枚ほど生成させたらフォトショで雑に編集してimg2img用の素体を作ります。

作成された素体用画像。フェーズ0ベイ。

img2img用のベース画像ができました。フェーズ0とでも呼びましょうか。まずはこのくらい雑で大丈夫です。次にこの画像をベースにimg2imgを行います。プロンプトは先ほどと同じまま、CFGscaleは5、Denoising Strengthは8。Strength値が高いほど元の画像から離れた画像が生成されますので、このように雑素体をベースに生成させる場合は高めにしましょう。また10枚くらい生成します。

Strength8でimg2img生成した『A movie scene of A Baymax in the diner, Disney, pixer. Big Hero 6 (2014)』

画像をベースにしているのでライティングや構図や視点が統一され、先ほどのような無秩序さは減ってきました。これらの画像をフォトショで合成し、フェーズ1のベイマックスを作成します。

フェーズ1ベイ。

目は手描きです。割とベイマックスが見えてきました。またこれをベースにしてimg2imgをしますが、今度はベース画像の影響度を高くしていきたいので、Strength値を6くらいに落とします。そうです、基本的には『img2img→フォトショ加工→Strength値を下げてimg2img…』を繰り返すのがこのワークフローです。

Strength6でimg2img…。

生成されるベイマの中に誰一人完璧なベイマはいませんが、「顔だけは良い感じにベイマ」「手だけは良い感じにベイマ」「腹だけは良い感じにベイマ」なベイマは居ます。それらをピックアップして合成することで完璧なベイマを作り上げるのです。構図とライティングが近似ですので、ただ画像をレイヤーで重ねて不要部分に消しゴムをかけるだけでOKです。楽しいな~。10枚くらい生成するベイ。

生成物を融合させて作ったフェーズ2ベイ。

ああ~…、これを完成ベイとする!!
ベイマが完成したので、次は今まで全く触れていなかった狐娘作りに移ります。冒頭で話した『要素が混ざる問題』の通り、異なる要素のものは最初は別々に作っていく必要がある訳です。プロンプトの中に『狐娘』が居たら、このベイマに辿り着くまで更に膨大な時間が必要だったことでしょう。

text2imgで作成した『A movie scene of An animal ears japanese girl in the diner, blond hair, Disney, pixer. Big Hero 6 (2014)』をフェーズ2ベイに雑コラ。つまりフェーズ3。

text2imgで適当な狐娘を作ったら、先ほどのフェーズ2ベイに雑に重ねます。この時、ベイマに落ちる影なども描き加えておくと良いでしょう。このフェーズ3画像をベースにimg2imgするのですが、プロンプトでは『作り込んで行きたい対象以外の被写体』には言及しないで下さい。この場面で言うなら、『狐娘を作り込んで行きたいのでベイマックスには言及しない』ということです。理由はもちろんAIが混乱して要素が混ざってしまうからですね。
狐娘の雑コラ感をうまいこと綺麗にして欲しいので、Strengthは7とします。

『A movie scene of An animal ears japanese girl in the diner, blond hair, Disney, pixer. Big Hero 6 (2014)』でimg2img。折角作ったベイマは大きく崩れてしまっている。

20枚くらい生成したらそれぞれの画像から優れている部分をピックアップしてフォトショップで合成していき完璧な狐娘を作り上げます。狐娘が出来上がったら、大きく崩れてしまったベイマは消してフェーズ2ベイ画像を合成します。

完成した狐娘にフェーズ2ベイを合成したもの。フェーズ4である!

は?くっそカワイイが…。これで完成でも良いくらいですが、これを元に最終形態をimg2imgします。今度のStrengthは更に下がって5です。もう元画像からあまり変える必要はありませんからね。狐娘とベイマの境界が気になるので、ベース用画像のその部分にちょっと影を足してみたり、狐娘の顔を切り取り拡大して、別画像としてimg2imgして顔面精度を高めるのが良いでしょう。もうちょっとイラつくツラしてるのが好みです。

20枚くらい生成して良い部分をピックアップして最終工程を終えた完成品がこちら↓

よさベイ

■完成じゃ!作成所要時間2時間!!

『クリック一つで画像が生成される』というAI画像生成の利点からは大きく外れますが、このワークフローはCG映画風のみならず、イラスト風や実写風まであらゆるジャンルで応用が効きます。今回は立ちポーズでしたが、それ以外にも通常のtext2imgやimg2imgでは生成困難なポーズも作成できます。

通常のtext2imgやimg2imgでは生成困難なポーズの作例。製作2時間。

私も手描きイラストには覚えがありますが、実写風ライティングを正確に手描きするのは流石に私の能力を超えています。従ってそういう画像を作りたい場合、SDを使用したこの手法はかなり重宝します。

『ライティング的に違和感の無い実写画像が無から2時間で作れる』のは一部のクリエイターにとってかなり有用ではないでしょうか。

以上、img2img&フォトバッシュ複合ワークフローでした。

■ワークフロー動画

■おまけ

Dalle2の新機能の画像範囲外を描写してくれる『outpainting』で生成。

この記事が気に入ったらサポートをしてみませんか?