私がChatGPTなどに質問したことを書いていくブログ

Chat GPT等のAIヘビーユーザーの管理人が、日常に役立つことからどうでもいいことまで様々な質問をまとめたブログです。

stable diffusion で、どうしても指の数が安定しません。どうすればよいでしょうか?

stable diffusion で、どうしても指の数が安定しません。どうすればよいでしょうか?
 

わかります…指は Stable Diffusion最大の鬼門 ですよね 😇
「ちゃんと出た!」と思った次の瞬間に6本生えてくるやつ。

結論から言うと、1つの対策だけで安定させるのはほぼ無理で、
複数の手当てを重ねるのが現実的な解決策です。


まず大前提(ちょっと安心材料)

Stable Diffusionは
👉 「指」という概念を理解していない
👉 手=「指っぽい形の集合」として生成している
なので 不安定なのは仕様に近い です。あなたの設定が下手なわけじゃないです。


効果が高い順に対策を並べます


① ADetailer(ほぼ必須)

すでに触っているかもですが、正しく使えていないケースが多いです。

おすすめ設定(手用)

  • Detector modelhand_yolov8n.pt

  • Inpaint area:Only masked

  • Denoising strength0.35〜0.55

  • Inpaint at full resolution:ON

  • Mask blur4〜8

👉 ポイント

  • デノイズが 0.6以上 だと逆に崩れやすい

  • ADetailerは「描き直す」より「微修正」と割り切る


② ネガティブプロンプトを“整理”する

入れすぎると逆効果になります。

鉄板ネガティブ(これだけでOK)

 
extra fingers, fewer fingers, malformed hands, bad hands, bad fingers, fused fingers

❌ よくあるNG

  • hands を丸ごとネガティブに入れる

  • finger を単体で入れまくる

「手を描くな」指示になって崩れます


③ 解像度と構図を見直す(超重要)

指が小さいほど失敗率は跳ね上がります

安定しやすい条件

  • 解像度:縦長なら 768×1152 以上

  • 手が画面の 端 or 小さく写っている構図は地雷

  • 全身より バストアップ〜上半身 の方が安定

👉「全身+手を自然に」は上級者向けです


④ Hires.fix を使うなら設定を抑える

Hiresが強すぎると 指だけ突然変異します。

無難設定

  • Upscaler:Latent / Latent (antialiased)

  • Denoising:0.3〜0.45

  • Step:10〜15


⑤ LoRAの影響を疑う

指崩壊の8割はLoRA由来です。

チェック方法

  • LoRAを 全部外して1回生成

  • それで安定するなら犯人確定

👉 対策

  • LoRA強度を 0.6〜0.8

  • 人体特化LoRAを重ねすぎない


⑥ ControlNet(本気モード)

「どうしても安定させたい1枚」用。

  • OpenPose(Handあり)

  • 手だけ軽く描いたラフでもOK

時間はかかるけど 成功率は段違いです。


最後の現実的アドバイス

プロもやってます👇

  • 10枚出して1枚当たりを選ぶ

  • 指だけ Photoshopで修正

  • 「見えない角度」に逃がす構図

Stable Diffusionは
👉 完璧を1発で出すツールじゃない
👉 「確率を上げる仕組み」


もしよければ

  • 使用モデル

  • ADetailer / Hires のスクショ

  • 問題の画像(手だけでOK)

教えてくれたら、ピンポイントで設定詰めますよ。
指、一緒に殴り倒しましょう 👊

 
ADetailer は指の数を修正できるのですか?
 

結論から言うと、

👉 ADetailerは「指の数そのものを理解して数えて直す」ことはできません。
ただし、条件がそろえば結果的に“正しい本数に描き直される”ことは普通にあります。

ここ、めちゃくちゃ誤解されやすいポイントなので整理しますね。


ADetailerで「できること/できないこと」

❌ できないこと

  • 指が 5本かどうかを認識して修正

  • 6本 → 自動的に5本に減らす

  • 「この指は余分だから消す」という判断

