見出し画像

AIイラストの「手」だけを描き直したら、没にしていた絵が救えた話

おはようございます。venomです。

AIイラストを生成していると、必ずぶつかる壁があります。
それは「手の修正」です。

構図も表情も衣装も申し分ない。
何十枚も回してようやく引いた当たりの1枚。

それなのに、指が6本あったり、2本がくっついていたり、手首から先だけが妙にとろけていたりする。
絵全体としては完成しているのに、手のせいで公開できない。この「惜しい1枚」が、生成のたびに何枚も積み上がっていきます。

これまで私は、この手直しを外部の有料AIサービスに投げていました。
画像をアップロードして、直したい場所を塗って、修正を依頼する。

たしかに直るのですが、月々の課金は発生しますし、1枚直すたびにブラウザとフォルダを往復する手間もかかります。

何より、自分で生成した絵をわざわざ外部のサービスへ送っている状態が、どうにも据わりが悪いままでした。

生成そのものはローカルの Stable Diffusion で完結しているのに、仕上げの一手間だけ外に出している。

ここを閉じられないかと考えたのが出発点です。

目的

やりたかったことは、次の3点に絞られます。

  • 手の描き直しをローカル完結・追加課金ゼロにすること

  • 元画像を絶対に壊さないこと(修正版は別名で保存し、失敗しても何度でもやり直せる状態を保つ)

  • 1枚あたり1分以内で片付くこと(時間がかかるなら、結局もう一度生成し直したほうが早くなってしまうため。所要時間は環境によって変わるので、あくまで自分の環境での目安です)

逆に、狙わなかったこともあります。

全自動化です。手の修正は一発では決まらないため、「AIに何枚か候補を出させて、人間が選ぶ」という前提で組むことにしました。

手段

使ったもの

  • Stable Diffusion Reforge(ローカル生成環境。img2img のインペイント機能を使います)

  • hand_yolov9c.pt(手の位置を自動検出するモデル)

ここが今回いちばんお伝えしたい点なのですが、この検出モデルは新しくダウンロードする必要がありません

画像生成で顔を自動補正する定番の拡張機能 ADetailer を入れている方であれば、その中に既に同梱されています。置き場所は、Stable Diffusion のインストール先から見て次の階層です。

(インストール先)\models\adetailer\bbox\hand_yolov9c.pt

つまり、手の検出に必要なものは、多くの方の環境に最初から転がっているようです。

追加のインストールも課金も要りません。

手順

処理の流れは3ステップです。

  1. 手の位置を検出する
    上記モデルを信頼度 0.3 で走らせると、手の矩形が返ってきます。私の環境では初回のモデル読み込み込みで約3秒、信頼度 0.77 で検出できました(時間は環境によって変わります)。

  2. その矩形の中だけを img2img で描き直す
    ポイントは「only masked(マスク領域のみ)」で処理することです。画像全体を再生成するのではなく、手の周囲だけを切り出して、そこだけ高解像度で描き直します。

  3. 候補を複数出して、人間が選ぶ
    1枚では当たりが出ないため、既定で4枚生成しています。

設定の勘どころ

強さ(デノイズ)は、次の3段階で使い分けています。

  • 整える(0.45): 形はほぼ合っていて、線が少し乱れているだけの時

  • 描き直す(0.65): 既定の設定。指の本数が違う、くっついている時

  • 作り直す(0.78): 手の形が原型をとどめていない時

もうひとつ、意外に大事だったのがインペイントに渡すプロンプトを短くすることです。

悪い例: 元画像の長いプロンプトをそのまま流用する
  1girl, blonde hair, red eyes, swimsuit, beach, looking at viewer, ...

良い例: その領域に描いてほしいものだけを書く
  hand, five fingers, detailed fingers

長いプロンプトをそのまま渡すと、手のクロップという狭い枠の中に全身を描こうとしてしまい、指の代わりに小さな人物が生えてきます。

処理しているのはあくまで「手のまわりだけを切り出した小さな画像」だという意識が要ります。

なお私は、この一連の操作を手元でまとめて行えるよう簡単なツールに仕立てていますが、上記の設定は Reforge の img2img タブから手動で行っても同じ結果になります。

特別なものは要りません。

急いでいる時は Grok という手もあります

ここまでローカル完結の話を書いてきましたが、正直なところ、常にこのやり方が最適とは限りません。

Reforge を立ち上げていない時、外出先のスマホから直したい時、あるいは「今すぐ1枚だけ直せればいい」という時は、素直に外部サービスを使ったほうが速いです。

このとき私が使うのは Grok です。

2026年8月に一般提供が始まった Imagine Image 2.0 では、指した領域だけを編集するマジックワンド、変更したい範囲を細かく選ぶセグメンテーション、背景の透過書き出しといった編集機能が入っており、生成後の手直しをその場で完結できるようになりました。

手の崩れた箇所を指定して「指を5本に直して」と伝えるだけなので、環境構築も設定の調整も要りません。

grok.com の Imagine から、あるいはスマホアプリからそのまま使えます。

もちろん課金は発生しますし、無料枠の扱いは時期によって変わっているようですので、そこはご確認ください。

ただ、コストの数え方には少し補足があります。

Grok は動画生成が優秀で、私はもともと静止画を動かす用途で使っていました。
音声込みで短尺のクリップを一息に作れる点は、他のサービスと比べても扱いやすいところです。

