dskjal

Waifu Diffusion で効率的に画像を生成する

カテゴリ:deeplearning

プロンプトリストはプロンプトよく検索されているプロンプト(R18)danbooru タグ検索を参照。

目次

ワークフロー

現代的(2025 年)なワークフローは以下のようになる。

  1. ベースとなる画像を生成する(ChatGPT や MidJourney や NovelAI でもよい)
  2. ローカルのモデルで以下の工程を一度に実行
    • 画風変換
    • アップスケール
    • 拡張機能の ADetailer のような機能を使って、パーツごとに切り出して i2i
  3. 細部を手動で修正

ADetailer で使えるパーツ検出モデルは Civital から探せる。「ADetailer」で検索するか、フィルタの Model > Detection を使うと早い。

著作権について

拾ってきた画像で img2img を使った場合、同一性保持権(20条1項)の侵害になる。

作例

ツールは reForge。モデルは WAI-NSFW-illustrious-SDXL の v7.0。

1. ベース画像生成

ベースと画風とでモデルを分けるのは、モデルごとに得意なことが違うからだ。ベース画像を生成するモデルは、構図・ポーズ・背景の上手さ・多様性で選ぶ。

プロンプト:
masterpiece, best quality, amazing quality, standing, contrapposto, linea alba, mature female, bra, cotton panties, crotch seam, indoors, curtains, futon, realistic,
ここにアーティストタグを入れる

ネガ:
worst quality, bad quality, worst detail, normal quality, good quality, censored, jpeg artifacts, lowres, bad hands, cropped, blurry, comic, sketch

832 x 1216, Euler a, 30 step, CFG Scale 5

2. ローカルでの変換

画風 LoRA やキャラ LoRA を適用して生成する。ポーズが崩れる場合は Controlnet を使用する。

img2img で、拡張機能の ADetailer を使って顔・ブラ・ショーツを加筆した。ADetailer の解像度は顔:1280 x 1280、下着:1024 x 1024。

プロンプト:
masterpiece, best quality, amazing quality, standing, contrapposto, linea alba, mature female, bra, cotton panties, crotch seam, indoors, curtains, futon, realistic,
ここにアーティストタグを入れる

ネガ:
worst quality, bad quality, worst detail, normal quality, good quality, censored, jpeg artifacts, lowres, bad hands, cropped, blurry, comic, sketch

Resize to 1280 x 1920, Euler a, 50 step, CFG Scale 7, Denoising strength 0.6

プロンプトの調査

作成したい画像に近いイメージの画像を Deep Danbooru に入れてタグを調べる。もしくはどこかからプロンプトを拾ってくる

AUTOMATIC1111 ならローカルで Deep Danbooru が使える

手元の画像と似た画像を生成したい場合

Control Net の Reference Only を使う

補正

Automatic1111 の Extension の After DetailerDotgeo(hijack) Detection Detailer は顔を検出して顔を加筆する。

After Detailer の例

After Detailer のプロンプトにのみ highly detailed eyes, glowing eyes, simple highlight を入れる方法がある。

元解像度: 768 x 1024<br/>After Detailer の解像度:1024 x 1024<br/>プロンプト:1girl close up in the classroom<br/>ネガティブ:realistic, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry<br/>After Detailer のプロンプト:highly detailed eye, highly detailed face

元解像度: 768 x 1024
After Detailer の解像度:1024 x 1024
プロンプト:1girl close up in the classroom
ネガティブ:realistic, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry
After Detailer のプロンプト:highly detailed eye, highly detailed face

highly detailed eyes, multicolored eyes, glowing eyes, long eyelashes がよく使われる。

書き込み量

Automatic1111 の Extension の CD(Color/Detail) Tuner は背景の書き込み量を調整できる。

LoRA の detail-tweaker-lora を使う方法もある。ウェイトを -1 にすると画面がシンプルになる。

sd-webui-detail-daemonComfyUI-Detail-Daemon)もある。

便利なツール

rembg

AI で背景を透過するツール。

txt2mask

テキストを使ってマスク部分を指定できるツール。

より詳細な解説

絵下手マンがWaifu Diffusionでファンアートを描く方法

続・絵下手マンがWaifu Diffusionでファンアートを描く方法 加筆ノウハウ編

より思い通りの画像を作る!img2img&フォトバッシュ複合ワークフローについて[StableDiffusion]

【全体公開】今から追いつく!AIイラスト超入門

AI画像生成を利用した着色高速化ワークフロー[NovelAI]

ぶるぺん流AIイラスト生成術

新機能『Depth to image』でベース画像の形状を維持したまま画像生成

実録:AIで描く漫画の実際 ~AIで今風の手描きっぽい漫画を作ってみる

アニメ

AIと3D利用したアニメ制作 統一性のある背景を様々なアングルから生成

AIを活用して簡単なアニメーションを作る方法!一貫性を保ちつつ手軽にキャラクターを動かそう【ControlNet活用術】

差分生成の実例

ControlNet の Canny を使う方法

使用しているツールは reForge。Canny のモデルは bdsqlsz_controlllite_xl_canny.safetensors。ただし anytest の方が性能が良い。

全裸画像を作ってから後から服を着せる方が楽。

設定例

設定例

作成した画像

作成した画像

活用法

活用法

表情差分

以下の設定が有効

作例

作例

AUTOMATIC1111 の Prompt S/R を使う方法

