▶︎動画でも話してるので、文章読むのが面倒な方はこちらをみてもらえればと思います。
今回はComfyUIを使って崩れた手の形を修正する方法について解説します。
これを読めば誰でも簡単にクオリティーの高いAI美女が作れるようになっているので興味がある人は、下のバナーをクリックして購入してみてね🎶
目次
ComfyUIを使って崩れた手の形を修正する方法について
この動画で紹介する内容は、OpenArtというサイトにあるComfyUIの設定ファイルを参考にしております。

この解説では、Google ColabでComfyUIを動作させていきます。
なお、OpenArtとGoogle Colabへのリンク及び、ComfyUIやGoogle Colabというキーワードが分からない場合は、以下にリンクを貼っておきますので、そちらをご確認ください。
Google Colabのサイトにアクセス

ここからの流れは下記に詳細リンクを貼っておきますので、そちらからご参照ください。

これで、ComfyUIのソースコードを実行するための準備が整いました。
ComfyUIのソースコードを実行
下記に貼ってあるテキストをコピーします。
from pathlib import Path
import subprocess
import threading
import time
import socket
!pip install -q torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2+cu118 torchtext==0.15.2 torchdata==0.6.1 --extra-index-url https://download.pytorch.org/whl/cu118 -U
!pip install -q xformers==0.0.20 triton==2.0.0 gradio_client==0.2.7 -U
!apt -y install -qq aria2
!pip install controlnet-aux==0.0.7 onnxruntime-gpu insightface yacs segment_anything omegaconf
!pip install opencv-python==4.8.0.74
%cd /content
!git clone https://github.com/comfyanonymous/ComfyUI
%cd /content/ComfyUI/custom_nodes
!git clone https://github.com/ltdrdata/ComfyUI-Manager.git
!git clone https://github.com/Fannovel16/comfyui_controlnet_aux
!git clone https://github.com/sipherxyz/comfyui-art-venture
# ネガティブプロンプト
!git clone https://huggingface.co/embed/negative /content/ComfyUI/models/embeddings/negative
!wget -c -P /content/ComfyUI/models/embeddings/negative/
%cd /content/ComfyUI
# 依存関係のインストール
!pip install xformers!=0.0.18 -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://download.pytorch.org/whl/cu118
# VAEのダウンロード
!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/
# Checkpointのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/RazzzHF/realismEngineSDXL/resolve/main/RealismEngineSDXL_V2.0_FP16_VAE.safetensors -d /content/ComfyUI/models/checkpoints -o RealismEngineSDXL_V2.0_FP16_VAE.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/201346 -d /content/ComfyUI/models/checkpoints -o epicphotogasm_z.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/178711 -d /content/ComfyUI/models/checkpoints -o yayoimix.safetensors
#ControlNetのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/hr16/ControlNet-HandRefiner-pruned/resolve/main/control_sd15_inpaint_depth_hand_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_sd15_inpaint_depth_hand_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth -d /content/ComfyUI/models/controlnet -o control_v11f1p_sd15_depth.pth
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P /content/ComfyUI/models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P /content/ComfyUI/models/controlnet/
# LoRAのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -d /content/ComfyUI/models/loras -o sd_xl_offset_example-lora_1.0.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://sliders.baulab.info/weights/xl_sliders/fix_hands.pt -d /content/ComfyUI/models/loras -o fix_hands.pt
# cloudflaredのダウンロードとインストール
!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
!dpkg -i cloudflared-linux-amd64.deb
def iframe_thread(port):
while True:
time.sleep(0.5)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('127.0.0.1', port))
if result == 0:
break
sock.close()
print("\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\n")
p = subprocess.Popen(["cloudflared", "tunnel", "--url", f"http://127.0.0.1:{port}"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
for line in p.stderr:
l = line.decode()
if "trycloudflare.com " in l:
print("This is the URL to access ComfyUI:", l[l.find("http"):], end='')
# スレッドの開始
threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()
# ComfyUIの実行
!python main.py --dont-print-server
テキストをコピーしたら、Google Colabの画面に戻り、テキストボックスに先ほどコピーしたテキストを貼り付け、再生ボタンを押します。

これで貼り付けたテキストの内容が実行されます。
この処理には5分以上かかると思います。
しばらく待っていると、このようなリンクが表示されます。

このリンクをクリックします。
そうすると、ComfyUIの画面が表示されます。

設定ファイルを読み込み
この解説では、あらかじめComfyUIの設定ファイルを用意していますので、そちらをご利用ください。
以下に貼ってあるページを表示します。
このページを表示したら、利用ファイルと書かれているタイトルの下にあるZIPファイルをクリックします。

そうすると、ZIPファイルがダウンロードされるので、解凍します。
ダウンロードしたファイルを解凍したら、このようなファイルが表示されると思います。

この中にあるworkflow.JSONと書かれているファイルをComfyUIの画面にドラッグ&ドロップします。

ファイルは、何も表示されていない場所にドラッグアンドドロップするようにしてください。

これで、workflow.JSONの設定ファイルが読み込まれます。
この設定ファイルでは、ブラウス姿の女性が手を振っている画像を生成するようにこのテキストで指定してあります。

この下のブロックで画像を生成する時にやって欲しくないことを指定するためのネガティブプロンプトを指定します。
今回は一旦、手が崩れている画像を意図的に作成したいので、ネガティブプロンプトを空欄にしておきます。

これで画像を生成するための準備が整いました。
それでは早速、画像を生成していきましょう。
画像を生成
「Queue Prompt」と書かれているボタンをクリックします。

これで画像の生成処理が開始されます。
生成処理の状況は、ブロックの表示で確認できます。
緑色で囲まれているブロックが現在実行されている処理です。

処理が完了すると、囲んでいる緑色の表示が移動します。

まずは、このような画像が生成されました。
この画像の手の部分が少し崩れています。

続けて、この部分を修正する処理が実行されます。
これを読めば誰でも簡単にクオリティーの高いAI美女が作れるようになっているので興味がある人は、下のバナーをクリックして購入してみてね🎶
修正する処理の実行
具体的には、最初に手の部分が抽出されます。
このように、黒い背景に本来あるべき手の形が灰色のグラデーションで表示されます。

つまり、この画像が修正する手の形になります。
この画像を元に、手の形を修正した画像が生成されます。
修正された画像が生成されるまでしばらく待ちましょう。
しばらく待っていると、このような画像が生成されました。

期待した通り、手の崩れが修正されています。
この設定ファイルでは、さらにアップスケールした画像も生成される仕組みになっています。
もう1つの画像が生成されるまでしばらく待ちます。
しばらく待っていると、このような画像が生成されました。

こちらの画像も、手の形が修正されています。
ComfyUIで崩れた手の形を修正する方法についての解説は以上です。
是非お試しください。