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

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

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

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

指の破綻は、Stable Diffusion 系モデルでもっとも起きやすい“構造的エラー”のひとつで、実はプロンプトだけで完全に安定させるのは難しいんです。ただ、発生率を大きく下げる方法はいくつかあります。あなたのように精度を求めるタイプの人なら、組み合わせで一気に改善できます。

 

🎯 指が安定しない主な理由

  • 手は高難度の構造物で、学習データでも破綻が多い

  • 構図・ポーズが複雑だと破綻しやすい

  • モデルの世代差(SD1.5 → SDXL → Flux)で精度が大きく違う

  • 手が画面端にある小さく写ると破綻率が跳ね上がる

 

🔧 改善策(効果の高い順)

1) 手専用 LoRA を使う

指の安定度が劇的に変わります。 例:

  • “handsfix”

  • “better hands”

  • “perfect hands”

  • “lora: realistic hands”

LoRA strength は 0.4〜0.7 が安定しやすい。

 

2) ネガティブプロンプトを強化する

手の破綻はネガティブで抑制できます。

推奨ネガティブ例:

コード
 
extra fingers, fused fingers, missing fingers, bad hands, 
deformed hands, mutated hands, long fingers, broken fingers,
bad anatomy, wrong anatomy, malformed limbs
 

3) 手を大きく写す構図にする

  • 手が小さい → モデルが細部を生成できず破綻

  • カメラ距離を近づけると改善

  • “hands in foreground” などで強調するのも有効

 

4) ControlNet: OpenPose / Depth を使う

特に OpenPose は手の形を安定させるのに強い。

  • 手の骨格を指定できる

  • 指の本数がほぼ固定される

  • 破綻率が大幅に下がる

あなたのように精度を求めるタイプなら、OpenPose はほぼ必須級。

 

5) モデルを変える

指の安定度はモデルで大きく変わります。

モデル 指の安定度 コメント
SD1.5 低い LoRA なしだと破綻しやすい
SDXL 中〜高 かなり改善されている
Flux 高い 手の生成が最も安定
 

もしまだ SD1.5 を使っているなら、SDXL 以上に移行すると一気に楽になります。

 

6) プロンプトで手の状態を明示する

コード
 
hands visible, five fingers, natural hand pose, detailed fingers

ただし、プロンプトだけで完全に安定させるのは難しいので、LoRA や ControlNet と併用するのが前提。

 

🧩 あなたの用途に合わせて最適化もできる

こういう“用途ごとの最適化”は、あなたのワークフローに合わせて調整できるので、もしよければ今使っているモデル・UI(WebUI / ComfyUI / AUTOMATIC1111 など)を教えてくれれば、最適な構成を組んでみます。

どの方向で改善したいか、あなたのスタイルに合わせて調整していくよ。

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

指の破綻は Stable Diffusion でも“最難関”の部位なので、悩むのは完全に普通です。 ただ、あなたのように技術的に詰めるタイプなら、原因ごとに対策を分解して組み合わせることで、かなり安定させられます。

 

🔥 指が安定しない理由(構造的な問題)

  • 手は学習データでも破綻が多い部位

  • 指の本数・角度・重なりが複雑で、モデルが誤認しやすい

  • 画面の端・小さく写る・動きがあると破綻率が急上昇

  • SD1.5 系は特に弱い(SDXL や Flux は改善されている)

 

🧩 効果の高い対策(あなたのワークフロー向けに最適化)

1) 手専用 LoRA を使う(最も効果が高い)

手の形状を補正する LoRA は、破綻率を劇的に下げます。

  • BetterHands

  • PerfectHands

  • RealisticHands

  • HandsFix

推奨強度:0.4〜0.7 強すぎると逆に不自然になるので、あなたの“精度重視”スタイルなら中強度が最適。

 

2) ネガティブプロンプトを強化する

指の破綻はネガティブで抑制できます。

コード
 
extra fingers, fused fingers, missing fingers,
bad hands, deformed hands, mutated hands,
wrong anatomy, malformed limbs

あなたのように構造を重視するタイプなら、 “extra fingers / fused fingers / missing fingers” の3つは必須

 

3) 手を大きく写す構図にする

Stable Diffusion は「小さい手」を苦手とします。

  • 手を画面中央寄りに

  • 手を前景に置く

  • “hands in foreground” を追加する

構図の工夫だけで破綻率が半分以下になることもあります。

 

4) ControlNet(OpenPose / Depth)を使う

特に OpenPose は指の形状を安定させる最強手段。

  • 指の本数がほぼ固定される

  • 手の角度・位置が安定

  • LoRA と併用するとさらに強力

あなたの“精度優先のワークフロー”なら、OpenPose はほぼ必須級。

 

5) モデルを変える

指の安定度はモデルで大きく変わります。

モデル 指の安定度 コメント
SD1.5 低い LoRA 必須
SDXL 中〜高 かなり改善
Flux 高い 手の生成が最も安定
 

もし SD1.5 を使っているなら、SDXL 以上に移行すると一気に楽になります。

 

6) プロンプトで手の状態を明示する

コード
 
five fingers, detailed hands, natural hand pose, clear fingers

ただし、プロンプトだけで完全に安定はしないので、 LoRA + ControlNet と併用する前提

 

🎯 あなたの環境に合わせて最適化もできる

あなたは普段、

  • LoRA

  • ControlNet

  • プロンプトの構造化

  • 画角の調整

  • SDXL / Flux の使い分け などを組み合わせて“精度を追求するタイプ”なので、 今使っている UI(WebUI / ComfyUI)とモデルを教えてくれれば、 あなたのワークフローに最適化した「指安定セットアップ」を構築できます。

たとえば、

  • SDXL + PerfectHands LoRA + OpenPose

  • Flux + 手補正 LoRA

  • ComfyUI のノード構成 など、あなたの制作スタイルに合わせて最適化できます。

どの環境で生成しているか教えてくれれば、すぐに最適解を組むよ。