プロンプトを切り替えて差分を作成する方法。シードを固定してもポーズや構図が固定できない。場所やシチュエーションを切り替えて、紙芝居的な使い方をするとよい。

モデルは NoobAI XL 1.0

モデルは NoobAI XL 1.0

prompt
masterpiece, best quality, newest, absurdres, highres, shiny colors, (realistic:0.3), black short hair, standing, school uniform, looking at viewer, 1girl, solo, skinny, (abs:0.4), architecture, school, indoors, desk

negative prompt
oldest, old, flat color, worst quality, bad quality, normal quality, good quality, thong, lowleg, g-string, lace, jacket, jpeg artifacts, lowres, bad hands, cropped, blurry, comic 

prompt S/R
"solo, ","1other, cellphone, hypnosis, hypnosis app, empty eyes,","1other, cellphone, hypnosis, hypnosis app, empty eyes, undressing, lace-trimmed bra,"

インペイントで裸画像を先に作る実例

着せたい服がきまっている場合、先に裸画像を作る。そうすると肌のトーンの調整をする必要がなくなる。

ネガティブプロンプトは共通で long body, monochrome, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry

プロンプト例:masterpiece, best quality, 1girl, completely nude in the park, blue archive, genshin

プロンプト例:masterpiece, best quality, 1girl, completely nude in the park, blue archive, genshin

インペイントで下着差分をつくる

インペイント

インペイント

プロンプト例:masterpiece, best quality, 1girl in the park, blue archive, genshin, underware, bra, panties

プロンプト例:masterpiece, best quality, 1girl in the park, blue archive, genshin, underware, bra, panties

インペイントで服差分をつくる

インペイント

インペイント

プロンプト例:masterpiece, best quality, 1girl wearing a dress in the park, blue archive, genshin

プロンプト例:masterpiece, best quality, 1girl wearing a dress in the park, blue archive, genshin

インペイントで服を先に作る実例

生成した画像

seed=214927526<br/>inference steps=15<br/><br/>prompt<br/>bishojo, full body, view straight on, a girl wearing white one-piece with white marble glowing skin and perfect symmetrical pretty face with blush cheeks and light green long hair and glaring eyes on sunny day standing,  golden hour lighting, strong rim light, art by krenz cushart and violet evergarden<br/><br/>negative prompt<br/>deformed, bad anatomy, disfigured, mutation, mutated, extra limbs, ugly, fat, missing limb, floating limbs, disconnected limbs,long neck, long body, part of the head, mutated hands and fingers, intricate human hands fingers, poorly drawn hands, malformed hands, poorly drawn face, poorly drawn asymmetrical eyes

seed=214927526
inference steps=15

prompt
bishojo, full body, view straight on, a girl wearing white one-piece with white marble glowing skin and perfect symmetrical pretty face with blush cheeks and light green long hair and glaring eyes on sunny day standing, golden hour lighting, strong rim light, art by krenz cushart and violet evergarden

negative prompt
deformed, bad anatomy, disfigured, mutation, mutated, extra limbs, ugly, fat, missing limb, floating limbs, disconnected limbs,long neck, long body, part of the head, mutated hands and fingers, intricate human hands fingers, poorly drawn hands, malformed hands, poorly drawn face, poorly drawn asymmetrical eyes

マスクと修正した画像

修正画像は描く必要はない。Google 画像検索でそれっぽいのを拾ってきて、張り付けてもいいし、DAZ Studio で作成してもいい。今回は画像を少し拡大している。採用した画像は 20 枚作成したうちの1枚。

マスク

マスク

加工した画像

加工した画像

seed=787776388<br/>inference steps=26<br/>denoising strength=0.5<br/><br/>prompt<br/>bishojo, view straight on, a girl wearing luxury lingerie , jewelry,  ring,  louis comfort tiffany, garterbelt, stocking with white marble glowing skin and  light green long hair and glaring eyes on sunny day standing,  golden hour lighting, strong rim light, art by krenz cushart and violet evergarden<br/><br/>negative prompt<br/>生成に使ったのと同じ

seed=787776388
inference steps=26
denoising strength=0.5

prompt
bishojo, view straight on, a girl wearing luxury lingerie , jewelry, ring, louis comfort tiffany, garterbelt, stocking with white marble glowing skin and light green long hair and glaring eyes on sunny day standing, golden hour lighting, strong rim light, art by krenz cushart and violet evergarden

negative prompt
生成に使ったのと同じ

結果

合成結果

合成結果

写真を使う場合

使わせていただいた画像は[無料写真] メイド服を着て座る台湾人女性。自撮り画像を使ってもいいし、デッサン人形に服を着せた写真を使ってもいい。3Dなら MMD や VRoid Studio、DAZ|Studio などがある。

入力画像

入力画像

結果

seed=453989191<br/>inference steps=50<br/>denoising strength=0.55<br/><br/>prompt<br/>view straight on, small breasts, a blonde bishojo wearing a black maid cosplay with white marble glowing skin and perfect symmetrical pretty face with blush cheeks and light green long hair and glaring eyes on sunny day standing,  golden hour lighting, strong rim light, art by krenz cushart and violet evergarden<br/><br/>negative prompt<br/>deformed, bad anatomy, disfigured, mutation, mutated, extra limbs, ugly, fat, missing limb, floating limbs, disconnected limbs,long neck, long body, part of the head, mutated hands and fingers, intricate human hands fingers, poorly drawn hands, malformed hands, poorly drawn face, poorly drawn asymmetrical eyes

seed=453989191
inference steps=50
denoising strength=0.55