👉 ADetailerは知能ではなく検出+再生成です。


⭕ できること

  • 「手」と判定した範囲だけを描き直す

  • 既存の破綻(6本・融合・奇形)を
    再生成の運に任せて改善する

  • 小さな崩れを低デノイズで整える

なので
✔ 6本 → 5本になることもある
❌ 6本 → 7本になることもある(設定ミス時)


じゃあ、なぜ「指が直る」と言われるのか?

理由はこれです👇

  1. 手が破綻している

  2. ADetailerが「ここは手だ」と検出

  3. 部分Inpaintで描き直す

  4. 再生成時に「たまたま」5本になる

つまり
👉 成功率を上げる道具であって
👉 保証する道具ではない


指の数が直りやすい設定条件

✔ 成功率が上がる条件

  • Denoising:0.35〜0.5

  • 手が 大きく写っている

  • モデルが人体に強い

  • LoRAが軽い or なし

  • ネガティブがシンプル

❌ 失敗しやすい条件

  • Denoising 0.6↑

  • 手が小さい/画面端

  • 全身構図

  • LoRA盛りすぎ

  • Hires + ADetailer 両方強い


超重要:誤解されがちなポイント

「hand_yolov8n.pt を使えば指が正しくなる」?

❌ なりません。

👉 検出精度が上がるだけ
👉 再生成の品質は モデルと設定次第


本当に「指の本数」を安定させたいなら

現実的な選択肢は3つだけです👇

① ControlNet(OpenPose Hand)

  • 手の骨格を指定

  • 唯一「5本をほぼ保証」できる方法

② Inpaintで自分でラフを描く

  • 5本のガイド線を描いてからInpaint

  • 地味だけど安定

③ 人力修正

  • プロ含めて普通にやってます


結論(ここだけ覚えてOK)

  • ADetailerは 指を数えられない

  • でも 描き直すことで結果的に直ることはある

  • 「自動で完璧」は期待しない

  • 本数にこだわるなら ControlNet一択

もしよければ
「今のADetailer設定を貼る」か
「どんな崩れ方が多いか(6本/融合/欠損)」教えてください。

そこが分かれば
👉 最短ルートで安定させる設定に絞ります 👍

 
ということは、せっかく5本で検出してたのに6本に修正することもあるということですか?
 

はい、その理解で 完全に合っています
しかもこれは 珍しいことでもバグでもありません 😇


なぜ「5本→6本」が起きるのか

ここが一番の勘違いポイントなんですが👇

ADetailerは

  • 「5本で検出」しているわけではない

  • 「手っぽい領域」を検出しているだけ

です。


実際にADetailerがやっていること

流れをそのまま言うと👇

  1. YOLOが
    👉「ここは“手”だと思う」と矩形を切り出す

  2. その範囲を Inpaintで再生成

  3. 再生成時は
    👉 “新しい手”を一から描く

💥 この時点で

  • 元が5本でも

  • 6本・4本・融合になる可能性は普通にあります


つまり…

せっかく5本で検出してたのに6本に修正される?

起きます
✔ しかも設定次第で かなり起きます


特に起きやすい設定

❌ 危険ゾーン

  • Denoising:0.6↑

  • Inpaint area:Not only masked

  • Mask blur:0〜2

  • Hires.fix と ADetailer 両方強め

  • 指系ネガティブ盛り盛り

👉 「別の手を描き直せ」と言っている状態


起きにくくする現実的な対策

✔ 安定ゾーン

  • Denoising:0.35〜0.5

  • Inpaint area:Only masked

  • Mask blur:4〜8

  • 手がある程度大きい構図

  • LoRA弱め or なし

👉 **「形を保ったまま整えてね」**という指示になります。


たとえ5本でもADetailerをかけるべき?

ケース分けすると👇

🔹 かけない方がいい

  • すでに 綺麗な5本

  • 手が小さい

  • 背景的な手

