「Stable Diffusion web UI」には追加学習された様々な「Embeddings(エンベディング)」を追加して利用することができます。
このところは、AI画像生成時における手指の表現について多角的に検討を進めています。さまざまな対策のひとつとして「Embeddings」を導入するという方法があります。これらは劇的な効果こそ見られませんが、たくさんのユーザーに利用されているという点で実際に試してみる価値が大いにあるといえます。
前回は手指の表現を改善する「Embeddings」の中から「negative hand(ネガティブ・ハンド)」を取り上げましたが、今回はそれと同じくらい利用されている「bad hands 5(バッド・ハンズ・ファイブ)」を試してみました。
「bad hands 5」はプロンプトの公開されている数多くの画像を見ていると、ネガティブプロンプト欄の中に見かけることが時々あります。
結論から言って、「bad hands 5」も「negative hand」も品質に関わる追加要素であることから、その効果がとても分かりづらくて良し悪しを直ちに判断できないところがあります。それでも、特定の画像を再現しながらプロンプトの内容について検討を重ねるためにはこのような「Embeddings」を導入しておく必要があります。
手指の表現を改善する:「bad hands 5」編
「bad hands 5」の導入方法
「Stable Diffusion web UI」を利用して画像を生成していると、手指の表現に問題のある画像が生成されることが多々あります。そうした問題を解決するために、いくつもの追加要素が開発されています。それらを導入して適用することで手指表現の崩れを抑止することができる場合があります。
そのひとつが「Textual Inversion(テクスチュアル・インバージョン)」である「bad hands 5」です。ここでは、「bad hands 5」の導入方法と適用方法を簡単に紹介した上で、前回と同様に画像の生成例もいくつか掲載しています。
「bad hands 5」は「Hugging Face(ハギング・フェイス)」というサイトからダウンロードすることができます。「bad hands 5」のファイルは以下のページに登録されています。
「bad-hands-5.pt」というファイル名をクリックします。
次のページに「download」ボタンがありますので、そちらをクリックしてください。ブラウザ上でファイルのダウンロードが始まります。ファイルサイズが小さいためダウンロードはすぐに終わります。
ダウンロードした「bad-hands-5.pt」は、「Stable Diffusion web UI」がインストールされたフォルダを開いていって、その中にある「embeddings」というフォルダの中に移動させてください。
ファイルを「embeddings」フォルダの中に移動させるだけでOKです。そして「Stable Diffusion web UI」をいつも通りに立ちあげてください。
「bad hands 5」の適用方法
「bad hands 5」はその他の「Textual Inversion」や「LoRA」などと同様の手順で適用可能です。
「生成」ボタン直下の「花札」マークをクリックします。
下部に画面が出現して「Textual Inversion」タブが開いている状態になります。
「bad-hands-5」というカードをクリックします。
「bad-hands-5」という文言が「ネガティブプロンプト」欄に追加されます。カンマやスペースは必要に応じて追加してください。
これで「bad hands 5」を適用して画像を生成することができるようになりました。他の項目はいつもと同じように入力や設定を行ってください。
Embeddings「bad hands 5」適用後の画像生成例
ここでは「bad hands 5」を適用した状態と未適用の状態で画像の生成を行っています。
ただし、「bad hands 5」を始めとした「embeddings」は「LoRA」などと異なり、その効果が分かりにくいところがあります。そのため、「negative hand」のときと同じように、画像を比較するということは難しいのが現状です。適用前の画像も適用後の画像も100枚以上生成して1枚ずつじっくり確認していきましたが大きな変化を見出すことは困難です。
それを踏まえて、こちらの内容も参考程度にみておいてください。
プロンプトは上記のとおりです。すべての画像で同じものを使っています。
手指の表現を確認するという目的のために今回も「peace sign(ピースサイン)」のポーズを取らせています。それ以外は一部変更しています。
「peace sign」は指の立て方がまちまちで画像を生成する度にその表現に大きなばらつきがあります。それは「bad hands 5」とは関係ありません。
未適用の場合には「bad hands 5」をネガティブプロンプトに入れずに画像を生成しています。
「bad hands 5」が適用されている時は、生成された画像の下に「Used embeddings 〇〇」と表記されています。画像を1枚お試し生成した後に、適用の有無を必ず確認してください。この表記がなければネガティブプロンプトを確認したり、「リフレッシュボタン」を押したりしてみてください。
「bad hands 5」未適用時
最初に手指が上手く表現されている画像(512×768)を例示します。なお、画像はブログ掲載にあたって縮小・低画質化しています。モデルは「anything-v4.0」を利用しています。
いずれも手指の表現に大きな乱れがない状態です。画像を100枚以上生成しても、そのままで違和感のないものはわずかしかありません。
次に、手指の表現が乱れている画像(512×768)を例示します。
多くの画像は上記のように、指が増えていたり、長くなっていたり、ぐちゃぐちゃになっていたりします。
しかし、手指の表現以外には問題がほとんどありませんでした。背景のキッチンの設計がややおかしいことが数例あったという程度です。
こちらは「512×768」を「高解像度補助」を 使って2倍にアップスケールしたものです。 |
「高解像度補助(Hires. fix)」を利用して画像を拡大すると、手指の表現は特に崩れやすくなります。「Denoising strength」の調整は必須です。
次に「bad hands 5」を適用して画像を生成したものを掲載します。
「bad hands 5」適用時
こちらも、最初に手指が上手く表現されている画像(512×768)を例示します。
こちらは手指の表現に大きな乱れがない画像を選び出したものです。画像を100枚以上生成しても、未適用時と同じように手指の表現が崩れたものが多くを占めています。
手指の表現の乱れは「bad hands 5」を適用してもしなくても数多くの画像に生じてしまいます。したがって、手指の表現をプロンプトや「Textual Inversion」のみに頼る場合はガチャが必須になるといえます。
こちらは手指の表現に難のある画像です。「peace sign」のように手指の動作を強調するポーズは、手指の動作を指定しないときと比べて形状が崩れてしまう傾向が強いかもしれません。
前回の記事で「negative hand」を適用した時にも述べたように、手指の表現が未適用時の画像と比べてやや異なっているように感じられます。指が伸びたりぼやけたりするところが未適用時の崩れ方と微妙に違っています。
そういうところから「bad hands 5」のような「Embeddings」は、手指の表現に少なからず作用していると思われます。
こちらは「512×768」を「高解像度補助」を 使って2倍にアップスケールしたものです。 |
このようにパッと見て違和感のない画像は5~10枚くらい生成しても1枚程度となります。このような問題を避けることは難しいように感じています。プロンプトや「Textual Inversion」とは別の工夫が必要です。
どのような「Embeddings」であっても、目に見えるような変化があれば導入を強くおすすめすることもできるのですが、品質に関わるものはいずれも効果が分かりづらくて、生成された画像を比較しても判断は難しいという現状があります。
とはいえ、前回も言及したように「Embeddings」の効果は、モデルや設定等の諸条件によっても違ってくる部分があると思われるため、各自が色々なモデルで有効性を試してみることが必要です。それと同時に、プロンプトが公開されている画像を再現するときには、「Embeddings」を入れて同じように設定しなければなりません。
そのため、多くのユーザーに利用されている「Embeddings」は、いつでも使えるように準備しておいて損はありません。「bad hands 5」も「negative hand」もファイルサイズが小さいためストレージを圧迫しません。