prompt
view straight on, small breasts, a blonde bishojo wearing a black maid cosplay with white marble glowing skin and perfect symmetrical pretty face with blush cheeks and light green long hair and glaring eyes on sunny day standing, golden hour lighting, strong rim light, art by krenz cushart and violet evergarden

negative prompt
deformed, bad anatomy, disfigured, mutation, mutated, extra limbs, ugly, fat, missing limb, floating limbs, disconnected limbs,long neck, long body, part of the head, mutated hands and fingers, intricate human hands fingers, poorly drawn hands, malformed hands, poorly drawn face, poorly drawn asymmetrical eyes

ツールの選択

以下の3つがよく使われている。

Stable Diffusion モデルリンク

最近リリースされたモデルは CIVITAIhuggingface を探せば見つかる。

古いモデルは Stable Diffusion の古い情報に移動した。

XL

Illustrious XL 2.0

Illustrious XL 1.0

タグで版権キャラが出しやすい。年代タグを使うと画風を変化させられる

派生モデルは NoobAI-XL が人気が高い。NOOBAI XL Quick GuideSeaArt Guide NOOBAI XL

アーティストブレンド例

NoobAI の派生では copycatWAI-NSFW-illustrious-SDXL が人気だ。

Illustrious XL v0.1

Pony

エロに強いモデル。クオリティタグが特殊

Pony Diffusion V6 XL

Pony Diffusion for Anime

ebara pony

3x3x3mixXL

ドット絵

MiaoMiao Pixel

そのほか

ArtiWaifu Diffusion 1.0

AAM XL (Anime Mix)

ANIMAGINE XL 3.1 Announcing Animagine XL 3.1

Animagine XL V3 使い方が特殊なので詳細は公式ブログを参照。

モデルマージ

Merge Models

Models, Embeddings, and Hypernetworks

STABLE DIFFUSION MIXING EMPORIUM

階層マージ

Merge Block Weighted - GUI (U-Net のブロックごとにマージ比率を変える)

Safetensor Merger Multi Thread

NovelAI 5ch Wiki#階層マージ

Stable DiffusionのモデルをU-Netの深さに応じて比率を変えてマージする

sd_merge_numa (マージしてサンプル画像を出力する検証用 Extension)

蒸留モデル

蒸留モデルは少ないステップ数で生成できるが、品質は若干落ちる。また、CFG Scale を下げる必要があるのでネガティブプロンプトの効きが悪くなる。低 CFG でネガティブプロンプトが使いたい場合は NegPip を使う。

ODE サンプラーを使う場合、初期ノイズが決まればデノイズ結果も一意に決まる。ならば初期ノイズから1ステップでデノイズするモデルも理論上作成可能、というのが蒸留モデルの考え方だ

では最初から蒸留モデルを作成すればいいのではないか、と考えるかもしれないがそれはできない。なぜなら蒸留モデルの学習にはノイズ画像と、ノイズから生成された画像との両方が必要だからだ。DMD2 ではノイズから生成されていない画像も使用して diffusion loss と GAN loss をフィードバックすることにより、教師モデルより高品質な画像生成を可能にした。

DMD2

LoRA の DMD2 を適用すると4ステップ前後で生成できる。

使い方
1. CFG Scale を1に近い値(1.01~1.5 など)にする

CFG Scale を1にするとネガティブプロンプトが使えなくなるので手打ちで CFG Scale を入力する。ただし2未満の CFG はネガティブプロンプトの効きが悪い。低 CFG でネガティブプロンプトが使いたい場合は NegPip を使う。

2. まともに生成できるサンプラーを探す

X/Y/Z plot で上手く描けるサンプラーとスケジューラーの組み合わせを探す。公式は LCM サンプラーを使っているようだ

たとえば NoobXL 1.0 ε Pred では Sampling Method:DPM++ SDE・Eular a・DDPM・LCM、Schedule Type:Automatic・Uniform・SGM Uniform・Simple・Turbo が相性が良い。Highres fix. を使う場合は CFG Scale を2ぐらいまで上げられるが、色が濃くなる。

3. 調整する

Hyper SD

Hyper SDDMD2 同様に高速化する LoRA だ。DMD2 が4ステップ前後で生成するのに対しこちらは8ステップかかる。DMD2 はステップ数を上げると破綻するが、Hyper SD はステップ数を上げて書き込み量を調整することができる。

TDD

TDD は DMD2 より Hyper SD に近い。

Stable Diffusion のパラメーターの解説

CFG Scale

拡散モデルはノイズ画像からノイズを予測し、ノイズ画像から予測ノイズを除去することで絵を描く。

CFG Scale は予測ノイズの強度をスケールするパラメータだ。5~9が適正値で以下のような特徴がある。作例のプロンプト・ネガティブプロンプト・シード値は同じで、違いは CFG Scale とステップ数のみ。

CFG Scale が高い場合

CFG Scale=14, Sampling steps=20

CFG Scale=14, Sampling steps=20

CFG Scale が低い

CFG Scale=3, Sampling steps=100

CFG Scale=3, Sampling steps=100

詳細な解説

CFG Scale は Classifier-Free Diffusion Guidance が詳しい。拡散モデルに追加の classifier ネットワークを追加して同時に学習すると性能が向上するが、classifier のみを分離できず、ネットワークも複雑になる。Classifier-Free Diffusion Guidance ではプロンプトなしのノイズ予測を利用して classifier 利用時と同じような性能向上を実現した。この論文ではプロンプトありのノイズ予測から、プロンプトなしのノイズ予測を引き算している。その結果のスケール量が CFG Scale だ。

