Stable Diffusionを使用して、画像を作成する方法を記載方法で、細かい機能部分について説明します。
ここでは、「japanesedolllikeness_LoRA.ipynb」を使用しています。
1. 各設定項目
タブ「txt2img」は、テキストから新たなイメージ画像を生成する場所です。
各項目で大事な項目として、下記のとおりです。
1. Sampling method | サンプリング方法(おススメは「DPM++ 2M Karras」) |
---|---|
2. Sampling steps | ノイズからイラストに変えていくための回数 |
3. Restore faces | 顔を綺麗にできる(美人になるとは限らない) |
4. Tiling | タイル状に並べる |
5. Hires. fix | 解像度を上げることができる |
6. Width, Height | 画像の横幅、高さ |
7. Batch count | 画像の枚数(何回バッチを行うか) |
8. Batch size | 画像の枚数(1回のバッチで何枚の画像を生成するか) |
9.CFG Scale | どれだけプロントに近いイラストを生成するか |
10. Seed | Seedの数値と他の設定によって絵が決まる。-1にするとランダム |
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/image-24-800x430.png)
2. 各項目を変更しての比較
ここでは下記のプロンプトは変更しないで、各項目設定を変更したら、どのぐらい変化があるのかを比較します。
【Positive】
masterpiece, best quality, highres, (photo realistic:1.4),1girl, solo, medium breasts, portrait, (sitting), big blue eyes, school uniform, cute, young, black hair, hair professional lighting, (18 years old), indoors, chair,
【Nagative】
painting, sketches,(worst quality:2),(low quality:2),(normal quality:2), lowers, normal quality,((monochrome)),((greyscale)),skin spots, acnes, skin blemishes, age spot, nsfw, ugly face, fat
1. Sampling method | DPM++ 2M Karras (デフォルト設定はEuler a) |
---|---|
2. Sampling steps | 20 |
3. Restore faces | チェックなし |
4. Tiling | チェックなし |
5. Hires. fix | チェックなし |
6. Width, Height | 512×512 |
7. Batch count | 1 |
8. Batch size | 1 |
9.CFG Scale | 7 |
10. Seed | -1 |
上記でデフォルト設定で作成すると、下記の図が作成されました。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00000-3597541791.png)
①「Sampling method」をデフォルト「Euler a」で「Generate」すると、下図のように崩れた画像となります。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00032-3765859044.png)
「DPM++ 2M」でも崩れてます。特に今回使用している、「japanesedolllikeness_LoRA.ipyn」を使用する場合は、「DPM++ 2M Karras」を推奨します。
ちなみに、Sampling methodとは、統計学や機械学習、信号処理などの分野において、集合から一部を取り出す方法を指します。サンプリングにはランダムサンプリング、層別サンプリング、クラスタサンプリング、システマティックサンプリング、多段階サンプリングなど様々な種類があります。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00033-1111333283.png)
②「Sampling steps(ノイズからイラストに変えていくための回数)」のみを「20」から「100」に変更して「Generate」します。
どうですかね?あまり変化はないかもです。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00001-3008052482.png)
③「Restore faces(顔を綺麗にできる(美人になるとは限らない))」にチェックを入れます。
(先ほど変更した「Sampling steps」は「20」に戻しています。)
多少現実にありそうな顔になったかな?と思われます。(美人を少し抑えた気がします。)
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00002-1953897847.png)
④「Tiling(タイル状に並べる)」にチェックを入れます。
(先ほど変更した「Restore faces」は、チェックを外しています。)
なんだかわけの分からない画像になりました・・・、人物には向いてないのでしょうか。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00003-104737192.png)
⑤「Hires. fix(解像度を上げることができる)」にチェックを入れます。
(先ほど変更した「Tiling」は、チェックを外しています)
チェックを入れたところ、下図のように新たな項目が追加されましたが、デフォルトのままで「Generate」します。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/image-25-800x159.png)
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00004-1593411117-800x800.png)
左がデフォルト設定のプロパティ情報であり、右が④「Hires. fix」にチェックを入れたものです。
サイズが大きくなったのが分かりますが、別設定の「Width, Height」を1024×1024にすればいいのでは・・・・?と思いましたら、「Width, Height」を大きくすると二人出力されます。(下記⑤参照)
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/image-26-800x367.png)
⑥「Width, Height」を「512×512」から「1024×1024」に変更して「Generate」します。
(先ほど変更した「Hires. fix」は、チェックを外しています。)
なぜか、二人表示されるようになりました。3回やってもポーズなどは変化があっても、人は二人表示されます。「Positive」には1girlと入力しているのに。サイズや容量は上記④「Hires. fix」と同じでした。
このことから1人分の姿を記載しようと思ったら、「Width, Height」を「512×512」がベストであり、1024だと二人分記載されてしまう。大きいサイズを作成したい場合は、「Hires. fix」で調整すべきだと思いました。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00006-2336746377-800x800.png)
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00007-297559351-800x800.png)
⑦「Batch count(画像の枚数(何回バッチを行うか))」を「1」から「4」に変更して「Generate」します。(先ほど変更した「Width, Height」は「512×512」に戻しています。)
4枚生成されました。サイトには4枚を1枚にまとめたのを掲載していますが、1枚ずつのものも生成されているため、計5枚生成されいます。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/grid-0000-800x800.png)
⑧「Batch size(画像の枚数(1回のバッチで何枚の画像を生成するか))」を「1」から「4」に変更して「Generate」します。(先ほど変更した「Batch count」は「1」に戻しています。)
先ほど⑦Batch countと同じ4枚の画像が生成されました。
同じかなと思いましたが、Batch sizeは同じ構図で服や背景が異なることから
⑦Batch countは、4回新しく生成している。
⑧Batch sizeは、1回生成して、そこから同じものを追加3枚生成している
という使い分けができると思います。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/grid-0001-800x800.png)
⑦+⑧として、「Batch count」を3にして「Batch size」を2にしてみます。
分かりずらい結果ではありますが、3種類を2個ずつ作成された画像となりました。
(どれが同一種類のものか分かりずらいですが・・・・、同じ顔で複数作成したい場合、この方法が良いかもです。)
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/grid-0002-800x533.png)
⑨「CFG Scale(どれだけプロントに近いイラストを生成するか)」を「7」から「30(MAX)」に変更して「Generate」します。(先ほど変更した「Batch count」等は「1」に戻しています。)
明らかに不自然な画像となってしまいました。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00022-1633875000.png)
「CFG Scale」を「15」に変更して生成しましたが、それでも不自然な画像となります。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00023-87448950.png)
「CFG Scale」を「10」に変更して生成しましたが、それでもデフォルトの「7」と比較すると、違和感を感じる画像となります。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00024-2525247839.png)
「CFG Scale」を「1(min)」に変更して生成しましたが、今までの画像と比較して、別人物となってしまいました。「CFC Scale」は「7」ぐらいが適当なようです。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00025-2216900287.png)
⑩「Seed」を「-1」から「10000」に変更して「Generate」します。(先ほど変更した「CFG Scale」は「7」に戻しています。)
あまり変化がないような・・・・
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00026-10000.png)
「Seed」を「100000」に変更して「Generate」します。「10000」と比較しても、そこまで絵柄が変わるわけではないようです。
ここで「Seed」を調べたところ、「Seed」とは、ランダムな値を生成するための出発点となる、初期値や種となる値のことを指します。Seedは、同じ初期値から同じ疑似乱数が生成されるという性質を利用して、ランダムな値を生成するプログラムやアプリケーションで再現性を持たせることができます。例えば、乱数を使用して実験を行う場合、Seedを指定することで、同じ結果が得られるようにすることができます。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00027-100000.png)
そのため、「Seed」を「100000」のまま「Generate」をしたところ、全く同じ画像となります。
このことから画像は 「プロンプト」+「各設定」×「seed」=画像
となります。(先ほどまでは「seed」は「-1(ランダム)」なため、実施するたびに異なる画像となっていたと思われます。)
⑩’ 「Seed」を「100000」にしたまま、
「Positive」
masterpiece, best quality, highres, (photo realistic:1.4),1girl, solo, medium breasts, portrait, (sitting), big blue eyes, school uniform, cute, young, black hair, indoors, chair,
⇒hair professional lighting,及び(18 years old)を削っています。
にして、「Generate」しました。
髪型が少し変化があったぐらいで、他に変化はあまり見られません。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00029-100000.png)
さらにそのまま、「Positive」を「big blue eyes」を「big black eyes」に変更して「Generate」したところ
目が黒色??になっていますかね。(まだ青色に近いような・・・)しかも顎に手が生えてる・・。
![](https://cyber-security-forensic.com/wp-content/uploads/2023/05/00030-100000.png)
3. 考察(まとめ)
各設定を変えながら作成したところ、
・設定はデフォルトのままが良い(Sampling methodのみ「DPM++ 2M Karras」に変更する。)
・画像生成の基本は 「プロンプト」+「各設定」×「seed」=画像
で生成される。
・良い画像が作成されたら、「seed」を固定して、「プロンプト」を変更して作成してみると丁度いい微調整が可能となる。