Home Artists Posts Import Register

Content

はいこんばんは、スタジオ真榊です。前回の「Controlnet1.1爆誕!顔抽出&アニメ主線抽出&線画塗りを試してみた」に引き続き、今回もControlonet1.1の検証記事をお届けします。


これから検証するのは、「Shuffle」「Pix2Pix」「Inpaint」の新顔3種モデル。前回紹介した「新Openpose」と「LineartAnime」はControlnet1.0でもできたことの進化版という印象でしたが、新3種モデルはそれぞれ全く新しい概念をStableDiffusionに持ち込むモデルとなっています。


具体的には、

・「元画像を構成する要素を"シャッフル"して、全く異なる構図のイラストとして再構成する」(shuffle)

・「この画像をこう変化させてとAIに頼む」(pix2pix)

・「通常のinpaint機能より自然な『描き直し』をする」(inpaint)

・・・ことが可能になります。


『何を言っているのかわからねーと思うが、おれも何をされたのかわからなかった…』状態に陥りますが、どれも直感的に分かりやすく、かつ画期的な機能。1記事に3種の検証結果はおさまりきらなかったので、まずは「Shuffle」から順番に見ていきましょう!


【※アップデートにご注意を】


Mikubill版のWebUI-Controlnetは現在、非常に盛んに更新されています。できるだけ最新版に基づいてレビューしていきますが、アップデートによってスクリーンショットのUIや使用感に違いが出る可能性があることをご留意ください。


例えば、最新版では「アノテーション結果をプレビュー」がなくなり、プリプロセッサ(前処理)のプレビューは「Allow Preview」という機能に変わりました。ここにチェック☑を入れて、プリプロセッサの横の爆発マークをクリックすると、以前のようなプレビューが表示されます。


また、「入力の色を反転」もなくなり、代わりにプリプロセッサの選択肢に「from white bg & black line」が加わりました(下図)。

その他、細かいポイントに違いがありますので、しばらくControlnetに触る際はアップデートの有無に気を配っておきましょう。


同じイラストを違う構図で出せる「Shuffle」


というわけで、早速本題に入りましょう。今夜紹介する「control_v11e_sd15_shuffle.pth」は、元画像の色や全体の雰囲気といった要素を継承しながら、新しい画像に「再構成」できるようトレーニングされたモデルです。


元画像の要素をいったんパズルのピースのようにバラバラにして、テキストプロンプトをもとに、新しい画像として「組み直す」イメージ。どんなことができるのか、またはできないのか、さっそく実験していきましょう。


実験1:女の子のイラストを別構図に再構成する

まずは、こちらの女の子のイラストをプロンプトなど全て同じ設定のまま、別イラストとして再構成してもらいます。プリプロセッサ「Shuffle」、Controlnetの重みは「1」、最初から最終ステップまでcontrolnetを影響させます(starting:0、ending:1)。


プロンプト:2girls,maid costume,large breasts,happy smile,overlooking panorama view,magnificent view,masterpiece,high resolusion,illustration,ultra detailed 8k art

ネガティブ:(worst quality, low quality:1.4), (greyscale, monochrome:1.0), text, title, logo, signature,[badhandv4:EasyNegative:0.5]


右側の画像が、プリプロセッサ「Shuffle」によって前処理された元画像です。元画像(左)の構図が出力画像に影響しないよう、ぐにゃっとシャッフルされているのがわかると思います。ちなみに、「Preprocessor resolution」の数値を大きくすると、シャッフル度合いが強まります。


これを元にモデル「Shuffle」が生成した新たなメイドさんが以下の画像です。(本日はどれも高解像度補助未使用、768✕512px)



Preprocessor resolutionは初期値のまま、プロンプトその他パラメータも元画像と全く同じものを使いました。Seed値はランダムです。全体の色合い・雰囲気・被写体の構成は継承しつつ、構図だけがランダマイズされていることがわかると思います。


「Preprocessor resolution」を1000前後に強めるとどうなるでしょうか。


このように、うねりが強くなりました。この状態で生成した結果がこちら。



ところで、Shuffleのモデルは前処理でこのようなシャッフルを施さなくても、元画像をそのまま読み込むことができるようトレーニングされています。今度は、プリプロセッサを「None(なし)」にしてみましょう。


このように、元画像がうねらずそのまま読み込まれます。こちらの設定で生成したところ、



このような結果になりました。今一つ違いが読み取れませんね。

うねりの強さがどのように絵柄に影響するのか確認するため、X/Y/Zプロットを使ってみます。次の3段はいずれもSeed値を変えただけで、どれも同じパラメータです。





いずれも前処理「Shuffle」をONにし、Preprocessor resolutionだけを変化させているのですが、それぞれ全く同じプロンプト+Seed値でもこのような大きな差が出ています。数値が近い同士は似た絵柄になるように見えますが、うねりが出力結果に及ぼすはっきりした法則性は見いだせませんね。あくまでご参考まで。