Stable Diffusion 1.5 では以下のコードで CFG Scale が使われている

e_t_uncond, e_t = self.model.apply_model(x_in, t_in, c_in).chunk(2)
e_t = e_t_uncond + unconditional_guidance_scale * (e_t - e_t_uncond)

このコードはプロンプトのみを使ったノイズ予測から、プロンプトを使わないノイズ予測を引き算している。CFG Scale は引き算後の計算結果をスケールするのに使われている。このプロンプトを使わないノイズ予測の部分に描いてほしくないプロンプトを使うというコンセプトがネガティブプロンプトだ。

CFG Scale は単純に予測ノイズをスケールしているだけなので、CFG Scale を低くする場合はステップ数を多くしないとノイズ除去が不十分になる。逆に CFG Scale が高すぎると、ノイズ除去が強すぎて意味のある画像が出力されない。

また数式から、CFG Scale(unconditional_guidance_scale)= 1 の時ネガティブプロンプトの効果がなくなることがわかる。

外部リンク

Classifier-Free Diffusion Guidance

Guiding a Diffusion Model with a Bad Version of Itself

サンプラー

サンプラーはネットワークが予測したノイズを利用して、ノイズを除去する。ノイズ除去にはいろいろな方法がある。例えば、

ODE V.S. SDE

サンプラーの分類方法は速度や収束するかどうかで分けられることが多いが、重要なのは SDE か ODE かだ。SDE は名前に SDE や後ろに小文字の a がつく(Euler a や DPM++ 2M SDE など)。それ以外は ODE のサンプラーだ。

ほとんどの SDE サンプラーは ODE サンプラーにノイズを付与しただけだ(Euler にノイズ項を足すと Euler a、DPM++2M にノイズ項を足すと DPM++ 2M SDE)。付与するノイズもすべての SDE サンプラーで同じ。

サンプリングエラー

サンプリングエラーは近似エラーと離散化誤差とがある。SDE と ODE との近似エラーは同じで、ODE に対し SDE は 離散化誤差が大きいにもかかわらずサンプリングの品質がよい。この理由は SDE のノイズ付与がエラーの蓄積を縮小するからだ。

サンプリングエラーの合計は、今までのエラーの蓄積+新しくサンプリングする際のエラーだ。SDE のサンプリングエラーの合計が ODE よりも小さくなる理由は、ノイズ付与による離散化誤差の増加よりも、ノイズ付与による今までのエラーの蓄積を縮小する効果が大きいからだ。

SDE サンプラーのサンプル回数

サンプル回数が多いとステップ1回にかかる時間が長くなるが、その分ステップ数は小さくできる。

1回

2回

Restart サンプラー

Restart サンプラーは ODE と SDE の良いとこどりをしたもの。SDE は毎ステップノイズを付与していたが、サンプリングエラーが蓄積していないサンプリング前半にノイズ付与をやっても意味がない。これは計算の無駄が多く、画質にも影響がある。

Restart サンプラーはサンプリングエラーの蓄積した中盤に最大2回ノイズを付与する。ノイズを付与する際に σ の再サンプリングを行い、少し前(現在の σ + 2)の σ からやり直す所が特徴的な部分だ。

Restart はサンプラーではなくサンプリングフレームワークなので、本来なら任意の ODE サンプラーが選択できるが、Automatic1111 の実装では Heun か Euler になる。デフォルトは second_order が True なのでデノイズに Heun が使われる(False の場合は Euler)。

Restart のスケジューラー

Restart サンプラーはスケジューラーに karras が強制される

ステップ数とリスタート(ノイズ付与)回数

ステップ数 20 回の場合、ステップ 10 の時に1回ノイズ付与が行われる。ステップ数 35 の場合は、ステップ 23 の時に1回ノイズ付与が行われる。

ステップ数 36 回の場合、ステップ 16 の時とステップ 25 の時とに、2回ノイズ付与が行われる。

外部リンク

Restart Sampling for Improving Generative Processes

sd_samplers_extra.py

LCM

普通のサンプラーはノイズ画像とデノイズ結果とをブレンドしてデノイズしていく。しかし LCM は元のノイズ画像をブレンドするのではなく、デノイズ結果に元のノイズ画像に相当するノイズ量を新たに付与する。SDE と違い LCM は付与するノイズ量が多い。

sd_samplers_lcm.py

サンプラーの選択

サンプラーの選択については Understanding Stable Diffusion Samplers: Beyond Image Comparisons が詳しい。

しかし現在ではモデル制作者が推奨のサンプラーを指定することが多いので、それを使う。

外部リンク

Understanding Stable Diffusion Samplers: Beyond Image Comparisons

Stable Diffusion Samplers: A Comprehensive Guide

Sampler Scheduler for Diffusion Models

CFG++: Manifold-constrained Classifier Free Guidance For Diffusion Models

DDPM, DDIM, SDE のサンプラーや拡散モデルの解説は Diffusion Models: Tutorial and Survey が詳しい。

DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models

k-diffusion/k_diffusion/sampling.py

Euler-Smea-Dyn-Sampler

UniPC: A Unified Predictor-Corrector Framework for Fast Sampling of Diffusion Modelsuni_pc.py

スケジューラー

スケジューラーは各タイムステップでのデノイズ量をきめる。具体的にはタイムステップを、除去するノイズ量を決定する σ に変換する。実際は σ の勾配がデノイズ量をきめている。

