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

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

一度出力されたイラストで、指が6本になってしまったものは、あとから修正できないのですか?

一度出力されたイラストで、指が6本になってしまったものは、あとから修正できないのですか?
 

結論から言うと 「あとから修正できます」
ただし「どこまで自然に直せるか」は方法によって差があります。


修正できる主な方法(おすすめ順)

① Inpaint(インペイント)【一番おすすめ】

Stable Diffusion WebUI を使っている前提ですが、
すでに出力した画像の一部(手だけ)を描き直す方法です。

手順の概要

  1. 画像を img2img → Inpaint に読み込む

  2. 6本指になっている「手の部分だけ」をマスク

  3. プロンプトは元とほぼ同じ

    • 追加で

       
      normal hands, five fingers, correct anatomy
    • ネガティブに

       
      extra fingers, six fingers, deformed hands
  4. Denoising strength:0.3〜0.5 くらい

  5. 数回生成して一番自然なものを採用

👉 構図や顔を壊さず、指だけ直せるので成功率が高いです。


② ADetailer(後処理での自動修正)

あなたはすでに ADetailer を触っていますよね。
再生成時限定にはなりますが、次の条件なら有効です。

  • 元画像がある

  • 同じ seed / 似た設定で再生成できる

  • ADetailer で hand model を指定

ただし

  • 完全に出力済みPNGを単体で直す力は弱め

  • 6本 → 5本に「必ず」なるわけではない

という制限があります。


Photoshop / GIMP などで手動修正

  • 商用作品

  • どうしても直したい1枚

この場合は
AIで直そうと粘るより、手描き修正のほうが早いこともあります。

最近は

  • 「指だけ別生成 → 合成」

  • 「左右反転してコピペ」

など、半AI・半手作業も多いです。


修正が難しいケース(正直な話)

以下の場合は 完全修正がかなり難しいです。

  • 手が極端に小さい/遠い

  • 指が絡み合っている

  • ローアングル・複雑なポーズ

  • 低解像度で生成されている

この場合は
👉 「その1枚は没にする」判断もプロ的には普通です。


今後6本指を減らすためのコツ(重要)

あなたは AIイラスト投稿を本格運用していますよね。
長期的にはここが一番効きます。

  • Hires fix + 低Denoise

  • ADetailer(hand)ON

  • プロンプトに毎回:

     
    five fingers, normal hands, anatomically correct hands
  • ネガティブ:

     
    extra fingers, six fingers, deformed hands, bad anatomy

まとめ

  • すでに出力された6本指 → 修正可能

  • ⭐ 一番成功率が高いのは Inpaint

  • ❌ どうしても無理な構図は「没」も選択肢

  • 🔁 量産するなら「事前対策」が最重要

もしよければ
「今ある画像を直す前提」で Inpaint用の具体設定(数値込み) をあなたの環境に合わせて書きますが、いかがしますか?

 
Traceback (most recent call last): | 0/300 [00:08<?, ?it/s] File "C:\stable-diffusion-webui\venv\lib\site-packages\gradio\routes.py", line 488, in run_predict output = await app.get_blocks().process_api( File "C:\stable-diffusion-webui\venv\lib\site-packages\gradio\blocks.py", line 1429, in process_api inputs = self.preprocess_data(fn_index, inputs, state) File "C:\stable-diffusion-webui\venv\lib\site-packages\gradio\blocks.py", line 1239, in preprocess_data processed_input.append(block.preprocess(inputs[i])) File "C:\stable-diffusion-webui\venv\lib\site-packages\gradio\components\image.py", line 270, in preprocess assert isinstance(x, dict) AssertionError
 

これは Stable Diffusion WebUI(Gradio側)が「画像入力の形式が想定と違う」 ときに出る、わりと典型的なエラーです。

結論から言うと
👉 img2img / Inpaint に渡されている画像データが壊れている or 不正な状態 です。


エラーの意味(かみ砕いて)

 
assert isinstance(x, dict)

Gradioは Inpaint の画像を

 
{"image": ..., "mask": ...}

という dict形式 で受け取る前提です。

それが

  • None

  • 画像だけ(maskがない)

  • 古いUI仕様のデータ

  • 拡張機能が壊したデータ

になっていると、この AssertionError が出ます。


よくある原因と対処法(重要度順)

① Inpaintで「マスクが存在しない」

一番多い原因です。

対処

  • img2img → Inpaint タブを使う

  • 必ず

    • ブラシでどこかを塗る

    • 透明マスクのまま生成しない

※ マスクを1ドットも塗っていないと落ちます


② ControlNet / ADetailer との競合

あなたの履歴的に ADetailer を多用していますよね。
Inpaint時にこれが原因になることが非常に多いです。

対処(まずこれを試す)

  • Inpaint時は一度:

    • ❌ ADetailer → OFF

    • ❌ ControlNet → OFF

  • 純粋な Inpaint 単体で生成

👉 直ったら、原因は拡張機能確定です


PNG Info から送った画像が壊れている

  • PNG Info → Send to img2img

  • そのまま Inpaint

この流れで mask情報が欠落 することがあります。

対処

  • 一度 img2img に直接画像をドラッグ

  • PNG Info 経由を使わない


④ 「Inpaint area」の設定ミス

以下の組み合わせで落ちることがあります。

安定する設定

  • Inpaint area:Only masked

  • Masked content:Original

  • Resize mode:Just resize


⑤ Gradio / WebUI の一時的バグ

キャッシュ破損パターン。

対処

  1. WebUI 完全終了

  2. stable-diffusion-webui フォルダで

     
    webui-user.bat

    再起動

  3. それでもダメなら

    • ブラウザを再読み込み(Ctrl+F5)


それでも直らない場合(最終手段)

以下のどれかが高確率で原因です。

  • 古い拡張機能(特に hand / inpaint 系)

  • Gradio と WebUI のバージョン不整合

簡易チェック

  • extensions フォルダで

    • 最近入れた拡張を一時的にフォルダ名変更(無効化)

  • 再起動して Inpaint


まずやってほしいチェックリスト(短縮版)

☑ Inpaintで必ずマスクを塗っている
☑ ADetailer / ControlNet をOFF
PNG Info経由をやめて直接画像を入れる
☑ WebUI再起動

ここまでで 9割は解決します。


もし可能なら

  • Inpaint時のスクショ

  • ADetailer / ControlNet のON/OFF状況

  • 使っているWebUIのブランチ(AUTOMATIC1111?)

これがわかれば、原因を1点に特定できます。