ComfyUIとHunyuanVideoでローカル動画生成(I2V)

A close up of a computer monitor with a keyboard and mouse AI

いつの間にかローカル動画生成が進化していました。
今回はComfyUIのインストールから、HunyuanVideoを使ってImage2Videoを実行するまでを書いていきます。

参考記事: (Reddit) How to run HunyuanVideo on a single 24gb VRAM card. : r/StableDiffusion

はじめに

実行環境

  • Windows 11
  • NVIDIA RTX 4080 16GB

使うもの

Git for Windows

7zip

PowerShell7

必要ではありませんが、cmd より使いやすいのでおすすめです。

CUDA Toolkit

現時点(2025/02)で最新は12.8。

12.4以上が必要です。
インストール済みの方も、12.4以上か確認してください。nvcc -V で確認できます。

PowerShell
> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:38:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

Visual Studio

wheel のビルドに必要です。

Visual Studio Community のインストーラーをダウンロードし、実行してください。
必要なものは「C++ によるデスクトップ開発」です。

Visual Studioインストーラーで「C++ によるデスクトップ開発」にチェックを入れている画像

ComfyUIのインストール

ComfyUIのダウンロード

ポータブル版をダウンロードして解凍します。

ComUI_windows_portable_nvidia.7zの入手場所を説明する画像

ComfyUI-Managerのインストール

解凍先の ComfyUI_windows_portable/ComfyUI/custom_nodes をエクスプローラーで開き、アドレスバーに pwsh(もしくは cmd)と入力してターミナルを開きます。

アドレスバーからのcmdを起動する画像

以下のコマンドを実行し、ComfyUI-Managerをクローンします。

PowerShell
git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager

ComfyUI-Managerのインストールの確認

ComfyUI_windows_portable/run_nvidia_gpu.bat を実行すると、http://127.0.0.1:8188/ がブラウザで開かれます。

run_nvidia_gpu.bat場所を示す画像

右上にComfyUI-Managerのアイコンが表示されていればOK。

ComfyUI Managerアイコンの画像

必要パッケージのインストール

SageAttention2 をインストールする必要があります。
必要要件は以下のとおりです。

  • python>=3.9
  • torch>=2.3.0
  • CUDA>=12.4
  • triton>=3.0.0

まずバージョン確認を行います。

Pythonのバージョン確認 python.exe -V

PowerShell
> ..\python_embeded\python.exe -V
Python 3.12.8

CUDAのバージョン確認 nvcc -V

PowerShell
> nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:38:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

torchと諸々のインストール

ComfyUI_windows_portable/update フォルダに移動し、以下のコマンドを実行して必要パッケージをインストールします。

PowerShell
..\python_embeded\python.exe -s -m pip install "accelerate >= 1.1.1"
..\python_embeded\python.exe -s -m pip install "diffusers >= 0.31.0"
..\python_embeded\python.exe -s -m pip install "transformers >= 4.39.3"
..\python_embeded\python.exe -s -m pip install ninja
..\python_embeded\python.exe -s -m pip install --upgrade torch torchvision torchaudio xformers==0.0.29.post3 --index-url https://download.pytorch.org/whl/cu124

tritonのインストール

tritonパッケージのインストール

tritonのリリースページの画像

woct0rdho/triton-windows から最新のリリースをダウンロードします。

先ほど確認したPythonのバージョンに合わせてダウンロードしてください。私の場合は Python 3.12.8 だったので、triton-3.2.0-cp312-cp312-win_amd64.whl をダウンロードしました。

ダウンロードした .whl ファイルを ComfyUI_windows_portable/update に置き、以下のコマンドを実行しインストールます。※バージョン部分は適宜変更

PowerShell
..\python_embeded\python.exe -s -m pip install triton-3.2.0-cp312-cp312-win_amd64.whl

includeとlibsの配置

python_3.xx.x_include_libs.zipの場所を説明する画像

woct0rdho/triton-windows から python_3.12.7_include_libs.zip をダウンロードします。
(Python3.11系の場合は python_3.11.9_include_libs.zip)

ダウンロードしたファイルを解凍し、includelibsComfyUI_windows_portable/python_embeded にコピーします。

includeとlibsをpython_embededにドラッグアンドドロップする画像

SageAttentionのインストール

Comfyi-windows-portable フォルダに移動し、以下のコマンドを実行しインストールします。

PowerShell
 git clone https://github.com/thu-ml/SageAttention 
 cd SageAttention
 ..\python_embeded\python.exe -m pip install .

bitsandbytesのインストール

4bit/8bit量子化を行うために必要です。

ComfyUI_windows_portable/update フォルダに移動し、以下のコマンドを実行します。

PowerShell
..\python_embeded\python.exe -s -m pip install bitsandbytes>=0.45.1

テスト

ここまでのインストールがうまくいっているか確認します。

ComfyUI_windows_portable/test.py を作成し、次のコードを記述してください。

Python
import torch
import triton
import triton.language as tl

@triton.jit
def add_kernel(x_ptr, y_ptr, output_ptr, n_elements, BLOCK_SIZE: tl.constexpr):
    pid = tl.program_id(axis=0)
    block_start = pid * BLOCK_SIZE
    offsets = block_start + tl.arange(0, BLOCK_SIZE)
    mask = offsets < n_elements
    x = tl.load(x_ptr + offsets, mask=mask)
    y = tl.load(y_ptr + offsets, mask=mask)
    output = x + y
    tl.store(output_ptr + offsets, output, mask=mask)