Automatic を選択した場合はモデル内臓の σ テーブルが使われる

SGM Uniform は設定で sigma_max や sigma_min を変更しない限り、Uniform と同じだ。Polyexponential も関数のパラメータを変更しない限り Exponential と同じ。

σ とデノイズ量との関係

デノイズ量は σ の傾きで決まる。σ の傾きが水平に近いほどデノイズ量は小さい。σ の傾きが水平に近いとき、以下の式の σi+1i は1に近くなる。

Euler サンプラーの数式<br/>この数式では D<sub>θ</sub>(x<sub>i</sub>) はデノイズ後の画像

Euler サンプラーの数式
この数式では Dθ(xi) はデノイズ後の画像

Step=30 のときの σ の変化<br/>このグラフでは低いタイムステップで強くデノイズがかかっているように見えるがそうではない

Step=30 のときの σ の変化
このグラフでは低いタイムステップで強くデノイズがかかっているように見えるがそうではない

Step=30 のときのデノイズ量の変化。1に近いほどデノイズが<u>弱い</u>

Step=30 のときのデノイズ量の変化。1に近いほどデノイズが弱い

外部リンク

KL Optimal Align Your Steps : Optimizing Sampling Schedules in Diffusion Models

拡散モデルノイズスケジューリングの実装とベンチマーク

On the Importance of Noise Scheduling for Diffusion Models

sd_schedulers.py

シード

拡散モデルはノイズ画像からノイズ除去を繰り返すことで絵を描く。その初期ノイズの乱数パターンを指定する。シードを固定しても、解像度を変更すると絵は大きく変わる。

Denoising Strength のアルゴリズム

img2img

  1. ステップ数と Denoising Strength を掛けたものをステップ数にする(これを t_enc とする)
  2. σ テーブルのうしろから、 t_enc 個 σ を取得
  3. 取得した σ を使ってデノイズ

バッチカウントとバッチサイズ

小さい画像サイズでプロンプトの調整をする場合は、バッチサイズを最大にすると速い。

バッチカウントは画像の生成枚数。バッチサイズは並列生成する枚数だ。最終的な生成枚数はバッチカウント×バッチサイズになる。

バッチサイズは余計に VRAM を消費するが生成は速くなる。RTX 3050 で 384x512 のサイズの画像を作成する場合、以下のような結果になった。

バッチカウントバッチサイズ生成にかかった時間(秒)VRAM 使用量(GB)
81154.1
18105.1
161314.1
116195.9

GPU の種類と画像生成時間

VRAM で生成できる解像度の上限が決まるので、VRAM で GPU を選ぶ。最低ラインは 12 GB。8GBでも生成なら問題ないが、将来性に不安がある。

【Stable Diffusion】AIイラストにおすすめなグラボをガチで検証【GPU別の生成速度】

NovelAI 5ch Wiki#結果一覧も情報が多い。

Tips

上手く描けない場合はアスペクト比を変えてみる

1:1のアスペクト比で上手く描けない場合は、縦長や横長にすると上手く描ける場合がある。人物は縦長の方が形が崩れにくい。船は横長だと上手く描ける。

胴長になる場合は、高さの解像度が高すぎる。高解像度にしたい場合は、丁度良いバランスの解像度で生成し、 hires. fix を使う。

身体が切られる場合は映す部位の指定する

顔に注目させたいなら face close-up。

膝や脚まで入れるなら head to knee や head to leg。

バストアップなら breast。

上半身なら upper body。

膝より上の場合なら "full body, thigh" をプロンプトの先頭に持ってくる。

すねも入れるなら "full body, legs" をプロンプトの先頭に持ってくる。

足も入れるなら "leg line" や "full body, shoes" をプロンプトの先頭に持ってくる。

クオリティタグを使う

モデルによっては masterpiece, best quality, score_9 などのクオリティタグが存在する。プロンプトでそれらを指定することで、クオリティを上げられる。

CFG Scale を上げる

CFG Scale を上げると簡単に画力を上げられるが、ポーズや構図がありきたりになる。上げすぎるとコントラストや彩度が高い、くどい絵になる。

解像度を上げると頭や体が複数融合する

AUTOMATIC1111 の Highres. fix を使う。

細部の修正

Automatic1111 の Variations を使う

シード横の Extra にチェックを入れると使える。弱いノイズを追加しちょっと違う絵を出力する。

つまり、シードを固定し、細部が治るまで Variations シードガチャをする。

手動修正

AUTOMATIC1111 の拡張機能の ADetailer 等はこの項目の工程をすべて自動化してくれる。

Stable Diffusion (Waifu Diffusion)は細部が崩れやすい。全身が入る構図だと確実に顔が崩れる。なので、細部の修正に inpaint を使うのは意味がない。細部を修正する場合は inpaint を使うのではなく、以下のように自力で合成する。

  1. 適当なペイントソフトで修正したい部分を切り出して 512px * 512px に拡大
  2. 切り出した画像を img2img に入力して、同じプロンプトで再度画像を生成
  3. 生成した画像をペイントソフトで縮小して合成
元画像<br/>extremely detailed CG unity 8k wallpaper of a loli girl with silver long wavy hairstyle and white marble glowing skin and perfect symmetrical pretty face with blush cheeks and glaring red eyes, wearing fantasic dress with many frills, standing in the baroque architecture, art by krenz cushart and violet_evergarden, golden hour lighting, strong rim light, intense shadows, bokeh<br/><br/>seed=246225998

