「狙った構図にうまくならない」「書き込みの具合がなんか違う」等、Stable Diffusionで絵を描いても思った通りにいかず困ったことはありませんか?
実はその原因はSampling methodというパラメータが、あなたの絵にあっていないからかもしれません。
今回はそんなSampling methodとはどんなパラメータなのか、どれを選べばよいかを説明します。
この記事を読めばあなたの絵も一段階レベルアップできるはず!
Stable Diffusionの『Sampling method』とは?
Stable Diffusionで絵を描く場合、人間が真っ白なキャンパスに線を描くのとは違い、ノイズまみれのキャンパスからノイズを取り除いて絵を描きます。
その時のノイズを除去するサンプリング方法を「Sampling method」と言います。
「Sampling method」の種類は複数あります。
Stable Diffusionの『Sampling method』の大きな特徴
現在Stable Diffusionで絵を描く目的は、同じ単語から様々なデザインを作成して見比べたり、自分の望む絵になるように追及したりと多様化しています。
「Sampling method」はノイズ除去の手法であり目的に合わせて選ぶことで、狙った画像へと到達するまでの時間の短縮や、クオリティの高い絵を描くことが出来ます。
特徴①:「Ancestral samplers」は再現性が低い
Sampling methodの中の1つに「Ancestral samplers」と呼ばれる種類があります。
「Euler a」「DPM2 a」等「a」が付くものが主に当てはまりますが、どのSampling methodも一度生成した画像の再現性が低いというデメリットがあります。
始めに説明した通りStable Diffusionはノイズを除去して絵を描きます。その時にSampling stepというパラメータを調整して、何回ノイズの除去を行って画像を生成するかを決定します。
この時、Sampling stepを元の画像に近い値に設定すると、似た画像を生成してくれます。
しかし「Ancestral samplers」シリーズのSampling methodを使っていると、Sampling stepの値を元の画像から少し変えただけで生成結果にバラつきが生じてしまいます。
その結果、髪の色が変わったり、手足の位置が違ったりという変化が起きてしまいます。
またSampling stepが少ないと、絵として成り立っていない、意味の分からない画像が生成されてしまうこともあります。
様々なポーズやデザイン等を出力して、絵の方向性を決めたいタイミングなどでは問題ありませんが、絵の構図が決定して、微調整を行いたい時などはこのデメリットが顕著に表れるので注意が必要です。
特徴②:再現性より、生成速度とクオリティが重要
前述の通り、「Ancestral samplers」で構図決定後の微調整を行うのは、再現性が低く難しいです。
しかし、実際に単純にプロンプトだけを使って絵を描くときには、生成速度とクオリティが重視されることが多いです。
例えばある絵を見て、それの微調整を行いたいとなった時に、何を変更すれば良くなるかを考えるのは容易です。これはある程度道筋が分かっていれば、作業に落とし込む能力が人間に備わっているためです。
しかし構図も決まっていない状態では、どんなデザインが良いかは頭で思いつく限りでしか比較できません。また実際に見て比べることもできないので、単純比較することが難しいです。
そのためAIで絵を描くメイン作業としては、再現性よりも多数の構図を出力するための生成速度とクオリティのが重要になることの方が多いです。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
【検証】『Sampling method』の違いを比較
実際にSampling methodを複数試して、それぞれにどのような特徴があるかを確認していきたいと思います。
今回は比較のために女の子の画像で確認を行います。実写とアニメの両方でSampling methodの比較を行います。
使用するモデルはアニメ用にanything-v3、実写用にBasil_mix_fixedを使用し、Sampling stepは20で実行します。
プロンプトは下記を使用します。
結果の差分に、人の形を崩れたものが含まれないようにするために、NegativePromptでは四肢の欠損などの項目を含んでいます。
Prompt
(best quality, masterpiece:1.2),
A girl
NegativePrompt
worst quality, low quality
bad anatomy, bad hands, missing arms, text error, missing fingers, jpeg artifacts, long neck, signature, watermark, blurry, fisheye lens, animal, deformed mutated disfigured, mutated hands, missing hands, extra hands, liquid hands, poorly drawn hands, mutated fingers, bad fingers, extra fingers, liquid fingers, poorly drawn fingers, bad legs, missing legs, extra legs, bad arms, extra arms, long torso, thick thighs, partial head, bad face, partial face, bad eyebrows, ugly, disfigured
①DDIM
1つ目は「DDIM」です。
②Euler
2つ目は「Euler」です。
③DPM++2M Karras
3つ目は「DPM++2M Karras」です。
実際に出力されたSampling method毎の出力結果は、単体で見ると違和感なく描けていることがわかります。
単体ではわからないので、Sampling methodの違いによる結果を横並びで比較してみましょう。
アニメ、実写共に構図が「Euler」と「DPM++2M Karras」は似た絵になっています。これは構図に対するノイズ除去の方法が近いことを表しています。
「DDIM」と「DPM++2M Karras」は「Euler」に比べて、全体的に輪郭がはっきりしているような画像になります。特に「Euler」では、少しぼやけた感じが実写だと顕著に出ています。
このことから基本的にはアニメ、実写、イラスト、リアル系など描くものによらず、Sampling methodの設定で、同じようにノイズ除去が行われたことがわかります。
おすすめの『Sampling method』
どれがいいか悩むところですが、輪郭がはっきりしていると絵のクオリティが高く見えるため、「DDIM」か「DPM++2M Karras」をおすすめします。
ただどちらかに決めるよりは、両方で様々な構図を出してみることによって、自分では思いつかないような絵を描くことができるかもしれません。
モデルが推奨する『Sampling method』もある
Stable Diffusionで絵を描く際にはモデルが必要となりますが、モデルによっては特定の「Sampling method」を推奨しているものもあります。
ただし全てのモデルに書いてあるわけではなく、書き方もモデルの製作者によって違いますので注意してください。
Hugging Faceでは「Model Card」の部分に書かれていることが多いようです。
またモデルのアップデート時に説明が追加されることもあるので、新しいVerが出た場合はきちんと確認するようにしてください。
まとめ
いかがでしたでしょうか?
Sampling methodの違いやおすすめの設定をについて解説してきました!
今回のポイントをまとめると、以下のようになります。
- 「Ancestral samplers」は再現性が低い
- Sampling methodによるノイズ除去はアニメや実写などによらず、同じような特徴が表れる
- 迷った場合は「DDIM」か「DPM++2M Karras」を選択する
- モデルによっては特定のSampling methodを推奨していることがあるので、ダウンロードするウェブページを良く確認する
でした!
日々進化しているAI事業の中でも、Stable Diffusionは特に注目されているAIの一つです。
ぜひこの機会にSampling methodの使い方を覚えて、様々な絵を描いてみましょう!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい