Stable Diffusionで人物画像を生成したとき、手の描写がうまくいかず、その修正作業でつまずいてしまう場合が多く発生します。
そのような場合にどうしたらよいのかわからない方向けに、この記事ではStable Diffusionで手の修正をする方法についていくつか解説していきます。
Stable Diffusionで手の修正をする方法①プロンプト

最初に、Stable Diffusionのプロンプト入力のみで手の修正をする方法について解説します。
Stable Diffusionで手の描写に問題がある場合、まずはプロンプトを見直しましょう。
Stable Diffusionで手の修正をするプロンプト
「手を正しく描写する」「正確な指の本数」など、Stable Diffusionで手に関する細かいプロンプトを入力します。
効果を強化するには「clean fingernails」「realistic knuckle detail」など、具体的なパーツに言及するフレーズを入れるのもおすすめです。
detailed hands:手の描写に細かいディテールを加える
anatomically correct hands:手の描写をより解剖学的に正確にする
perfect fingers:指の描写をより正確かつ美しくする
five fingers:正しい5本の指を描く
clear hands:手の描写をより明確にする
proper hand anatomy:手の解剖学的な正確さをUPする
realistic hand structure:手の形状や構造を現実的に描写する
well-drawn hands:手をより丁寧に描写し、リアルで正確に描写する
Stable Diffusionで手の修正をするネガティブプロンプト
Stable Diffusionでは、「多指」「奇形」など避けたい描写をネガティブプロンプトとして指定すると、不要な表現を抑えやすくなります。
Stable Diffusionでネガティブプロンプトを明確に指定し、全体の品質を高めましょう。
bad hands:「悪い手」の特徴表現を避ける
bad anatomy:「不自然な手の形状」や「手の解剖学的な間違い」を避ける
extra fingers:「余分な指」や「指の不自然さ」を抑止する
fewer fingers:「指の不足」を避け、より自然な手を描く
mutated hands:「変形した手」や「不自然な手の描写」を回避
missing fingers:「指が欠けている」描写を避ける
fused fingers:指が融合して描かれる現象を防ぐ
poorly drawn hands:手や指を描写する際に発生する品質の低下を防ぐ
Stable Diffusionの使い方は、機能別に下記の記事にまとめているのでぜひご覧ください

Stable Diffusionで手の修正をする方法②Inpaint

Stable DiffusionのInpaintは、画像の一部分だけを選択して再生成できる機能です。
Stable Diffusionで生成した画像の手の描写に違和感がある場合、部分を限定して修正を行えます。
ここからは、Stable DiffusionのInpaintを利用して手の修正をする方法について解説します。

まずは、手の形状などに改善が必要な画像を用意し、img2imgのタブからInpaintを選択してパネルを開きます。
素材画像をInpaintに読み込みましょう。

修正したい手や指の部分をブラシで塗りつぶします。
その際、手の周りを少し大きめに塗るのがポイントです。
修正に必要なパラメーター設定はデフォルトのままで進みます。

修正部分に対して、手に関するプロンプトとネガティブプロンプトを入力します。
指の描写が大雑把に埋もれてしまっているので、はっきり描くように修正しましょう。
detailed hands,perfect fingers,five fingers,clear hands
修正後の画像を確認し、必要に応じて再度マスクやプロンプト、ネガティブプロンプトの微調整を行います。
パラメーターを微調整することで、最終的に自然で高品質な表現に近づけられます。
自然な結果が得られるまで何度か試行を繰り返して正確に描写されるのを待ちましょう。


Stable Diffusionで手の修正をする方法③Depth map library and poser

「Depth map library and poser」は、ControlNet内のDepthの拡張機能です。
Depthを利用して骨格を抽出し、手足の部位を上書きします。
Stable Diffusionで手や足など修正したい部分だけを変更し、それ以外はそのまま保持できます。
ControlNet Depthのインストール方法
Depthは、ControlNet内にインストールされており、Stable Diffusion内にControlNetを実装すれば導入は完了します。
ControlNetのインストール方法はこちらで詳しく紹介しています。

ControlNet Depthのモデルデータ設定
Stable DiffusionにControlNetのインストールが完了したら、Depthに使用するモデルデータを必要に応じてダウンロードします。
Hugging FaceにControlNetに関するモデルファイルの一覧があるので、その中のDepthのモデルファイルをダウンロードします。
SD1.5用ControlNetモデルデータ
https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
SDXL用ControlNetモデルデータ
https://huggingface.co/lllyasviel/sd_control_collection/tree/main
- control_v11f1p_sd15_depth.pth
- control_v11f1p_sd15_depth.yaml
- kohya_controllllite_xl_depth_anime.safetensors
- kohya_controllllite_xl_depth.safetensors
- sai_xl_depth_128lora.safetensors
- sai_xl_depth_256lora.safetensors