元画像
extremely detailed CG unity 8k wallpaper of a loli girl with silver long wavy hairstyle and white marble glowing skin and perfect symmetrical pretty face with blush cheeks and glaring red eyes, wearing fantasic dress with many frills, standing in the baroque architecture, art by krenz cushart and violet_evergarden, golden hour lighting, strong rim light, intense shadows, bokeh

seed=246225998

切り出して加筆した画像

切り出して加筆した画像

生成された画像(10枚作成した内の1枚)

生成された画像(10枚作成した内の1枚)

合成結果

合成結果

手の修正

Waifu Diffusion (Stable Diffusion)は手が上手く描けない。この対策は2つある。ひとつはネガティブプロンプトを使う方法で、もうひとつは自分の手を使う方法だ。

自分の手を使う方法

自分の手をスマホで撮影して、手の部分を切り出して出力画像に張り付ける。その加工した画像を img2img に入力する。

Clip Studio Paint で手の3Dオブジェクトを使う方法がある。

手の自由度

手の自由度低いポーズは上手く描ける。例えば skirt hold, skirt lifted by self, spread pussy, double v など。

高解像度化

AUTOMATIC1111での高解像度化は以下の方法が高品質だ。

  1. Highres fix でマシンが生成できるの最大解像度で生成する
  2. アップスケーラーで高解像度化する

高解像度化手法

高解像度化には2つの方法がある。アップスケーラーを使う方法と、アウトペインティングを使う方法とだ。

アップスケーラー

アップスケーラーは AI を使って画像を拡大する。

アウトペインティング

アップスケーラーと違い、アウトペインティングはすでに作成した画像に追記して拡張する。アウトペインティングは AUTOMATIC1111 で使える。

色のコントロール

AI が色の指定を無視した場合に、色を修正する方法は5つある。

  1. ペイントアプリで編集する
  2. インペイントで編集する
  3. CFG Scale を上げる
  4. AUTOMATIC1111 の Prompt Editing を使う

プロンプト

プロンプトで出力を詳細に制御するのは不可能だ。img2img を使って画像を加工する方がはるかに早い。今後も Stable Diffusion を使うつもりがあるならば、板タブか液タブを買って、基本的な画像編集ができるようになった方がいい。

ネガティブプロンプトはとても強力だ。『描いてほしくないもの』を指定することで効率的な絞り込みができる。

Danbooru タグ列挙法は Stable Diffusion の古い情報 に移動した。

テキスト生成AIを使う方法

ChatGPTによるプロンプトの生成

ChatGPT、Bingによるプロンプトの生成・変換(NyaFuさんバージョン)

プロンプトの探し方

danbooru

danbooru は日本語で検索できる。

魔術書(Novel AI)

NovelAI 5ch Wiki

NovelAI 5ch Wiki#詠唱全文

ムフフな元素法典 v1.1

AIイラストテクニック

I USE STABLE DIFFUSION USING DANBOORU/WAIFU MODEL (ビクトリア朝油彩)

Faces-Faces-Faces

Stable Diffusion Prompt Book

Prompt Search

배경학개론(背景学概論)

中国語

元素法典——Novel AI 元素魔法全收录

元素法典の日本語翻訳

NovelAI元素法典(第1巻)の日本語訳

禁忌魔典(異形・クリーチャー・流血表現)

元素法典第一点五卷——Novel AI 元素魔法全收录

元素法典第贰卷

解构原典 Deconstructive canon

元素同典(AUTOMATIC1111 の使い方)

ツール

プロンプトジェネレーター

Novel AI プロンプトジェネレータースプレッドシート

魔咒百科词典(プロンプトジェネレーター)

NovelAI Tag Generator。右クリックして翻訳できる。

NovelAIのプロンプトを管理・調整するChrome拡張を作りました

タグ調査

danbooru のタググループ

aibooru

Deep Danbooru

アップロードした画像の Danbooru タグを教えてくれる。

メタデータ閲覧

PNG file chunk inspector

imginfo

TweakPNG (Windows アプリ)

画像が AUTOMATIC1111 で作成された場合、プロンプト等の情報は画像ファイルに埋め込むこともできる。画像があればプロンプト等が公開されていなくてもこれで確認できる可能性がある。

clip-interrogator

画像からプロンプトを推測するツール。AUTOMATIC1111からも使える。

DeepL

日英翻訳。日本語で書いた文章を翻訳して、そのままプロンプトに入れる。

Lexica

テキストから、他の Stable Diffusion のユーザーが作成した画像を調べられる。

NovelAI Prompt整理ツール

スプレッドシートを使ったプロンプト管理ツール。

Stable Diffusion Prompt Generator

プロンプトを入力すると、アーティストや場所やライティングのプロンプトを追加してくれるジェネレーター。

クオリティタグ

モデルによっては masterpiece, best quality, score_9 などのクオリティタグが存在する。プロンプトでそれらを指定することで、クオリティを上げられる。

クオリティタグは学習素材の不足が原因で使われている。モデルの学習には大量の画像が必要で、masterpiece の画像だけでは学習するのに不十分だ。より少ない学習画像で学習できる方法が見つかれば、クオリティタグは不要になるかもしれない。

ワードのウェイト

プロンプトの語順は前のほうが影響力が強く、後ろの方の語は無視されやすい。

