M4 Mac miniでのComfyUIとHunyuan Videoによる動画生成AI

# Hunyuan Video
[Hunyuan Video](https://aivideo.hunyuan.tencent.com)は[テンセント](https://www.tencent.com/en-us/index.html)が開発した動画生成AIです。

Hunyuan Videoで文章から動画を生成するText to Video(T2V)について[以前の記事](https://qiita.com/asfdrwe/items/94080583aec1c4d0b7dc#hunyuanvideoによる動画生成202515追加)で解説済みですが、[2025/3/6に画像を元に動画生成するImage to Video(I2V)に対応したので](https://github.com/Tencent/HunyuanVideo)、改めてM4 Mac miniでコマンドラインとComfyUIによるHunyuan Videoの活用の手順を一から説明していきます。

なお、この記事はM4 Mac mini向けですが、macOS固有の内容は準備の部分までなので、Windows+Geforce等ComfyUIが正常に動く環境であれば、Hunyuan Videoによる動画生成以降の動画生成のワークフロー等はそのまま活用できます（というか、最初にWindows + Geforce 3060でHunyuan Videoの動画生成手順を確認して、それをM4 Mac miniで適用できるよう修正しました）。

Windows等でのHunyuanVideoによる動画生成作業手順が必要な方は[Hunyuan Videoによる動画生成](https://qiita.com/asfdrwe/items/ac71be6c2d84f0de3e4d#hunyuan-videoによる動画生成)以降を参照してください(WindowsのばあいFinderはエクスプローラーに置き換えてください)。

## catAITools とApple Silicon Mac 生成AI活用ガイド(2025/4/19追加)
Hunyuan VideoやWanVideoをGUIで活用できるツールとその解説を作成したので、こちらも参照してください。

https://asfdrwe.github.io/catAITools/

https://github.com/asfdrwe/catAITools/

## 更新履歴
- 2025/4/19
Apple Silicon Mac 生成AI活用ガイドについて追加
- 2025/3/24
clipの移動先が間違っていたので修正
- 2025/3/10
Hunyun Video T2V用ワークフローを修正(FastVideo LoRAがガイダーに反映されていなかった点を修正)
- 2025/3/9
公開

## 使用機器

### M4 Mac mini(最小スペック構成)

|種類|内容|
|----------|---------------------------------|
| CPU | 10コア(高性能4コア+ 高効率6コア)　|
| GPU | 10コア |
| NE | 内蔵Apple Neural Engine |
| メモリ | 16GB |
| OS | macOS sequoia(15.3.1) | 

## 準備
以下の解説ではホームフォルダ以下で作業します。別なフォルダで作業する場合は適宜読み替えてください。

画面下のDockのLaunchpadのその他からターミナルを起動してください。
以下、`黒で囲われている枠内の先頭が`% `で始まる文字列が入力するコマンドになっています。`% `はプロンプトなので、それ以降の部分をターミナルに貼り付けてEnterキーを押して実行してください。

### xcodeとbrewのインストール
xcodeとbrewをインストールしていない場合は両方インストールしてください。

#### xcode

```
% xcode-select --install
```

コマンドライン版xcodeをインストールしていない場合、
![xcode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/de5579af-bea6-1250-d0c6-4ba2ea614371.png)
というダイアログが出るので、インストールを押して、契約に同意してインストールしてください。インストールには時間がかかります。

#### brew

```
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

```
==> Checking for `sudo` access (which may request your password)...
Password:
...
Press RETURN/ENTER to continue or any other key to abort:
```

パスワードを聞かれるので入力し、さらに続けるか聞かれるので、Enterキーを押してインストールします。

```
...
==> Next steps:
- Run these commands in your terminal to add Homebrew to your PATH:
    echo >> /Users/asfdrwe/.zprofile
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/asfdrwe/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh
```

最後に環境変数の設定をするように指示があるので、設定してください(HOME環境変数を利用してユーザ名に関わらず実行できるよう変更しています)。

```
% echo >> $HOME/.zprofile
% echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile
% eval "$(/opt/homebrew/bin/brew shellenv)"
```

`brew`コマンドが正常に動作するか確認してください。

```
% brew
```

```
Example usage:
  brew search TEXT|/REGEX/
  brew info [FORMULA|CASK...]
  brew install FORMULA|CASK...
...
```

### brewで必要なツールをインストール
`brew`を使い、`git`や`python`、`ffmpeg`をインストールしてください。2025/3/9時点でpythonは3.13.2が入りますが、ComfyUIは3.13でも正常に動くので、これを使います。

```
% brew install git python ffmpeg
```

## ComfyUI
### ComfyUIのインストール

`git`コマンドでインストールします。

```
% git clone https://github.com/comfyanonymous/ComfyUI.git
```

`ComfyUI`フォルダに移動し、
```
% cd ComfyUI
```
`venv`による仮想環境を構築して有効にします(以後プロンプトに(venv)が付きます)。
```
% python3.13 -m venv venv
% . venv/bin/activate
```

`pip`で必要なファイルをインストールします。
```
% pip install -r requirements.txt
```

```
...
[notice] A new release of pip is available: 25.0 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
...
```
`pip`のアップグレードが必要と表示されている場合はアップグレードしてもういちど実行してください。

```
% pip install --upgrade pip
% pip install -r requirements.txt
```

#### ComfyUI-Managerのインストール
起動の前にComfyUIの拡張機能をComfyUI上で管理できるComfyUI-Managerをインストールします。

`custom_nodes`フォルダに移動し、`git`でComfyUI-Managerをインストールし、元のフォルダに戻ります。

```
% cd custom_nodes
% git clone https://github.com/ltdrdata/ComfyUI-Manager.git
% cd ..
```

### ComfyUIの起動

次のコマンドでComfyUIを実行します。初回起動時は若干時間がかかります。ComfyUIを終了したい場合は、ターミナルでCtrlキー+cを押してください。

```
% python3 main.py
```

```
...
To see the GUI go to: http://127.0.0.1:8188
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/alter-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/github-stats.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/model-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/extension-node-map.json
FETCH ComfyRegistry Data: 5/57
FETCH ComfyRegistry Data: 10/57
FETCH ComfyRegistry Data: 15/57
FETCH ComfyRegistry Data: 20/57
FETCH ComfyRegistry Data: 25/57
FETCH ComfyRegistry Data: 30/57
FETCH ComfyRegistry Data: 35/57
FETCH ComfyRegistry Data: 40/57
FETCH ComfyRegistry Data: 45/57
FETCH ComfyRegistry Data: 50/57
FETCH ComfyRegistry Data: 55/57
FETCH ComfyRegistry Data [DONE]
[ComfyUI-Manager] default cache updated: https://api.comfy.org/nodes
nightly_channel: 
https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/remote
FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json [DONE]
[ComfyUI-Manager] All startup tasks have been completed.
```

メッセージの表示が止まり、[http://127.0.0.1:8188](http://127.0.0.1:8188)を開くように指示が出るので、ブラウザで開いてください。

初回は画像生成用のワークフローが自動的に開かれ、必要なモデルがないと表示されるので、動作確認用に画像生成AIモデルの`v1-5-pruned-emaonly-fp16.safetensors`をダウンロードし、メッセージを閉じてください。

![first.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/e1c965b1-f8a6-4df9-b3c3-94e4d1bf63fa.png)

ダウンロードした`v1-5-pruned-emaonly-fp16.safetensors`を、ダウンロードフォルダから`ComfyUI`フォルダの`models`フォルダの`checkpoints`フォルダにFinderで移動させてください。

ダウンロードフォルダとは別に、Finderのメニューのファイルから新規Finderウィンドウを選んでFinderをもう一枚開きます。ホームフォルダが選べるならそこから`ComfyUI`フォルダの`models`フォルダの`checkpoints`フォルダに移動します。ホームフォルダを選べない場合、Finderのメニュー→移動→フォルダへ移動を選び、`/Users/ユーザ名/ComfyUI/models/checkpoints`で移動できます。ダウンロードフォルダのファイルをドラッグアンドドロップで`checkpoints`フォルダに移動させてください。

最後にブラウザを再読み込みしてください。

### 動作確認(画像生成)
動作確認のためComfyUIの画面の中央下の実行を押して画像生成しましょう。

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/a2d971d0-7e12-48f2-a979-5cf300cab389.png)

中央上のCLIPテキストエンコード（プロンプト）にある`
beautiful scenery nature glass bottle landscape, , purple galaxy bottle,`
という英語での指示に従い、自然の風景内に紫色の銀河が写っているボトルの画像が生成されます。

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/e27fa5f9-4e11-41a5-9850-6289ec5fa908.png)

![ComfyUI_00001_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/2c60a683-ac11-4c34-955a-0efd2b80144d.png)

ファイルは`ComfyUI`フォルダの`output`フォルダに保存されます。

なお、このチュートリアルになっている画像生成用ワークフローは、メニューのワークフロー→テンプレートを参照→Basics内にある画像生成を選ぶことでも開くことができます。

あとでHunyuan VideoのI2Vで画像が必要になるので、そのための画像も生成しておきます。

なんでもいいのですが、とりあえず、`cat walking in bedroom`に変更して実行を押すと、寝室で歩いている猫画像が生成されるはずです。

![ComfyUI_00002_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/19378be3-7aa6-411b-853f-d02048033f5a.png)

ComfyUIのメニューのワークフローから保存を押し、ファイル名はそのままで保存しておいてください。

## Hunyuan Videoによる動画生成

### モデルのダウンロード

[ComfyUI公式文書](https://docs.comfy.org/advanced/hunyuan-video)を参考に、モデルサイズを小さく縮小したQ4_K_Mタイプの[GGUF形式](https://huggingface.co/docs/hub/gguf)のモデルが存在するものは置き換え、さらに高速生成用Loraの[FastVideo](https://huggingface.co/FastVideo/FastHunyuan)を適用できるよう修正したワークフローで動画生成します。

次のモデルをすべてダウンロードしてください。クリックすればそのままダウンロードできるように直リンクしてあります。

- T2V用GGUF形式のHunyuan Videoモデル
  - https://huggingface.co/city96/HunyuanVideo-gguf/resolve/main/hunyuan-video-t2v-720p-Q4_K_M.gguf?download=true
  - 
- I2V用GGUF形式のHunyuan Videoモデル
  - https://huggingface.co/city96/HunyuanVideo-I2V-gguf/resolve/main/hunyuan-video-i2v-720p-Q4_K_M.gguf?download=true

この2つは`ComfyUI`フォルダの`models`フォルダの`diffusion_models`フォルダに移動させてください。

- clip 
  - https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/clip_l.safetensors?download=true
`ComfyUI`フォルダの`models`フォルダの`clip`フォルダに移動させてください(2025/3/24修正)。

- clip vision
  - https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/clip_vision/llava_llama3_vision.safetensors?download=true
`ComfyUI`フォルダの`models`フォルダの`clip_vision`フォルダに移動させてください。

- LoRA
  - https://huggingface.co/Kijai/HunyuanVideo_comfy/resolve/main/hyvideo_FastVideo_LoRA-fp8.safetensors?download=true
`ComfyUI`フォルダの`models`フォルダの`loras`フォルダに移動させてください。

- text encoders
  - https://huggingface.co/city96/llava-llama-3-8b-v1_1-imat-gguf/resolve/main/llava-llama-3-8B-v1_1-Q4_K_M.gguf?download=true
`ComfyUI`フォルダの`models`フォルダの`text_encoders`フォルダに移動させてください。
 
- VAE
  - https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/vae/hunyuan_video_vae_bf16.safetensors?download=true
`ComfyUI`フォルダの`models`フォルダの`clip`フォルダに移動させてください。

(補足: T2V用のHunyuanVideoモデルに関してはFastVideoを統合したGGUF形式のモデルも[こちら](https://huggingface.co/city96/FastHunyuan-gguf/tree/main)にあります)

### 文章に基づく動画生成(T2V)
[公式のワークフロー](https://comfyanonymous.github.io/ComfyUI_examples/hunyuan_video/hunyuan_video_text_to_video.json)を元に、GGUF形式モデルとFastVideoに対応したワークフローを作成しました。

[こちら](https://raw.githubusercontent.com/asfdrwe/misc/refs/heads/main/Hunyuan%20Video%20T2V%20Sample%2020250310.json)を右クリックしてリンク先のファイルを別名でダウンロードでファイル名はそのままでダウンロードフォルダにダウンロードしてください(macOSのSafariではファイル名の最後に.txtが付いてしまうのでこうしています)(2025/3/10修正)。

ワークフローファイルをFinder等のファイルマネージャでComfyUIのウィンドウにドラッグアンドドロップして開いてください。

ワークフローに必要な、GGUFを扱うノード(UnetLoaderGGUFとDualCLIPLoaderGGUF)とHunyuanVideo用追加機能付きLoRA(HunyuanVideoLoraLoader)ノードとMP4形式で動画をエンコードできる動画ノード(VHS_VideoCombine)がインストールされていないので、エラーメッセージが表示されます。

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/db87ebb5-be31-4e3e-909e-55fb3bb90881.png)

右上のManagerを押してComfyUI-Managerを起動してください。

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/9c55fc54-2fd5-45ef-93d6-aab7bf208bf0.png)

中央上から2段目のInstall Mission Custom Nodesを押して必要な拡張をインストールします。

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/a86bd53b-2d47-48b6-a925-074fe177340e.png)

ComfyUI-GGUF、ComfyUI-VideoHelperSuite、ComfyUI-HunyuanVideoMultiLoraすべてインストールして、画面の指示に従いComfyUIを再起動してください。

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/96f30d3e-2a87-4252-aee6-8664b8819f17.png)

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/f8d02553-4918-4ec7-bdc5-662703c4c5a0.png)

実行ボタンを押してください。中央3段目のCLIP Text Encode (Positive Prompt)の文`This is a high quality realistic movie of a cat walking in bedroom.`に従い、一つ下のEmptyHunyuanLatentVideoの幅と高さと長さ（HunyuanVideoは24fps(24フレームで1秒))に従い、480x640サイズの1秒の猫が寝室で歩いている動画が生成されます。

![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/f009c836-d2fd-4e72-a746-9bb98c26b98d.png)

ファイルは画像と同様に`ComfyUI`フォルダの`output`フォルダに保存されます。

このサイズだと13分程度で生成されます(動画生成自体は8分ぐらいで終わるようですが、ターミナルのメッセージによると、macOSのMetal Performance Shader(mps)ではその後の処理がGPUではなくCPUで処理されるようなので、少し遅くなります)。

https://x.com/asfdrwe1/status/1898663791094845711

CLIP Text Encode (Positive Prompt)ノードでの文章やEmptyHunyuanLatentVideoノードで設定を変えれば、さまざまな動画が作成できると思います。

生成される動画の質に関して、このワークフローでは基本ステジューラノードで指定するステップ数を6にしています。ステップ数が大きいほど生成に時間がかかり、もともとのHunyuan Videoではステップ数は20〜30程度必要です。このワークフローは生成を高速化するFastVideo LoRAを適用しているのでステップ数が6でもそれなりの動画を生成できていますが、動画の質はやや劣ります。FastVideo LoRAを適用したままでもステップ数を増やせば動画の質が向上しますが、その分生成は遅くなります。ステップ数は必要に応じて適宜調整してください。

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/3c23b06b-90fd-4007-831a-7f0a78062d28.png)