実験2:女の子のイラストを別のイラストとして再構成できる?

今度はプロンプトを変化させてみます。さきほどの女の子のイラストを読み込ませるのですが、プロンプトを動物に変えてみましょう。


プロンプト:2dogs,sitting,overlooking panorama view,magnificent view,masterpiece,high resolusion,illustration,ultra detailed 8k art


このように、メイドさん二人ではなく、2頭の犬が座っているイラストに変えられるでしょうか。生成結果はこちら。



学習モデルが女の子イラストメインのものだったためか、こちらは難航してしまいました。プリプロセッサの「分解して再構成する」Shuffle技術では、女の子から犬を生み出すことはなかなか難しいようです。Preprocessor resolutionを最強にすると女の子は出なくなりましたが、無数の犬がいる破綻したイラストになってしまいました。


実験3:縦イラストを横イラストにしてもらう

ちょっと思いついたので、変わり種の使い方をしてみます。イラストをいったんばらばらにするということは、アスペクト比が全く異なるイラストにもできるのではないでしょうか。


キャンバスの横・縦のサイズを逆にして生成してみると…



こちらはあっさり成功してしまいました。元イラストと「同じ女の子」というわけにはいきませんが、全体の雰囲気はよく継承されていると思います。設定は以下の通り。ものすごく使える!というわけではないものの、Shuffleという技術がi2iとはまた違った「描き直し」であることがよく分かる例だと思います。


ちなみに、使用したパラメータはこちら。Shuffleは重み、ステップともにこれくらいの数値にしておくと、比較的安定した結果を出力することができました。


実験4:背景やトーンを指定してキャラクターイラストを生成する

これが最も実用的な使い方かもしれません。「元画像の要素をバラバラにして別のイラストを組み直す」機能を利用して、背景や全体のトーンを指定してしまおうという試みです。


クリスタから煉瓦・星空・学校・矢羽模様の4つのフリー素材を取り込んで、それぞれ「1girl,maid costume」を生成してみます。絵柄によって、前処理を掛けてシャッフルしたほうが良い素材の場合には、プリプロセッサをONにしてうねらせています。


(1)煉瓦模様


こちらはシャッフルしたもの。シャッフルしないでそのまま入れると、レンガ模様に引きずられてたくさんのコマと認識されてしまい、無数の女の子ができてしまいました。



(2)星空



こちらの星空、意外なことに、元画像の紫色に引きずられませんでした。プロンプトに「星空」と思えるものは使っていないのですが、Shuffleモデルが星空だと認識したようです。Shuffleは元イラストをばらばらのピース(もしくは絵の具?)にするものの、色合いを必ずしもそのまま継承するわけではないということが分かりました。


(3)学校


ぐにゃぐにゃ学校。こちらはプロンプトに「school,classroom」を入れないと崩壊してしまいました。



(4)矢羽模様


こちらもニ色から出来ているイラストですが、おおむね白と紺が目立つものの、無関係な色も生じていることが分かります。


とりあえずShuffleの実験はここまで。わかったことをまとめてみましょう。


使用感と考察

元画像から新しい画像を構成するのがShuffleの特徴。i2iと違うのは、元画像の構図に引っ張られないことですね。品質のよいプロンプトでたくさんt2iするガチャと似ていますが、色合いや構成内容にぶれ幅が生じにくいのがメリットと言えそうです。活用方法としては、「画像全体の色合いを維持しながら、別の構図のイラストを出す」とか、「素材画像をモデルにして、全体のトーンを意識したイラストを作る」ような場面で使えそうです。


また、詳しい検証はMultiControlnetの回に譲ることにしますが、Shuffleの本領が発揮されるのは、CannyやLineart animeといった構図を強く指定するモデルと併用したとき。あるイラストの構成要素を継承しながら「このイラストを描いて」と指定することができるわけです。



例えばこのように、1枚目のイラストを線画化し(2枚目)、3枚目のイラストを「絵の具」にして、その線画を塗ってもらう(4枚目)ことが1工程で簡単にできます。さきほどの素材を使うと…




こんな感じ。画面いっぱいの花やレインボウカラー、はたまたモノトーンと、表現の幅が広がることは間違いありません。面白い使い途を思いついた方は、ぜひコメント欄で教えて下さいね。


そんなわけで、今回はControlnet1.1「Shuffle」でできることを検証してみました。次回は「再構成」ではなく「変化」を司る新技術、pix2pixの検証結果をお届けしたいと思います。


また、現在開催中の「AIイラスト術 天下一武道会」もどうぞよろしく!


スタジオ真榊でした。

Files

Comments

z-kumagon

編集作業お疲れ様です。 何時もありがとうございます。 「良い雰囲気だけどコレじゃない」を突破出来るツールになってくれそうな気がしますね。

tikman

今回も為になりました、pix2pixの検証も楽しみにしてます

スタジオ真榊

線を固定しながら別のイラストのトーンを持ち込めるのはとんでもないですわね!