無視してほしくない語は繰り返すのが有効。たとえばショートケーキを出したければ、"strawberry shortcake, tiny golden puppy eating strawberry shortcake” とする。これが単に "tiny golden puppy eating strawberry shortcake" だと、ショーケーキが無視されて苺だけが出現したりする。

AUTOMATIC1111 のウェイト

AUTOMATIC1111は () でポジティブなウェイト、[] でネガティブなウェイトをつけられる。() や [] は重ねると強調される。後ろの方のプロンプトは無視されがちなので、その対策によく使われる。

a girl with [silver] hair and (blue eyes:1.2)
ウェイト V.S. 位置

ウェイトよりプロンプトの位置の方が影響力が強い。なので画風の影響力を小さくしたい場合は、画風やアーティストタグをウェイトだけ調整するのではなく、プロンプト後方へ配置するとタグの影響力を制御できる。

ウェイトの場所
出典:boards.4chan.org/h/thread/6856108#p6856938

出典:boards.4chan.org/h/thread/6856108#p6856938

文字通りの ()

AUTOMATIC1111 では "\(\)" で文字通りの () が入力できる。文字通りの () は danbooru タグで名前の衝突を解決するときによく使われる。

参考リンク

SD GUIDE FOR ARTISTS AND NON-ARTISTS IN-DEPTH TIPS, TRICKS, TUTORIALS AND MORE

Understanding Weights

プロンプトのトークンについて

プロンプトは最長で 75 トークン。1単語1トークンとは限らない。

Stable Diffusion のテキストエンコーダーは大文字小文字を区別しない。

Stable Diffusion のテキストエンコーダーの語彙は3万語程度。

プロンプトのトークン制限

プロンプトのトークン数の制限は、使用しているテキストエンコーダーに依存する。Stable Diffuison は 75 トークンが上限になる。

この制限がないツールはプロンプトを分割してトークンに変換した後、トークンをマージすることでこの制限を回避している。なので文の途中でプロンプトが分割されると、意図しない出力になる。AUTOMATIC1111 では BREAK を入れると任意の位置でプロンプトを分割できる。

外部リンク

Stable Diffusion Akashic Records

ネガティブプロンプト

ネガティブプロンプトも通常のプロンプト同様に 75 トークンまでしか認識しないが、トークンマージによって制限を回避しているツールもある

使用例

たとえば目を閉じさせたいとする。closed eye をプロンプトに指定しても目を閉じない場合に、open eye をネガティブに入れる。

言外の意味(connotation)の除去にもネガティブプロンプトは使える。たとえば blonde は女性の金髪という意味を持っている。blonde から女性の意味を除去するにはネガティブプロンプトに woman や girl を入力する。

ショーツを途中まで脱がせる panty pull という言葉がある。しかし panty pull には panty が含まれるので、二重にショーツをつけている絵がよく出力される。プロンプトに panty pull を指定し、ネガティブに panties を指定することで、二重ショーツ問題に対処できる。

線画の着色にもネガティブプロンプトが使える。ラフを img2img するさいに monochrome をネガティブにすると線画に色をつけてくれる。ただし確実ではないので下塗りをした方がいい。

ネガティブプロンプトは検証が必要だ。 mutated hands and fingers の検証では手をうまく描くのではなく隠すようになっている。

注意点

ネガティブプロンプトはプロンプトとして入力しても効果のあるものでないといけない。たとえば danbooru タグで訓練されたモデルで、データが 90 程度しかない missing finger をネガティブプロンプトに入れてもその効果はない。

ネガティブプロンプトは予期しない画質や画風の変化が起こることがある。なので、プロンプトや extension で解決できない問題のみをネガティブプロンプトで解消するようにした方がいい。

人体に関する汎用ネガティブプロンプト

以下のネガティブプロンプトを入れると画力が上がる。

Novel AI のデフォルトネガティブプロンプト

lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry

全体

bad art, ugly, messy drawing, flesh pile

flesh pile=蓮コラ。

身体・手足

deformed, bad anatomy, disfigured, mutation, mutated, extra limbs, fat, obese, missing limb, floating limbs, disconnected limbs, long neck, long body, part of the head, poorly drawn feet, mutated skeleton, long skeleton, bad proportions, 2girls, snuggled, dismemberment

変な場所から手や脚が生えるのは 2girls や 3girls、snuggled をネガティブに指定する。

分詞形(deformed や mutated、drawing など)は2トークン消費する。

手・指

mutated hands and fingers, intricate human hands fingers, poorly drawn hands, malformed hands, bad hands

poorly drawn face, poorly drawn asymmetrical eyes, big ears, mutated face

nose:鼻を点で描いた画風になりやすくなる。

head out of frame :顔の大部分が切られる場合

smile, happy, pleasure:目のハイライトを消す

表情

troubled eyebrows, blush, smile, happy, pleasure:無表情を作りたいときに

open mouth, teeth:口を閉じさせたいときに

エルフ耳

sharp ears, pointy ears, animal ear

乳首

extra nipples

巨乳

tits, huge breast

横乳

sideboob

画風に関するネガティブプロンプト

リアル風・3DCG風

portrait, portrait face は Danbooru のタグにないので、これを入れるとリアル風の画風を抑制してくれる。

portrait, portrait face, doll, photo face, Korean face, Asian face, African face

octane render, 3d, unity, unreal, maya :3DCG風になる場合、octane render は特に効果がある。

アニメ・イラスト風

anime, comic, manga :リアル寄りにしたい場合

カートゥーン

western

ボケ

blurry, blur, out of focus, bokeh, fog

