▶︎動画でも話してるので、文章読むのが面倒な方はこちらをみてもらえればと思います。
今回はStreamDiffusionのスムーズ版を利用する方法について解説します。
これを読めば誰でも簡単にクオリティーの高いAI美女が作れるようになっているので興味がある人は、下のバナーをクリックして購入してみてね🎶
目次
StreamDiffusionのスムーズ版を利用する方法について
この動画で紹介する内容は、OpenArtというサイトにあるComfyUIの設定ファイルを参考にしております。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.55.10.png)
この解説では、Google ColabでComfyUIを動作させていきます。
なお、OpenArtとGoogle Colabへのリンク及びComfyUIやGoogle Colabに関する解説記事のリンクを以下に貼っておきます。
Google Colabのサイトにアクセス
![](https://oshitai.jp/wp-content/uploads/2024/02/スクリーンショット-2024-02-17-17.43.37.png)
ここからの流れは下記に詳細リンクを貼っておきますので、そちらからご参照ください。
![](https://oshitai.jp/wp-content/uploads/2024/03/スクリーンショット-2024-03-26-20.54.38.png)
これで、Google Colabでコードを実行するための準備が整いました。
Google Colabでコードを実行
下記に貼ってあるテキストをコピーします。
!apt -y install -qq aria2
!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
!pip install torchsde controlnet-aux==0.0.7 onnxruntime-gpu insightface segment_anything watchdog omegaconf piexif
%cd /content
!git clone https://github.com/comfyanonymous/ComfyUI
%cd /content/ComfyUI
!pip install -r requirements.txt
# ComfyUI Managerのインストール
%cd /content/ComfyUI/custom_nodes
!git clone https://github.com/ltdrdata/ComfyUI-Manager.git
!git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
!git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes
!git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
!git clone https://github.com/Derfuu/Derfuu_ComfyUI_ModdedNodes
# ---------------- ComfyUI-Impact-Packの設定開始 ---------------------
!git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack
%cd ComfyUI-Impact-Pack
!git submodule update --init --recursive
!python install.py
%cd /content/ComfyUI/custom_nodes
# ---------------- ComfyUI-Impact-Packの設定終了 ---------------------
# ---------------- comfyui_controlnet_auxの設定開始 ---------------------
!git clone https://github.com/Fannovel16/comfyui_controlnet_aux.git
!pip install -r /content/ComfyUI/custom_nodes/comfyui_controlnet_aux/requirements.txt
# ControlNetのモデルは別途インストール
# ---------------- comfyui_controlnet_auxの設定完了 ---------------------
# ---------------- ComfyUI-fastblendの設定開始 ---------------------
%cd /content/ComfyUI/custom_nodes
!git clone https://github.com/AInseven/ComfyUI-fastblend
!mv ComfyUI-fastblend AInseven
%cd /content/ComfyUI/custom_nodes
# ---------------- ComfyUI-fastblendの設定終了 ---------------------
# ---------------- ComfyUI-Diffusersの設定開始 ---------------------
%cd /content/ComfyUI/custom_nodes
!git clone https://github.com/Limitex/ComfyUI-Diffusers.git
%cd ComfyUI-Diffusers
!pip install -r requirements.txt
!git clone https://github.com/cumulo-autumn/StreamDiffusion.git
!python -m streamdiffusion.tools.install-tensorrt
%cd /content/ComfyUI/custom_nodes
# ---------------- ComfyUI-Diffusersの設定完了 ---------------------
# Checkpointをダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors -d /content/ComfyUI/models/checkpoints -o v1-5-pruned-emaonly.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/130072 -d /content/ComfyUI/models/checkpoints -o realisticVisionV51_v51VAE.safetensors
# VAEをダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/a1079602570/animefull-final-pruned/resolve/main/animevae.pt -d /content/ComfyUI/models/vae -o animevae.pt
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -d /content/ComfyUI/models/vae -o vae-ft-mse-840000-ema-pruned.safetensors
# Negative Promptをダウンロード
!git clone https://huggingface.co/embed/negative /content/ComfyUI/models/embeddings/negative
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/77169 -d /content/ComfyUI/models/embeddings -o BadDream.pt
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/77173 -d /content/ComfyUI/models/embeddings -o UnrealisticDream.pt
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/25820 -d /content/ComfyUI/models/embeddings -o verybadimagenegative_v1.3.pt
# LoRAのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/resolve/main/pytorch_lora_weights.safetensors -d /content/ComfyUI/models/loras -o lcm-lora-sdv1-5_lora_weights.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/OedoSoldier/detail-tweaker-lora/resolve/main/add_detail.safetensors -d /content/ComfyUI/models/loras -o add_detail.safetensors
# Upscalerのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/embed/upscale/resolve/main/4x-UltraSharp.pth -d /content/ComfyUI/models/upscale_models -o 4x-UltraSharp.pth
# ControlNetのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11e_sd15_ip2p_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11e_sd15_shuffle_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_canny_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11f1p_sd15_depth_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_inpaint_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_lineart_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_mlsd_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_normalbae_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_openpose_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_scribble_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_seg_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15_softedge_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11p_sd15s2_lineart_anime_fp16.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -d /content/ComfyUI/models/controlnet -o control_v11u_sd15_tile_fp16.safetensors
!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
!dpkg -i cloudflared-linux-amd64.deb
import subprocess
import threading
import time
import socket
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='')
%cd /content/ComfyUI
# スレッドの開始
threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()
# ComfyUIの実行
!python main.py --dont-print-server
テキストをコピーしたら、Google Colabの画面に戻り、テキストボックスに先ほどコピーしたテキストを貼り付け、再生ボタンを押します。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.55.48.png)
これで貼り付けたテキストの内容が実行されます。
この処理には5分以上かかると思います。
しばらく待っていると、このようなリンクが表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.55.55.png)
このリンクをクリックします。
そうすると、ComfyUIの画面が表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.55.59.png)
この画面が表示されたら、次に設定ファイルを読み込みます。
設定ファイルを読み込み
この解説では、あらかじめComfyUIの設定ファイルを用意していますので、そちらをご利用ください。
以下に貼ってあるページを表示します。
このページを表示したら、利用ファイルと書かれているタイトルの下にあるZIPファイルをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.08.png)
そうすると、ZIPファイルがダウンロードされるので、解凍します。
ダウンロードしたファイルを回答したら、このようなファイルが表示されると思います。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.13.png)
この中にある「workflow.JSON」と書かれているファイルをComfyUIの画面にドラッグ&ドロップします。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.15.png)
ファイルは何も表示されていない場所にドラッグ&ドロップするようにしてください。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.20.png)
これで「workflow.JSON」の設定ファイルが読み込まれます。
設定ファイルが読み込まれたら、元になる動画ファイルをアップロードしましょう。
元になる動画ファイルをアップロード
具体的には、「ロードビデオ」から始まるタイトルのブロックの中にある「アップロード」ボタンをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.28.png)
そうすると、ダイアログボックスが表示されるので、動画ファイルを選択します。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.32.png)
今回はこのような動画をアップロードしておきました。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-18.56.38.png)
StreamDiffusionを実行
「Queue Prompt」と書かれているボタンをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-19.00.31.png)
これで画像の生成処理が開始されます。
生成処理の状況はブロックの表示で確認できます。
緑色で囲まれているブロックが現在実行されている処理です。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-19.00.38.png)
処理が完了すると、囲んでいる緑色の表示が移動します。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-19.00.41.png)
生成される動画は1番右側のブロックに表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-19.00.44.png)
長さにもよりますが、生成される動画には時間がかかります。
5秒程度の動画に15分以上かかることもあります。
しばらく待っていると、このような動画が生成されました。
左側がStreamDiffusionの通常版で生成した動画です。
これに対して右側がスムーズ版で生成した動画です。
![](https://oshitai.jp/wp-content/uploads/2024/05/スクリーンショット-2024-05-29-19.00.51.png)
スムーズ版の方が画面のちらつきが少なくなっています。
(動画で確認した方が分かりやすいです)
今回の解説は以上です。
是非お試しください。