手の崩壊も簡単修正!「Textual Inversion」徹底比較 (Pixiv Fanbox)
Content
こんばんは、スタジオ真榊です。作品進行にはとにもかくにも絵柄の確定が必要ということで、焦りながら研究を進めています。その過程で、「新辞典」でも紹介したTextual Inversionについて、現在配布されているいくつかのモデルを比較実験してみたので、今日はその結果をご報告します。
Textual Inversionとは?
自分で用意した画像からstable diffusionに概念を学習させる手法はいくつかありますが、その一つがTextual Inversionです。別個に学習した結果を学習モデルとは別の軽いファイル(多くは拡張子.pt)に保存し、prompt欄でタグとして利用することで効果が発動します。モデルそのものに学習させるわけではないため、画像生成のつどタグを気軽に適用したり、外したりできる応用性の高さが特徴。
この手法をプロンプトではなくネガティブプロンプトとして利用することで、画像の低劣化や崩壊を防ぐ=クォリティアップを図る手法が次々と編み出されています。NAIではたくさんネガティブプロンプトを書き連ねることでクォリティアップを図るのが主流でしたが、これを使うことで一語で基礎ネガティブプロンプトを構成することができるわけです。
使い方
使い方は基本的に「stable-diffusion-webui\embeddings」フォルダーに埋め込み用のファイルを放り込み、ネガティブプロンプトに拡張子を除いたファイル名を書き込むだけです。例えば、「bad_prompt_version2.pt」を入れたなら、ネガティブ欄に「bad_prompt_version2」と入れるだけで効果が発動します。(bad_prompt_version2:1.2)などと強調することもできますが、アニメ調が強まる効果があるだけでなく、すぐに絵が崩壊するのでおすすめしません。
現在流通しているのは、手足や指が崩壊したり、スケッチが低劣な画像などの「悪い例」を覚えさせ、ネガティブ要素として埋め込むもの。この実験では下記の4つを使用しました。それぞれ意図した向きは少しずつ異なりますが、それぞれが学習した悪い例をはじいてくれるため、結果として低劣な画像の生成を防ぐことができます。
実験
使用モデルはAbyssOrangeMix2-hard。まずはどれも使わず、いつもの綾香ちゃんプロンプトで「基本例」を生成します。
ネガティブプロンプトは(worst quality:1.4), (low quality:1.4),text,(long hair:1.4)のみです。左下は腕が3本になっており、左上は指が崩壊したりしていますね。
詳細設定は以下の通り。
Steps: 25, Sampler: DPM++ 2M Karras, CFG scale: 7, Size: 512x768,
Model: AbyssOrangeMix2_hard, Denoising strength: 0.65,
Hires upscale: 1.5, Hires upscaler: Latent
Hires.fixを使用している点にご注意ください。
さて、こちらのSeed値を固定して、さきほどのembeddingsを一つ一つ入れて変化を見てみましょう。
①NG_DeepNegative_V1_75Tはスタンダードな修正感
左下、3本腕が見事に修正されました。ただ、ウエストが長く、かつしぼられすぎて少し不自然なきらいもあります。左上のぐちゃりはさほど変わらず。よく見ると、多少ポーズも変わっています。右上は右手が腰の後ろに隠れてますね。顔立ちに特徴的な変化はありませんが、左上画像の黒スカートがプリーツからタイトに変形しています。
②EasyNegativeは優しみ修正
顔の変化が最も少なかったのがこれ。3本腕が治ったのはこちらも同じで、ウエストも自然です。右上はポーズが大きく変更しています。左上のスカートの変形も防げていますが、全体に指の修正はさほど上手ではないのかも?DeepNegativeより元絵を大切に、優しく直している感じがします。
③bad_prompt_version2はガッツリ激しい修正
いつも使ってきたbad_prompt_version2。悪い手の形を大量学習させ、手の修正を図る目的で作られたnegative embeddingです。
ここでようやく謎が解けることになります。
(#^ω^)「たまに綾香のセーターについてくる謎のマント布…オマエのせいだったんじゃね~か?」
左上、ぐちゃ手は修正されましたが、謎のマントが出現。4枚とも背景変化が激しく、特に右下にはこれまで抽象的だったのに石壁が現出しています。左上の表情は元絵から無視できないレベルで変化しており、右下は手が骨折しているように見えます。左下はまた細長いウエストが不自然なのと、セーターの胸の模様が消え、髪の毛がちょっぴり伸びて別人感が出ています。
ただ、指は一見してどれもさほどおかしくないので、これまでの中で一番強い修正をかけている感じがします。
④bad-artist-animeはマイルド&ガッツリ?
これは詳細があまり説明されていないのですが、「badアーティスト」のスケッチを学習させてネガティブにするためのEmbeddingsとのこと。左上のぐちゃ手が直っており、左上のスカート・左下のセーターなどから、そこそこ強めの修正がかかっていることがうかがわれます。右下には、bad prompt ver.2でも出た石壁が現出しています。ただ、表情・ポーズはさほど変化がみられず、できるだけ元絵を尊重している感じもあります。
小括
結果としてわかったのは以下の通り。
「腕の増殖はどれも直すことができた」
「修正度には強弱があり、強いものは元絵の表情や構図、ディティールを変化させてしまう」
「修正された結果、また別の理由で不自然な絵になることもある(例:長細いウエスト・謎の布・骨折した手)」
また、修正度の強さの印象は以下の通りでした。bad-artist-anime
とNG_DeepNegative_V1_75Tは特徴が異なるので、どっちが強いか悩むところです。
(強)←bad_prompt_version2 > bad-artist-anime
≧ NG_DeepNegative_V1_75T > EasyNegative→(弱)
そこで、今度はこの順で「つよつよ組」と「よわよわ組」の組み合わせを試してみます。
つよつよ組
背景まで変化が出る「bad_prompt_version2」&「bad-artist-anime」さんチーム。
うすうす予想はできていましたが、両方の悪いところが出た!という感じ。左下は3本腕まで復活してしまい、他にも石壁現出、セーター崩壊、髪型変化、表情変化と良いところなしの結果になりました。強い✕強い=破壊。
今回の実験ではhires.fixを0.65と比較的強めに掛けているので、これら2つのembeddingのせいというよりは、これら2つの干渉の結果「hiresが別のものと解釈できる余地を生んでしまった」というのが正確なところじゃないかなと思います。
よわよわ組
「NG_DeepNegative_V1_75T」「EasyNegative」さんチーム。
同じような画像を見すぎてだんだんゲシュタルト崩壊してきますが、こちらもそれぞれの干渉を忠実に継承している感じです。特徴は「石壁なし、ウエスト長、ポーズ変更あり、手の修正度低」というところでしょうか。
混ぜてみて分かるのは、それぞれのいいところが出るというよりは尖ったところが目立つ「足し算」の結果になるというところですね。もう少し別の組み合わせも試しました。
bad_prompt_ver2 & NG_DeepNegative_V1_75T
「あいつ修正力はんぱないって!」でおなじみのbad_prompt_version2 & NG_DeepNegative_V1_75Tチーム。
手は全体的にしっかり修正されていますが、それぞれの単体に比べると完璧かというとそうでもありませんね。表情の変化、スカートの変化は2種類それぞれの変化が受け継がれた印象です。気になるのは右上。セーターの描写がディティールすぎて、逆に彫刻みたいに見えます。全体にNG_DeepNegative_V1_75Tの影響が強そうです。
bad-artist-anime & EasyNegative
元絵を大切に♡やさしい甘みが特徴のbad-artist-animeさん & EasyNegativeさんチーム。二人が手を携えたらこうなりました。
左上、なぜか現出したバッグと垂れ袖、看過できないほど変化した左下の服とエイリアン四本指。よわよわ同士を混ぜたらマイルドに直してくれるかと思いましたが、意外とそうでもないのかもしれません。例によってhiresが悪さをしているのかもしれず、断言はできませんが、あまりおすすめできない取り合わせと言えそうです。
全部盛り
ここまで来たら4つ全部盛りも試しましょう。
つよつよ組のように全部が加算されるかと思いましたが、混じり合ってそれぞれの影響がわかりにくくなった印象です。謎のマントやはっきりした石壁は出現せず、3本腕は治っており、表情も全部を混ぜたような感じで変化があまりわかりません。ただ、肝心な手の修正が完璧かというとそうでもないのかな…?という印象ですね。
総括
これらをまたさらに強弱を付けて組み合わせて…とやり始めると日が暮れそうなので、ここまでにしておきます。4種それぞれの変化には好みもあり、また場面に応じたニーズ(手だけ部分i2iでガッツリ直したい!など)もあるので、一概にどれが良いとはいいにくい面もありますが、「四肢の崩壊は直してほしい」<「でも妙な改変はしないでほしい」というのが多数派の感覚かと思います。四肢崩壊はガチャで回避できますが、妙なディティール改変が毎回生じるとガチャ全体が無駄になってしまいますからね。
個人的な好みとしては
=====================================
①良いプロンプトでガチャるときはbad-artist-anime単体(修正度と元絵の尊重のバランスが良い)
②良い構図を引けて手を部分マスクi2iで直したいときは、bad_prompt_ver.2単体
=====================================
という結論に至りました。複数組み合わせる手法は、出てきた絵から一見してどれが悪さをしたのかわかりにくいこともあり、修正度が単純に上がるわけでもないようなので、できるだけ避けた方がよさそうかな?と思っています。
bad prompt ver.2を0.8に弱めて掛ける(公式は最初のbad promptを0.8で掛けるのを推奨していた)というのも一案で、この辺になると好みの世界かなと思います。これからまた新たな後発embeddingsも公開されていくでしょうし、こちらの実験を参考に、自分に合ったものを見つけられたら良いですね。(しかしこのembeddings用埋め込みptファイルをなんと呼んだらいいのか悩むな)
それでは皆さま、骨折事故なきローカルライフを…
スタジオ真榊でした。