平坦な色使い

flat shading, flat color:画面が華やかになる

グレー

grayscale, black&white, monochrome :カラー画像を出力したい場合。漫画からデータを拾ってくるとよくグレーになる。

文字

text, text title signature

漫画の吹き出し

speech bubble

コマが割られる

multiple views, comic, manga, split screen

アーティスト

変な絵を描くアーティストをネガティブに入れておくと変な絵は出にくくなる。

(pablo picasso), (H.R. Giger), (Gustave Dore), (Chaim Soutine), (Flora Borsi), (vincent van gogh), (paul gauguin), cubism

複数人生成する場合

1girl, solo, symmetrical

symmetrical が入っているのは、全員が正面顔でこちらを見ている絵が出ないようにするため。

yiffy モデルでケモ成分をおさえる

animal, furry

ネガティブプロンプトの実装

ネガティブプロンプトは CFG Scale と関連が深い。もともとの CFG Scale はプロンプトなしのノイズ予測を使用して、性能を向上するテクニックだった。そこで、プロンプトなしのノイズ予測ではなく、描いてほしくないプロンプトのノイズ予測を利用したのがネガティブプロンプトだ。

ネガティブプロンプトはプロンプトを引き算しているのではない。プロンプトのみを使って予測したノイズとネガティブプロンプトのみを使って予測したノイズとを引き算している。引き算した結果は CFG Scale でスケールされるが、詳細は CFG Scale を参照。

AUTOMATIC1111 の Prompt Editing

Prompt Editing は画像生成の途中でプロンプトを変更する機能だ。Prompt Editing を使うと通常では不可能な表現が可能になる。たとえば "a girl [wearing a onepiece:naked:0.5]" とすると、服が透けている表現になる。これはステップ数が 50 とすると、最初の 1~25 ステップは "a girl wearing a onepiece" を実行し、26~50 ステップは "a girl naked" を実行する。

色のコントロール

Prompt Editing

黒いドレスと銀髪の例

Regional Prompter

Automatic1111 の Extension の Regional Prompter はプロンプトの効く領域を指定できるので、これで対策することもできる。

BREAK

プロンプトに BREAK を入れると、プロンプトが分割される。色ごとにプロンプトを分割すると色移りしづらくなる。

顔に影ができる

2つ方法がある。

  1. レフ板 LoRA を使う
  2. (backlighting:1.3), (underlighting:1.3) で露出アンダーにした後で、ツールで明るさを持ち上げる(トーンカーブで赤をすこし持ち上げる)

Stable Diffusion のプロンプト Tips

何も指定しない(たとえば "a kawaii girl")と平面的な絵しか出てこない。なのでディティールの足りない部分を見つけて、プロンプトに追加していく必要がある。

プロンプトの語順は前のほうが影響力が強く、後ろの方の語は無視されやすいので、複数の色を指定するプロンプトは制御しづらい。たとえば "a loli girl with long white hair wares pink dress and blue shoes." のようなプロンプトでは青い靴は無視されがちになる。青い靴を文頭に持ってくると、服や髪が青くなったりする。

語には言外の意味(connotation)が含まれる。たとえば blonde は金髪だけではなくて、女性にたいして使われることが多い。blonde から女性の意味を除去するにはネガティブプロンプトに woman や girl を入力する必要がある。

2つのオブジェクトを融合するのに as が使える。たとえばヨーダのようなガンジーを描くには "ghandi as yoda" にする。

人物を作成するには、プロンプトに以下の5つの要素を入れるといい。ただしプロンプトの語順は前のほうが影響力が強いので、背景より人物が重要な場合は、人物を先に描写する必要がある。背景を先に描写してしまうと人物をどれだけ詳細に書いても無視されることがある。逆に人物を先に描写するとポートレート風の画像がよく作成される。

色に関する Danbooru タグは tag group:colors を参照。

ポストエフェクト

プロンプト<br/>masterpiece, best quality, amazing quality, 1girl, solo, blurry background, blurry foreground, chromatic aberration, depth of field, lens flare, backlighting, film  grain, bokeh, perspective, diffraction spikes, faux traditional media, vignetting

プロンプト
masterpiece, best quality, amazing quality, 1girl, solo, blurry background, blurry foreground, chromatic aberration, depth of field, lens flare, backlighting, film grain, bokeh, perspective, diffraction spikes, faux traditional media, vignetting

天気・時間帯・ライティング

場所・背景

プロンプトに architecture と入れておくだけでも背景のクオリティが上がる。

背景にこだわりがない場合、beautiful landscape と書いておくといい感じにしてくれる。bokeh や soft focus などの語で背景をぼかすのも可。季節を表す語は最後においても結構効果があるのでおすすめ。

外国人受け入れのための博物館用語集(英語)

背景の拡張に Photoshop のジェネレーティブ塗りつぶしが使える。

建物
平地
季節
ダーク
ファンタジー
日本
食べ物
そのほか
映す範囲

tag group:image composition

構図や映す範囲は以下の要素で決まる。

アスペクト比は重要だ。人物は縦長の方が良い結果が得られやすい。船は横長の方が上手く描ける。

身体を重視する場合は full body や tachi-e か breasts, navel, thighhighs, などの語をすべて入れる。靴を指定するのも有効。

アングル

landing のように地面を指定するとアイレベルが下がり、絵に変化が生まれる。

正面

防犯カメラ

引き・俯瞰・全身

俯瞰

  • wide shot

  • カテゴリ