ダウンロード後は、Stable Diffusion Web UIを「です。 models」>「 ControlNet」の順で開き、ダウンロードしたファイルを配置すれば完了

Depth map library and poserのインストールと使い方
Stable Diffusion Web UIの「拡張機能タブ」を開き、「URLからインストール」を選択します。
「拡張機能のリポジトリのURL」の入力欄に下記のDepth map library and poserインストール用のURLを入力し、インストールを開始します。
https://github.com/jexom/sd-webui-depth-lib.git

インストールが完了したらStable Diffusion Web UIを再起動します。
続いて、Stable DiffusionでDepth map library and poserを使う方法について解説していきます。
「Depth ライブラリ」タブから「Hands」をクリックしてパネルを開きます。
「Add background image」をクリックして、修正したい画像を読み込みましょう。

次に、修正したい手の形をリストから選択して「追加」ボタンをクリックします。
大きさと角度を微調整して影を当て込みます。
配置が完了したら、「ControlNet に送る」ボタンをクリックしてDepthに情報を送りましょう。
画像サイズは、修正したい元画像と同じにします。

txt2imgからDepthを開いて、手の配置画像が転送されているかを確認します。
Starting Control Stepの値を0.2くらいに調整すると馴染みやすくなるでしょう。

次に元画像を「PNG内の情報を表示」タブからtxt2imgに情報を送ります。
モデルとシード値、プロンプトは同じデータを使いましょう。

すべて入力し終えたら生成をクリックします。

Stable Diffusionで手の修正をする方法④ADetailer

Stable Diffusion の拡張機能の一つである「ADetailer」には手を修正する機能があります。
ADetailerを拡張機能からインストールしておきましょう。
ADetailer事前準備
「拡張機能」タブを開いて「URLからインストール」タブを選択します。
拡張機能のリポジトリのURL欄に「https://github.com/Bing-su/adetailer」と入力してインストールを開始します。

インストールが完了したら、Stable Diffusion Web UIを再起動します。
再起動後に「拡張機能」から「インストール済」タブを開いて「ADetailer」があることを確認したら、「適用してUIを再起動」ボタンをクリックし、Stable Diffusion Web UIに反映させます。

シードの下に「ADetailer」が表示されていれば準備完了です。

depth_hand_refinerの使い方
Stable Diffusionにインストールが完了したら、「ADetailer」の◀をクリックしてメニューを開きます。
「Enable ADetailer」にチェックを入れて、 「hand_yolov8n.pt」モデルを選択しましょう。
※「hand_yolov8n.pt」モデルはデフォルトで入っています。

同じパネル内のページ下部に移動してdepth_hand_refinerを設定します。
ControlNet module:control_v11f1p_sd15_depth_fp16
ControlNet model:depth_hand_refiner
それぞれ選択し、その他のパラメーターは、一旦デフォルト値で問題ありません。

設定が完了したら生成ボタンをクリックして生成を開始します。
プロンプトやシード値などは元画像と同じ内容で問題ありません。
Inpaint denoising strengthのパラメーターを0.6~0.8ぐらいの間で調整して生成を繰り返します。


Stable Diffusionで手の修正方法を身につければ万全
Stable Diffusionでは、手が正しく生成されないことにより、せっかくうまく生成できた作品も手の崩れが原因でボツになってしまうことが多々あります。
今回紹介したStable Diffusionによる手の修正方法を知っておけば、こうした問題にも安心して対応できるでしょう。
Stable Diffusionを使いこなすならピクソロがおすすめ

効率的にStable Diffusionで画像を生成するには、16GB以上のVRAMが搭載されたパソコンを必要としますが、ほとんどが30万円以上と高額です。
【おすすめ!】ブラウザで使えるStable Diffusion「PICSOROBAN」
「コストを抑えて、手軽に高品質な画像生成を楽しみたい!」と考えている方におすすめは、Webブラウザ上でサクッと利用できる「PICSOROBAN」です。
PICSOROBANなら、VRAMやスペックの心配は不要! インターネットさえあれば、高度なAI画像生成を体験できます。
ブラウザで簡単!ピクソロ!

PICSOROBANは、インストールの必要なくブラウザで簡単にStable Diffusionを利用できます。
さらに、今ならリリースキャンペーンとして無料会員登録するだけで、2,000ポイント(約2時間分)貰えます!
詳しい使い方は下記の記事で紹介しています。
\今なら約2時間無料で使える!/
Stable Diffusionが快適に使えるおすすめのパソコンやグラボに関しては下記の記事で紹介しています。