🔹 かける意味がある

  • 明らかな奇形

  • 融合してる

  • 指が太すぎる/短すぎる


超現実的な運用ルール(おすすめ)

プロンプト勢がよくやるやつ👇

  1. 通常生成で「だいたいOK」を出す

  2. 手が崩れている時だけ ADetailer ON

  3. それでもダメなら ControlNet or 人力修正


一言まとめ

  • ADetailerは 修正ツールではなく再抽選装置

  • 良くも悪くも 賭け

  • だから 5本→6本は普通に起きる

もし
「今のADetailer設定」や
「Hiresとの併用方法」を貼ってくれたら、

👉 **“5本を壊しにくい安全設定”**に一緒に詰め直しますよ。

 
じゃあADetailer は使わない方がいいのでは?
 

めちゃくちゃ良いところに気づいてます。
で、答えはちょっと大人なやつになります。

👉「常時ONで使う」のはやめた方がいい。
👉 でも「使わない」のも、正直もったいない。


ADetailerの正しい立ち位置(超重要)

ADetailerは
万能修正ツール ではなく
“壊れている所だけを再抽選する装置” です。

だから使い方を間違えると👇

  • 直ってた指を壊す

  • 5本 → 6本にする

  • 全体のバランスを崩す

=「余計なことをする存在」になります。


結論を一文で

ADetailerは「問題があるときだけ、限定的に使う」

これがベストです。


じゃあ「使わない方がいい」ケース

❌ OFF推奨

  • すでに 5本で自然

  • 手が 小さい/遠い

  • 背景的な手

  • 全身構図で破綻が少ない

  • Hires.fixを強めにかける予定

👉 この場合、触らないのが最適解


逆に「使う価値がある」ケース

⭕ ONする意味がある

  • 明らかに6本・融合・奇形

  • 手が大きく写っている

  • 主役のポーズ手

  • 表情や顔は完璧なのに手だけ崩壊

👉 **「ここだけ直したい」**時。


ADetailerを使うなら最低限これだけ

安全設定(指を壊しにくい)

  • Detector:hand_yolov8n.pt

  • Inpaint area:Only masked

  • Denoising:0.35〜0.45

  • Mask blur6

  • Inpaint at full resolution:ON

👉 **「別の手を描くな、今の手を整えろ」**という圧になります。


さらに安定させる“運用テク”

これ、かなり効きます👇

🔹 二段階運用

  1. ADetailer OFFで数枚生成

  2. 一番良いやつだけ
    👉 img2img + ADetailer

=「良い手を壊しに行かない」


本音を言うと…

プロ・同人勢・商用AI絵の多くは👇

  • ADetailer:保険

  • ControlNet:本命

  • 最終:人力修正

この3点セットです。


まとめ(覚えておいてほしい)

  • ADetailerは 常用禁止

  • 問題が出たときの ピンポイント修正

  • 5本の手を 信用して触らない勇気 が一番強い

もし
「今の制作フロー(txt2img / img2img / Hires)」や
「商用 or 趣味」教えてもらえたら、

👉 最短で安定する運用に組み直しますよ。

 
一度出力した絵を、あとからADetailerにかけることってできるんですか?
 

できます。
しかも それがいちばん安全でおすすめの使い方 です 👍


結論だけ先に

👉 txt2imgで出した1枚を、あとからADetailerだけかけることは可能
👉 しかも「指を壊しにくい」


やり方(王道ルート)

手順①:まず普通に出力する

  • txt2img

  • ADetailer:OFF

  • まずは全体が気に入った1枚を作る


手順②:img2img に持っていく

  • 生成した画像を img2img にドラッグ

  • サイズはそのままでOK


手順③:img2imgでADetailerをON

ここがポイントです👇

img2img側の設定

  • Denoising strength(全体):0.2〜0.35

    • ※ 全体を壊さないため

ADetailer設定(手)

  • Detector:hand_yolov8n.pt

  • Inpaint area:Only masked

  • ADetailer denoising:0.35〜0.45

  • Mask blur4〜8

  • Inpaint at full resolution:ON