また、Hunyuan Video用のLoRAを使用する際にはUnet Loader (GGUF)ノードとhyvideo_FastVideo_LoRA-fp8.safetensorsを指定しているHunyuan Video LoRA Loaderノードの間に、右クリックでノードを追加→ローダー→hunyuan→Hunyuan Video LoRA Loaderを押してHunyuan Video LoRA Loaderノードを追加するようにしてください。

[Hunyuan Video Multi LoRAの説明](https://github.com/facok/ComfyUI-HunyuanVideoMultiLora)によると、動作等の通常のLoRAでは`blocks_type`を`double_blocks`のみにした方がぼやけたり変なゴミが載ったりしないようになるようです。

下はプロンプト文章を`This is a high quality realistic movie of a cat walking in bedroom.`に変更し、[hunyuan_anime.safetensors LoRA](https://civitai.com/models/1255010/anime-style-for-hunyuan)を適用したワークフローと実際の動画例です。

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/3f14ec02-8e72-4675-9c6a-a9e510502f1f.png)

https://x.com/asfdrwe1/status/1898673579342045684

Hunyuan Video用のLoRAは[civitai](https://civitai.com/)などで探してください。LoRAを自作したい場合は[musubi-tuner](
https://github.com/kohya-ss/musubi-tuner/blob/main/README.ja.md)や[diffusion-pipe](https://github.com/tdrussell/diffusion-pipe)を使ってみてください。musubi-tunerでのキャラクタLoRAの作成の解説は[こちら](https://rentry.co/howtousemusubituner)、diffusion-pipeの日本語での使い方の解説は[こちら](https://www.free-ai.ltd/post/hunyuanvideo_lora)などがあります。なお、M4 Mac miniでmusubi-tunerやdiffusion-pipeが動くかは確認していません。

### 画像に基づく動画生成(I2V)
T2Vと同様に[公式のワークフロー](https://blog.comfy.org/p/hunyuan-image2video-day-1-support)を元に、GGUF形式モデルとFastVideoに対応したワークフローを作成しました。

[こちら](https://raw.githubusercontent.com/asfdrwe/misc/refs/heads/main/Hunyuan%20Video%20I2V%20Sample%2020250309.json)を右クリックしてリンク先のファイルを別名でダウンロードでファイル名はそのままでダウンロードフォルダにダウンロードしてください。

ワークフローファイルをComfyUIのウィンドウにドラッグアンドドロップして開いてください。

左下の『画像を読み込む』ノードのアップロードするファイルを選択するを押して`output`フォルダにある画像を選択してアップロードしてください。`ComfyUI`フォルダの`input`にアップロードされます。直接`input`フォルダに保存してブラウザを再読み込みしてファイルを選択してもOKです。

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/882900/d8cf78c2-a150-46db-a3a1-c6745617aa6f.png)

生成する動画への指示はT2Vと同じです。実行ボタンを押せば、指定した画像をベースにして、中央3段目のCLIP Text Encode (Positive Prompt)ノードの文章『`This is a high quality realistic movie of a cat walking in bedroom.`』と一つ下のEmptyHunyuanLatentVideoノードの幅と高さと長さに基づく480x640サイズの1秒の猫が寝室で歩いている動画が生成されます。生成時間はT2Vとほぼ同じです。

https://x.com/asfdrwe1/status/1898663831741841605

元にする画像を変え、CLIP Text Encode (Positive Prompt)ノードの文章を変更し、EmptyHunyuanLatentVideoノードの設定を変えれば、さまざまな動画が作成できると思います。Loraを使用する場合はT2Vと同様にUnet LoaderノードとFastVideoを指定しているLora Loaderノードの間にいれてください。なお、I2VでもT2V用のLoRAは基本的にそのまま使えます。