HunyuanvideoをComfyUIで確実に動かすDocker作った
runpodで動くように作っています。ので、原理上はVast.aiでも動くはずだしPaperspaceでも動くはずだし、当然ローカルでも動くはずです。とりあえずrunpod以外は未検証です。
さくっとrunpodなどで動かしたい場合
masamunet/comfyui-hunyuanvideo:latest
dockerhubからこのイメージをpullしてきて(runpodだとcontainer imageがこんなかんじ `docker.io/masamunet/comfyui-hunyuanvideo:latest` )、port 8888、8188をあければOK。ランタイムディスク容量は(runpod最小の)5GBもあればよくて、ユーザーディスク容量は50GBから余裕みたいなら70GBあればOKです(公式版使うかGGUF使うかkijai版使うかfastmode使うかなどによってかわる)。
ローカルのDocker環境で走らせたい
下のリポジトリをpullして、たぶん
docker compose up -d
でいけるはず。未検証です。そのうちてこ入れします。
自分でDockerイメージをビルドしたい
下のリポジトリをpullして、.env.exampleを参考に自分のDockerhubのリポジトリ名を環境変数に仕込んだ後
make build
でDockerイメージをビルドできます。makeで他に何が出来るかは直接makefile見てください。
注意していただきたいのが、Dockerの質問、runpodなどの実行環境に関する質問、ComfyUIに関する質問、いずれも答えられません、ということです。Hunyuanvideoの環境構築として役に立てば嬉しいです。
Hunyuanvideo抜きの純粋なComfyUI環境もDocker作っています。
CUDA12.4以降の環境でComfyUIを動かす必要があるため、ベースとなるコンテナイメージを作っています。ComfyUI-Managerとworkspace-managerをあらかじめインストールしています。先にも触れましたが原理上はNVIDIAのドライバーが最新ならローカルでDockerコンテナ立ち上げても動くはずです。
もうひとつ、ベースイメージで気をつけないといけないのがこちら。runtime版ではなくてdevel版を使わないとあとあとSageattention2.0のコンパイル時にnvccが無くて詰むということです。
現時点(2024/12/23)でComfyUIでHunyuanvideoを使うにはkijai版HunyuenavideoWrapperを使うか、ComfyUI公式ネイティブ対応を使うかのどちらかを選べます。私が把握している限り、それぞれのメリットデメリットは以下のようなものです。
kijai版
いち早くComfyUIに対応
BlockSwapを使うことで低VRAMでも動作する
80GiBのVRAMがあればFastmodeも使用可能(筆者未検証)
一方でGGUFモデルは使用できない
公式版
筆者の肌感としては、kijai版の登場が一歩早かったもののblockswapやSageAttension2.0のインストールの理解などが浸透せず公式のほうが使用者が増えている分、情報も公式の方が今後多くなりそうな気配です。今後LoRAなどが出てくることを考えれば公式サポートのほうが安心かもという印象があります。ただ私個人に限って言えばrunpodでクラウドGPUを借りて使っている以上、VRAM容量はあまり気にする必要がなく、公式よりはkijai版でblockswapで生成した方が圧倒的に速いのでkijai版をよく使っています。体感でも、私は実写系をよく作るのですがHunyuanvideoは無理目な指示を出すとアニメ系に切り替わる傾向があるっぽくて、それがGGUFのほうが早く来る印象があります。時間で借りてるGPUで生成するのでどうしても細かい検証が出来ず印象ばっかりになってしまいますが、肌感でkijai版のblockswapで運用した方が品質をこだわれそうな印象がしています。
Dockerfileを見れば、環境構築をどうやっているか一目瞭然なので、Hunyuanvideoを動作させる際の参考にぜひしてください。もちろんそのままDockerイメージを作成しても結構だと思います!
どのモデルをどこにダウンロードしたら良いかは、こちらが参考になるかと思います。
環境構築についてまとめると、kijai版でblockswapをしっかりきかせたいなら
nvccが入ってないとあとあとSageAttention2.0でblockswapしたいとき詰むので
このあたりを意識してください。kijai版を使う予定がなければネイティブでサポートされたので、ComfyUIをアップデートすれば動くようになるはずです。たぶん。