👉 全体はほぼ固定、手だけ再抽選


なぜこの方法が安定するのか

txt2imgで最初からADetailerをONにすると👇

  • 毎回「手を描き直す」

  • 良い手も壊す

img2img後がけだと👇

  • 問題のある手だけ検出されやすい

  • 構図・顔・体は維持

  • 修正感が少ない


よくある落とし穴

❌ 全体デノイズが高い

  • img2img全体が 0.4↑
    → 絵が別物になります

❌ ADetailerのデノイズが高すぎ

  • 0.6↑
    → 5本 → 6本祭り

❌ 手が小さすぎる

  • 検出はしても 改善しない or 悪化


実務でよくやられてる流れ(リアル)

  1. txt2imgで10枚出す

  2. 1〜2枚選ぶ

  3. img2img + ADetailer

  4. ダメなら ControlNet or 人力

  5. 納品

ほんとこれです。


まとめ

  • あとからADetailerは可能

  • むしろ 推奨

  • 「最初からON」は事故りやすい

  • img2img後がけが一番コスパ良し

もし

  • 使ってるUI(AUTOMATIC1111 / Forge / ComfyUI)

  • 今のimg2img設定

が分かれば、そのままコピペできる設定まで落としますよ。

 
*** Error running process: C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\scripts\dynamic_prompting.py.70it/s] Traceback (most recent call last): File "C:\stable-diffusion-webui\modules\scripts.py", line 832, in process script.process(p, *script_args) File "C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\sd_dynamic_prompts\dynamic_prompting.py", line 480, in process all_prompts, all_negative_prompts = generate_prompts( File "C:\stable-diffusion-webui\extensions\sd-dynamic-prompts\sd_dynamic_prompts\helpers.py", line 93, in generate_prompts all_prompts = prompt_generator.generate(prompt, num_prompts, seeds=seeds) or [""] File "C:\stable-diffusion-webui\venv\lib\site-packages\dynamicprompts\generators\randomprompt.py", line 71, in generate prompts.append(str(next(iter(gen)))) StopIteration
 

出ましたね、この sd-dynamic-prompts の StopIteration
結論から言うと――

👉 これは Stable Diffusion本体やADetailerの問題ではなく、
sd-dynamic-prompts 側の「中身が空になった」エラーです。

指修正の流れとは 直接関係ありません。まずそこは安心してください。


エラーの正体(何が起きているか)

一番大事な行だけ抜き出します👇

 
StopIteration

これは Python 的には

「もう取り出せる候補が1つもないのに、次を取り出そうとした」

という意味です。

sd-dynamic-promptsで言うと👇

  • {}| を使った ランダムプロンプト

  • その中身が

    • 全部無効

    • 条件で削られた
      結果として 生成候補が0個 になった

→ そこでクラッシュします。


よくある原因 TOP5(ほぼこれ)

① 空のランダムブロックがある(最頻出)

 
{smile|}
 
{|smile}
 
{}

👉 これ全部アウト


② ネガティブプロンプト側で dynamic prompts を使っている

 
{bad hands|extra fingers}

👉 sd-dynamic-promptsは
ネガティブ側が空になると落ちやすいです。


③ 重み付きと組み合わせている

 
({smile|angry}:1.2)

👉 バージョンによっては 普通に死にます


__wildcard__ が空 or ファイルが空

 
__hands__
  • hands.txt

    • 改行だけ

    • コメントだけ

👉 候補0で StopIteration


⑤ img2img + ADetailer で scripts が同時実行

今回の流れ的に これもかなり怪しいです。

  • img2img

  • ADetailer

  • sd-dynamic-prompts

👉 scripts.py 経由で全部同時に回って衝突


すぐできる対処(順番に)

✅ 対処①:dynamic prompts を一旦OFF

まずこれをやってください。

  • Scripts → Dynamic Prompts

  • チェックを全部外す

  • 通常プロンプトで1回生成

👉 これで通るなら 原因確定


✅ 対処②:プロンプト内の {} を全削除

一時的に👇

  • {a|b|c}

  • __wildcard__

全部外す。


✅ 対処③:ネガティブ側では dynamic を使わない

ネガティブは 固定文 に。


✅ 対処④:wildcardファイルを確認

stable-diffusion-webui/wildcards/

  • 空ファイルない?

  • 中身コメントだけじゃない?

最低でも👇

 
good bad

みたいに 1行1単語以上必要です。


✅ 対処⑤:sd-dynamic-prompts を更新 or 無効化

正直に言います。

👉 最近は使わなくても困りません

  • Combinatorial explosion 起きやすい

  • ADetailer / img2img との相性が微妙

完全に無効化しても指修正には一切影響なしです。


今回の状況を整理すると

あなたの流れはおそらく👇

  1. txt2img → 出力

  2. img2img に持ち込み

  3. ADetailer ON

  4. sd-dynamic-prompts もONのまま

  5. ランダム候補が空 → StopIteration

👉 ADetailerは無罪
👉 sd-dynamic-promptsがコケてる


おすすめ運用(安定ルート)

  • txt2img:dynamic prompts OK

  • img2img / ADetailer:dynamic prompts OFF

  • プロンプトは固定

これで事故率ほぼゼロになります。


もしよければ

  • 実際に使ってるプロンプト({} 部分だけでOK)

  • wildcardの1つ

貼ってくれたら、
👉 「どこが空になってるか」ピンポイントで指摘しますよ。

 
ADetailerにもプロンプト入力項目がありますが、これはなんでしょうか?
 

いい質問です。
ここ、分かってないまま触って事故る人が一番多い所です。

結論から言うと👇

**👉 ADetailerのプロンプト欄は
「検出された部分だけに追加でかかる“上書き指示”」**です。


ADetailerプロンプトの正体

ADetailerはこう動きます👇

  1. 全体プロンプトで1枚生成

  2. YOLOが「顔・手」などを検出

  3. その部分だけ Inpaint で再生成

  4. そのとき
    👉 全体プロンプト + ADetailerプロンプト
    が使われる

つまり
👉 部分専用の追加プロンプト


何も書かなかったらどうなる?

  • 全体プロンプト そのまま

  • ADetailerは「範囲指定」だけする

👉 一番安全です。


書いたらどうなる?

その部位にだけ 強制力が発生します。

例👇

例①:良い使い方

 
realistic hand, five fingers, natural anatomy

→ 手だけ「それっぽく」描こうとする


例②:事故る使い方

 
beautiful detailed hand, perfect fingers

→ モデルが 「完璧な手」を増やしに行く
→ 指増殖リスクUP 😇


超重要:ADetailerプロンプトの性質

  • 強い

  • 局所的

  • 逃げ場がない

なので
盛るほど壊れやすいです。


ネガティブプロンプト欄も同じ

ADetailerネガティブ

  • その部位にだけ効く

おすすめ👇

 
extra fingers, fused fingers, malformed hands

❌ 入れすぎ注意

  • bad anatomy

  • deformed

  • ugly

→ 手の形そのものを否定して壊します


結論:どう使うのが正解?

基本ルール

  • 空欄が正解

  • 書くなら 最小限

  • 修正目的が明確な時だけ


実践テンプレ(安全)

手用 ADetailer

Prompt

 
realistic hand, natural fingers

Negative

 
extra fingers, fused fingers

これ以上は 足さない


txt2img / img2img との違い

  • 全体プロンプト:世界観

  • ADetailer:局所の方向性

👉 方向性がズレると破綻します。


まとめ(超重要)

  • ADetailerプロンプト=部分専用の追記命令

  • 空欄でも問題なし(むしろ安全)

  • 盛るほど 指が増える

  • ネガティブも 最小限

もし
「今どんな文を入れてるか」貼ってくれたら、
👉 削るべき単語/残すべき単語をズバッと仕分けしますよ。