▶︎動画でも話してるので、文章読むのが面倒な方はこちらをみてもらえればと思います。
今回はconfiUIを使って動画からアニメーション動画を生成する方法について解説します。
confiUIを使って動画からアニメーション動画を生成する方法について
この動画ではcomfyUIを使って動画を生成していきます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-1.40.49.png)
もしもcomfyUIというキーワードが分からない場合は、解説している動画を下記に貼っておきますのでそちらをご確認ください。
この動画ではcomfyUIを動作させるためにGoogle Colabを利用します。
Google Colabを使ってプログラミングを実行する
Google Colabはクラウド上でプログラミングを実行することができるGoogleが提供しているツールです。
![](https://oshitai.jp/wp-content/uploads/2023/11/スクリーンショット-2023-11-18-15.09.28.png)
無料で使用することができ、自分のパソコンのスペックに依存せず高速な処理を行うことができるのが大きな利点です。
Googleアカウントを持っていれば誰でもGoogle Colabを使用することができます。
Google ColabのURLを貼っておきますのでそちらをご確認ください。
Google Colabのサイトにアクセスしたらこのような画面が表示されると思います。
![](https://oshitai.jp/wp-content/uploads/2023/11/スクリーンショット-2023-11-18-15.11.37.png)
表示されているポップアップ画面の右下にあるノートブックを新規作成と書かれているテキストをクリックします。
![](https://oshitai.jp/wp-content/uploads/2023/11/スクリーンショット-2023-11-18-15.13.06.png)
これでGoogle Colabを実行するための準備が整いました。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-16-16.35.06.png)
先ほどGoogle Colabは無料で利用できると説明しました。
ただし無料版だとリソースの割当てが保証されていません。
そのため強制的にコードを終了されてしまうことがあります。
最近はGoogle Colabを利用するユーザーが増えていますので無料版に割り当てられるGoogle Colabのリソースが減ってしまっています。
![](https://oshitai.jp/wp-content/uploads/2023/12/スクリーンショット-2023-12-10-14.14.14.png)
その結果、無料版では以前より実行中のコードが強制終了されてしまうことが多くなってきました。
具体的にはコードの実行が強制的に終了された場合はこのような画面になります。
![](https://oshitai.jp/wp-content/uploads/2023/12/スクリーンショット-2023-12-10-14.12.49.png)
再生ボタンの部分が赤くなっているもしくは赤いびっくりマークのアイコンが表示されている。
![](https://oshitai.jp/wp-content/uploads/2023/12/スクリーンショット-2023-12-10-14.19.08.png)
このような場合はコードが強制的に中断されたと判断していいと思います。
強制的に中断されてしまう状況が続くようであれば有料プランへの切り替えをお勧めします。
有料プランへの切り替え方法については詳細を解説している動画を以下のリンクに貼っておきますので、そちらをご確認ください。
なお、ここからは有料版に切り替えた状態で解説を進めます。
有料版に切り替えた状態で解説
Google Colabの準備が整ったらランタイムを設定します。
メニューの中からランタイムと書かれているテキストを選択します。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.08.23.png)
そして表示されたメニューの中からランタイムのタイプを変更をクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.09.58.png)
ランタイムのタイプはPython3のままで大丈夫です。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.10.33.png)
ハードウェア アクセラレーターはA100 GPUを選択します。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.11.54.png)
なおA100 GPUを選択すると自動的にハイメモリーが有効になります。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.12.23.png)
ランタイムのタイプを設定したら保存をクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.12.49.png)
右上にある接続または再接続と書かれているテキストをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.13.18.png)
そうすると先ほど指定したランタイムのタイプに接続されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.13.54.png)
下向きの三角形のマークをクリックするとメニューが表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.14.38.png)
表示されたメニューの中からリソースを表示をクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.15.33.png)
そうすると現在接続しているランタイムのタイプの使用状況が確認できます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.15.42.png)
A100 GPUを選択した場合は、使用率が高いので処理が終わったらできるだけ早くリソースを解放することを意識しておきましょう。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.17.37.png)
ランタイムの設定が完了したら次に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
!pip install opencv-python==4.8.0.74
# 定数と設定
WORKSPACE = '/content/ComfyUI'
UPDATE_COMFY_UI = True
# ComfyUIのセットアップと更新
if not Path(WORKSPACE).exists():
%cd /content
print("-= Initial setup ComfyUI =-")
!git clone https://github.com/comfyanonymous/ComfyUI
else:
%cd $WORKSPACE
print("-= Updating ComfyUI =-")
!git pull
%cd $WORKSPACE/custom_nodes
!git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
!git clone https://github.com/ssitu/ComfyUI_UltimateSDUpscale
!git clone https://github.com/TinyTerra/ComfyUI_tinyterraNodes
!git clone https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet
!git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved
!git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes
!git clone https://github.com/Stability-AI/stability-ComfyUI-nodes
!git clone https://github.com/RockOfFire/ComfyUI_Comfyroll_CustomNodes
!git clone https://github.com/ltdrdata/ComfyUI-Manager.git
!git clone https://github.com/mcmonkeyprojects/sd-dynamic-thresholding
!git clone https://github.com/laksjdjf/IPAdapter-ComfyUI.git
!git clone https://github.com/Fannovel16/comfyui_controlnet_aux.git
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.bin -d /content/ComfyUI/custom_nodes/IPAdapter-ComfyUI/models -o ip-adapter-plus-face_sd15.bin
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors -d /content/ComfyUI/models/clip_vision/ip_adapter -o model.safetensors
!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
# アニメーションモデルのダウンロード
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt -d /content/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models -o mm_sd_v15_v2.ckpt
# ネガティブプロンプト
!git clone https://huggingface.co/embed/negative $WORKSPACE/models/embeddings/negative
!wget -c -P $WORKSPACE/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/upscale_models -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/upscale_models -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/upscale_models -o verybadimagenegative_v1.3.pt
%cd $WORKSPACE
# 依存関係のインストール
print("-= Install dependencies =-")
!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をダウンロード
!wget -c https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -P ./models/checkpoints/
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/128713 -d $WORKSPACE/models/checkpoints -o dreamshaper_8.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/177164 -d $WORKSPACE/models/checkpoints -o braBeautifulRealistic_v70.safetensors
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://civitai.com/api/download/models/142334 -d $WORKSPACE/models/checkpoints -o Dolphinmix_v10.safetensors
#ControlNetのダウンロード
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/
!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/
# 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の画面に戻ります。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.21.07.png)
Google Colabの画面に戻ったらテキストボックスにコピーしたテキストを貼り付けます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.21.45.png)
そして左上の再生ボタンをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.22.14.png)
これで貼り付けたテキストの実行が開始されます。
このコマンドの実行には5分以上の時間がかかると思います。
しばらく待っているとこのようなリンクが表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.23.07.png)
表示されたリンクをクリックするとcomfyUIの画面が表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.23.38.png)
これでcomfyUIの操作画面を表示することができました。
この画面が表示されたら以下に貼ってあるリンク先のページを表示します。
このページを表示したら設定ファイルと書かれているタイトルの下にある添付ファイルをダウンロードします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.24.42.png)
ダウンロードしたファイルを解凍します。
そうするとこのようなファイルがあると思います。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.27.33.png)
この中にあるworkflow_setting.Jsonという名前のファイルを読み込みます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.29.26.png)
このファイルを読み込むにはcomfyUIの画面で操作します。
Loadと書かれているボタンをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.30.09.png)
そうするとダイアログボックスが表示されるのでworkflow_setting. Jsonを選択します。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.31.36.png)
これでアニメーションの動画を生成するための準備が整いました。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.32.13.png)
それでは早速動画を生成していきましょう。
comfyUIの表示部分を左上の方に移動します。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.32.26.png)
次にLoad Videoというタイトルのブロックの中にあるchoose file to uploadと書かれているボタンをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.33.48.png)
そしてアニメーションの元になる動画ファイルを選択します。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.40.31.png)
アップロードには少し時間がかかります。
アップロードが完了したらファイル名が切り替わります。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.41.10.png)
この動画では同じ名前のファイルをアップロードしたので見た目上は変わっていませんが、ファイルはアップロードされています。
ファイルをアップロードしたらQueue Promptと書かれているボタンをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.42.21.png)
これでアニメーションの動画の生成が開始されます。
このまま動画が作成されるまで待っていても問題ありませんが、処理には10分以上かかります。
そのためGoogle Colabの画面に切り替えて処理の状況を確認していきましょう。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.45.41.png)
Queue Promptのボタンをクリックしてしばらくするとgot promptというメッセージが表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.46.30.png)
その後に処理に必要なファイルのダウンロードが開始されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.52.33.png)
ダウンロードが完了してから次の処理内容が表示されるまでは数分程度かかります。
数分待っているとこのようなメッセージが表示され始めます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.55.10.png)
ここからさらに1分ほど待っているとこのような進捗状況を伝えるメッセージが表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.55.44.png)
このパーセンテージもなかなか進まないこともあると思いますが100%になるまで待ちます。
この動画の 場合は1/25から2/25になるまで1 分程度かかりました。
元になる動画ファイルによってはもっと時間がかかる可能性があります。
そのため気長に待ちましょう。
しばらく待っていると進捗状況が100%になります。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-2.57.57.png)
進捗状況が100%になってからさらに数分待っていると動画の作成処理が完了します。
このようにPrompt executed in というメッセージが表示されれば動画の処理は完了です。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.01.30.png)
今回の場合は動画の生成処理に798秒かかったようです。
つまり処理には約13分かかりました。
生成された動画をパソコンに保存するには、まずフォルダのマークをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.03.14.png)
表示された一覧の中からcomfyUIのフォルダをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.03.52.png)
続けてoutputという名前のフォルダをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.04.44.png)
そして拡張子がMP4のファイルの右側にあるドットをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.05.31.png)
メニューが表示されたらダウンロードをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.06.27.png)
しばらく待っていると動画のダウンロードが開始されます。
青い円の表示が完了したらダウンロードが開始されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.07.07.png)
これで作成した動画をパソコンに保存することができます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.08.01.png)
今回作成した動画がこちらです。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.08.32.png)
左側の動画を元に右側のアニメーションの動画が生成されています。
動画を元にこんな感じのアニメーションを作成できるのはすごいですね。
アニメーションを生成したら忘れずにGoogle Colabのリソースを解放しておきましょう。
Google Colabの画面に切り替えます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.10.10.png)
右上に表示されているリソースの右側にある三角のマークをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.10.42.png)
選択されたメニューからリソースを表示をクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.11.14.png)
そうすると現在接続しているリソースの情報が表示されます。
セッションの管理と書かれているリンクをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.11.48.png)
そうするとアクティブなセッションが一覧で表示されます。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.12.23.png)
この画面が表示されたらゴミ箱のマークをクリックします。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.12.38.png)
そうすると確認メッセージが表示されるので終了を選択します。
![](https://oshitai.jp/wp-content/uploads/2024/01/スクリーンショット-2024-01-15-3.13.20.png)
これでGoogle Colabのリソースを解放することができます。
今回紹介した方法はリソースの使用率が高いのでこの処理を忘れないようにしましょう。
ぜひ皆さんも試してみてくださいね🎵