メインコンテンツへスキップ
見出し画像

HunyuanVideoモデルのGGUF化とComfyUI-multiGPUの効果を実感!

    先日、ComfyUI-multiGPUの記事を書いたと同時にDRAMの発注をした者です。
    その後、GJLさんの記事に上限があるとの記載もあり若干がっかりはしましたが後悔はしてません。

    ComfyUI-multiGPUの凄いところを一つ上げておきます

    コスパが圧倒的


    GPUのVRAM
    12GBから16GBに上げる場合、5000台だと5070から5080に相当しますが9万ぐらいの差があります。5090と5080だと16GBの差で20万です。
    これを1GBに換算すると前者は2.25万/GB、1.25万/GBです。
    システムメモリのDRAM
    64GBが5万くらいで買えました。特売とかだともっと安く2-3万くらいのものもあるらしいです。元々が32GBだとすると、32GB増えたということです。
    5万としても、0.15万/GBになります。
    性能の差とがありますが、モデルが使えるかどうかというポイントからするとコスパの差が圧倒的です。

    NvidiaにAI分野で負け続けていたintelもこのあたりで反撃してくるのでしょうか?

    さて、このComfyUI-multiGPUの記事を書いた頃に、オリジナルのHunyuanVideoのsafetensorモデルをBF16のGGUFに変換するスクリプトを作成していました。ただ、BF16のGGUFモデルは25GBくらいはあるので、手持ちのDRAM不足で試せていなかったのですが、ようやく日の目を見ることになりました。が・・・さきほどやったらうまくいっていませんでした。。。

    ちょうど、GJLさんが、改良版のskyreelのGGUF化を試みた記事を出されており、同じような状況を報告されていました。
    おそらく、以下のcity96さんのスクリプトが公開されたので、その部分も含めてアップデートされた記事になっていると思います。

    画像
    activityを見たら出ていた

    この内容見るためには、現在はmainからブランチに切り替える必要があります。以下がリンクです。このスクリプトも今後改善していくとのことでした。

    しかし、この方の画像生成AI業界への貢献度は本当にすごいですね!

    という事で、使い方はGJLさんの記事に細かい所は解説いただく感じと思ったら、現時点では最初のコンバートに思いのほか手間がかかったので手順を

    私の方は、デフォルトのHunyuanVideoのsafetensorsモデルの変換です。
    以下のモデルの変換をしてみました。

    <HunyuanVideoのsafetensorsモデルのGGUF化手順>

    <元モデル>
    split_files/diffusion_models/hunyuan_video_t2v_720p_bf16.safetensors · Comfy-Org/HunyuanVideo_repackaged at main

    現時点でアップデートされたスクリプトは以下(2025/2/20時点)
    ※hunyuanvideo用に修正がconvert.pyに加えられています。
    私がダウウンロードした際はHunyuanVideoのキーがうまく認識されなくてそこで時間がかかりました。。。
    ※fix_5d_tensorsは相対パスで行う修正が加えられています。

    こんな感じに配置します。相対パスにするために同じフォルダ配置。

    画像

    以下が起動.batの中身です。

    @echo off
    REM Pythonスクリプトを実行するバッチファイル
    REM スクリプトが同じフォルダ内にあることを前提としています
    
    REM バッチファイルのディレクトリを取得
    set "current_dir=%~dp0"
    
    REM 実行
    python "%current_dir%convert.py" ^
      --src "%current_dir%hunyuan_video_t2v_720p_bf16.safetensors" ^
      --dst "%current_dir%hunyuan_video.gguf"
    
    echo.
    echo 変換が完了しました。Enterキーを押して終了します。
    pause
    

    これで、以下の2つのファイルが作成されます。

    画像
    新しく、fix_5d_tensors_hyvid.ptがある

    llama.cpp側の処理。パッチが新しくなっているので、それを改めて適応させる必要があります。

    llama.cppディレクトリで以下のコマンドを一つずつ行います

    git checkout tags/b3962
    git apply ..\lcpp.patch
    mkdir build
    cd build
    cmake ..
    cmake --build . --config Debug -j10 --target llama-quantize
    cd ..
    cd ..

    これでコンパイル後に以下のような感じで量子化のbatファイルを起動します。

    @echo off
    REM カレントディレクトリに移動
    cd /d %~dp0
    
    REM llama-quantize.exeの実行
    llama.cpp\build\bin\Debug\llama-quantize.exe hunyuan_video.gguf hunyuan_video-Q4_K_S.gguf Q4_K_M
    
    REM 実行結果を表示し、終了する前に待機
    pause

    久しぶりに量子化を行ったのですが、PCへの負荷はそこそこある印象で時間が結構かかりました。。。。

    この時点で、5Dテンソルの情報はまだ欠落していますので終わりではありません。FLUXでは終わりでしたが。。。

    以下の感じのbatファイルで、fix_5d_tensors.pyを起動します。

    @echo off
    
    REM スクリプトのあるディレクトリへ移動
    set SCRIPT_DIR=%~dp0
    cd /d %SCRIPT_DIR%
    
    echo "Running fix_5d_tensors.py with relative paths..."
    python fix_5d_tensors.py
    
    echo.
    echo "Fix 5D done. Press any key to exit..."
    pause
    

    この処理の後、実際に生成をしましたが「ComfyUI-multiGPU」で問題なく生成されました!!!

    残念ながらSkyReelsでは試していませんが、KijaiさんのHuggingfaceのサイトでGGUF化したモデルが公開されていました。

    Kijai/SkyReels-V1-Hunyuan_comfy at main

    個人でGGUF化できるようになったので、LoraマージモデルもGGUF化が簡単になったということすね。
    今後のHunyunaVideoの発展が期待されます。


     
     
    Stablediffusionで、Ai画像を作成するのを趣味にしています。ComfyUI、paperspace絡みの記事などを興味のある範囲で作成しています。

    あなたへのおすすめ