def add(x: torch.Tensor, y: torch.Tensor):
    output = torch.empty_like(x)
    n_elements = output.numel()
    grid = lambda meta: (triton.cdiv(n_elements, meta["BLOCK_SIZE"]),)
    add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024)
    return output

a = torch.rand(3, device="cuda")
b = a + a
b_compiled = add(a, a)
print(b_compiled - b)
print("If you see tensor([0., 0., 0.], device='cuda:0'), then it works")

実行

PowerShell
.\python_embeded\python.exe .\test.py

tensor([0., 0., 0.], device='cuda:0') と表示されれば大丈夫です。

もし、ImportError: DLL load failed while importing cuda_utils: 指定されたモジュールが見つかりません。 と表示された場合は、C:\Users\ユーザー名\.triton フォルダを削除し、再度実行してみてください。

学習済みモデルのダウンロード

VAEのダウンロード

  • hunyuan_video_vae_bf16.safetensors

ファイルは下記のフォルダ内に置きます( hyvid フォルダがない場合は作成)。

ComfyUI_windows_portable\ComfyUI\models\vae\hyvid
HuggingFaceのモデルダウンロードリンクの場所を説明する画像

Hunyuan Video model のダウンロード

  • hunyuan_video_720_cfgdistill_fp8_e4m3fn.safetensors
  • hunyuan_video_FastVideo_720_fp8_e4m3fn.safetensors

下記のフォルダ内に置きます。

ComfyUI_windows_portable\ComfyUI\models\diffusion_models\hyvid

Leapfusion Hunyuan Image-to-Video Lora のダウンロード

今回はImage2Videoを試したいのでLeapfusion Hunyuan Image-to-Video Lora weightsをダウンロードします。

  • img2vid544p.safetensors

下記のフォルダ内に置きます。

ComfyUI_windows_portable\ComfyUI\models\loras\hyvid

実行

必要ノードのインストール

ComfyUI_windows_portable/run_nvidia_gpu.bat を実行し、ComfyUIの画面を開いておいてください。

Civitai にある、下記ワークフローを使います。

ワークフローのダウンロードを説明する画像

zipファイルを解凍し、Hunyuan-Img2Vid-LeapFusion v2 1.0.json をComfyUIのブラウザ画面にドラッグ&ドロップします。

必要なカスタムノードがインストールされていないので、警告が出ます。

「Missing Node Types」が表示された時の画像

右上のComfyUI-Managerのアイコンをクリックし、「Install Missing Custom Nodes」をクリックします。

ComfyUI Managerアイコンの画像
「Install Missing Custom Nodes」をクリックする画像

Install」をクリックし、すべてインストールします。※バージョンはlatestを選択しました。

ノードをインストールする画面の画像

Comfy UI の再起動を促されるので、左下の「Restart」をクリックして再起動します。

「Restart」ボタンをクリックし再起動する画像

再起動が終わり、ブラウザ画面がリフレッシュされるとエラーが消えていると思います。

各ノードの設定

生成前に各ノードの設定を行います。
設定は一例なので参考程度に。

ComfyUI_HunyuanVideoWrapperのノードの説明
  • IMG2VID LORA ノード
    • lora: hyvid/img2vid544p.safetensors
  • HunyuanVideo Model Loader
    • model: hyvid/hunyuan_video_720_FastVideo_fp8_e4m3fn.safetensors
    • auto_cpu_offload: True
  • VAE
    • model_name: hyvid/hunyuan_video_vae_bf16.safetensors
  • (Down)Load HunyuanVideo TextEncoder
    • precision: bf16
    • quantization: bnb_nf4
  • HunyuanVideo Sampler
    • steps: 6
    • embedded_guidance_scale: 6
    • flow_shift: 20
  • HunyuanVideo Enhance A Video
    • weight: 8.00
    • start_percent: 0.0
    • end_percent: 0.8
  • HunyuanVideo Decode
    • spatial_tile_sample_min_size: 160 ※VRAMに合わせて調整

auto_cpu_offload でVRAM使用量を抑えることができます。
upcast_ropeを無効にすることでもVRAM使用量を抑えることができるらしいですが、私には実感できませんでした。

TextEncoderは bnb_nf4 で問題なかったので選びました。

専用GPUメモリに収まらないと途端に遅くなります。フレーム数や画像サイズなど、VRAM容量に合わせて調整してください。

初回実行時、llm_modelとclip_modelのダウンロードが始まるため少し時間がかかります。

生成

スマホで撮影した白鳥の画像を入力してみます。

544×960で65フレームの動画の生成に計1分30秒ほどかかりました。
生成動画:

544×960の97フレームで2分程度かかりました。この辺がVRAM16GBで快適に動かせる限界でした。
生成動画:

まとめ

ComfyUIとHunyuanVideoを使ってImage2Videoを試してみました。

ローカル動画生成は制限や検閲が無いことがメリットだと思います。

Cvitai などでhunyuan関連のLoraも多数公開されてきているので、ぜひ良いものを探して試してみてください。

コメント

タイトルとURLをコピーしました