つまり、動画のために既に課金している方であれば、手の修正はその契約のおまけとして付いてくることになります。

この場合、修正1枚あたりのコストを別立てで数える必要はありません。

「手の修正のためだけに新しく課金する」のか、「すでに払っている分の機能を一つ多く使う」のかで、話はまったく変わってきます。

ご自分がどちらの立場かで判断されるのが良いかと思います。

ローカルとの使い分けとしては、次のような整理になるかと思います。

  • 枚数をまとめて処理する、細かく設定を詰めたい、新規の課金を増やしたくない場合はローカル(Reforge)

  • 1枚だけ、今すぐ、手軽に直したい場合や、すでに別用途で契約している場合は Grok

道具は排他的に選ぶものではないので、両方を状況で使い分けるのが結局いちばん楽でした。

結果

まず、実際の修正結果です。

指が曖昧に溶けていた右手が、5本の指として描き直されています。作業時間は、検出3秒+候補4枚の生成で20秒ほどでした。

数字で見た結果は次のとおりです。なお処理時間はグラフィックボードや使用しているモデル、生成解像度によって大きく変わりますので、あくまで一例としてご覧ください。

私の環境は RTX 4090 です。

  • 検出: 約3秒(初回のモデル読み込み込み)

  • 生成: 1候補あたり4〜6秒、2箇所同時に直す場合で約12秒

  • この手順での追加課金: ゼロ(ADetailer 導入済みの場合)

  • 元画像: 無傷(修正版は同じフォルダに _fix1.png として別名保存)

検出については、2回目以降はモデルがメモリに載ったままになるため、体感ではほぼ待ち時間がありません。

生成のほうは、お使いの環境で通常の img2img にかかっている時間から、おおよその見当がつくかと思います。

手のまわりだけを切り出した小さな画像を処理しているので、1枚まるごと生成するよりは短く済みます。

一方で、うまくいかなかった点も正直に書いておきます。

その1: 画面端で切れた手は自動検出できません。
信頼度を 0.15 まで下げても検出されませんでした。
学習データに「見切れた手」がほとんど含まれていないためだと思われます。
結局、自分でマスクを塗って範囲を指定するしかありませんでした。自動検出はあくまで補助で、手動での範囲指定が前提だというのが最大の誤算です。

その2: デノイズ 0.5 では直りきりません。
元の形を尊重しすぎて、崩れた指がそのまま残ります。
中途半端に効かせるくらいなら 0.78 まで上げて完全に描き直させ、候補3枚から当たりを1枚選ぶほうが早いという結論になりました。

その3: 強く描き直すと、マスクの際が変化します。
袖口やフリルが手にかかっている場合、そこがわずかに描き変わってしまいます。
対策は単純で、矩形を手にぴったり寄せて描くことです。余白を取りすぎると余計なものまで巻き込まれます。

副産物もありました。
同じ「一部だけ描き直す」考え方は、背景の差し替えにもそのまま使えます。

人物を切り抜いてその反転をマスクにすれば、キャラクターを1ピクセルも触らずに背景だけを描き直せます。

ここでも1つ実測の落とし穴がありました。

白背景の絵を差し替える場合、インペイントの埋め方を「元画像(original)」にしていると、デノイズを 0.9 まで上げても背景がほぼ白のままでした。

「真っ白」という手がかりが強く残りすぎるようです。ノイズ(latent noise)から描かせる設定に変えたところ、森も川辺も一発で描かれました

総評

やってみていちばん変わったのは、生成そのものではなく当たりの判定基準でした。

これまでは「手が崩れている=不採用」だったので、構図も表情も良いのに没にした絵が大量にありました。

手だけ後から直せると分かってからは、その1枚を採用扱いにできます。

生成枚数を増やさずに歩留まりだけが上がるので、体感としてはガチャの確率が上がったのに近い感覚がありました。

そして、ADetailer を入れている方なら、この手順に追加コストがかからないという点は、あらためて強調しておきたいところです。

多くの方が「顔を自動で綺麗にするための拡張機能」として入れているものの中に、手の検出モデルが最初から同梱されています。

使われないまま眠っている資産を掘り起こしただけ、というのが今回の実態でした。

一方で、外部サービスを排除することが目的だったわけではありません。

急ぎの1枚は Grok に任せますし、動画のために既に契約している方にとっては、そちらのほうが手間もコストも小さいはずです。

大事なのは「手が崩れた絵は捨てるしかない」という前提を外すことで、そのための道具は複数あって構わないというのが、今回の実感でした。

次は、そもそも生成の時点で手を作り込ませる方向(生成時に手の領域を自動で高解像度化する設定)を詰めてみるつもりです。

後から直すより、最初から崩れないほうが当然速いためです。

手の修正でお困りの方は、まずご自分の環境の models\adetailer\bbox フォルダを覗いてみてください。

道具は既に揃っているかもしれません。


おまけ

Xでは、AIイラストを毎日投稿しています。
ちょっとエッチなのもあるので、苦手な方はスルーしてください。

AIイラストにご興味ある方はこちらもおすすめです。
美少女キャラクターを可愛く見せるポーズのプロンプトを公開しています。

▼AIイラスト|ポーズ集

ここまで見ていただき、ありがとうございました。
定期的に記事を投稿していますので、フォローやいいね などで応援していただけると嬉しいです。
では、またお会いしましょう~(≧▽≦)ノシ



いいなと思ったら応援しよう!