見出し画像

How to convert safetensors to GGUF on Windows & Uploaded a new json of Hunyuan Video i2v


About flux tools

従来、Flux1.dev形式のfp16.safetensorsをGGUF化するに際しては、
(尤も、私はfp16をそのまま使う事が多かったので、テスト以外では余り使用する機会はなかったのですが)
以下記事で、きまま / Easygoingさんが紹介くださっているEasyForgeというForge互換WebUIに、付属ツールとして含まれているFlux Toolsというプログラムを使用してきましたが、

(具体的な使用方法は以下で解説)

この度、Funyuan Videoのチューニング形式らしいSkyReels-V1のGGUF形式を使用する必要が生じ、上記Flux Toolsでは当然対応できない為、新しく実行プログラムを作成することになりました。

llama.cpp

そこで、まず最初に、この方面の技術に関してはフォロー必須と言ってもいいshiba*2さんの以下記事をベースに、まずWindowsベースで動作するllama-cpp環境の構築から始めました。

まず下図のように、任意のフォルダにパスを通した状態で、git cloneによるダウンロードを実行します。

git clone https://github.com/ggerganov/llama.cpp

次に下図のように、作成されたフォルダ内に仮想環境を作成して、アクティベートを行います。

cd llama.cpp
python.exe -m venv venv
venv\scripts\activate

次に下図のように、以下を実行します。

pip install -e ./gguf-py

次に下図のように、pipの更新も行っておきましょう。

python.exe -m pip install --upgrade pip

次に下図のように、torchとsafetensorsのインストールを行います。

これに関しては、CUDA用でなくても高速に動作するので、サイズを食うCUDA用ではなくCPU動作用をインストールしています。

pip install torch safetensors

次に、以下からCMakeのWindows用インストーラーをダウンロードして、インストールしてください。

次に、再びshiba*2さんの以下記事にアクセスし、以下記事内で公開して下さっている3つのファイルの内、convert.pyとlcpp.patchの2つをダウンロードして、ここまで作成したllama.cppフォルダの直下に保存してください。

次に下の2つのファイルをダウンロードして、同フォルダに保存してください。上記事で、shiba*2さんさんが公開されているfix_5d_tensors.pyを元に、パス指定の部分等に対して、私がマイナーチェンジを施し、それを前提にしてconvert処理をかける為のバッチファイルになります。

次に、再度shiba*2さんの以下記事にアクセスし、記載されている通りに、ComfyUIのLoad Diffusion ModelノードとSaveModelノードを活用して、SkyReelsのbf16.safetensorsファイルの再保存を行ってください。尚、再保存されたファイルはoutputフォルダの方に出力されます。

次に、上記事の通りComfyUI上で「SaveModels」ノードを介して保存し直したSkyReelsのsafetensorsファイルを、下図のようにllama.cppフォルダに保存し、名前を「base.safetensors」に変更してください。

同フォルダ内にあるstart.batファイルを実行すると、下図のように変換が開始されます。ここで解説する手法ではBF16形式へ変換する為、サイズ的にはほとんど圧縮されません。以下記事に記載しているMultiGPUノードを使用すれば、専用VRAM消費量が常時12GBを下回る為、最も質が高いBF16形式で作成します。
(MultiGPUノードはGGUF形式に対してのみ対応している為、例え圧縮せずとも、safetensors形式を量子化すること自体に意味がある)

この処理が完了すると、下図のように「base.gguf」と「base2.gguf」という2つのファイルが作成されます。bf16形式のファイルを2つ作成する為、ストレージサイズは50GB以上が必要です。

使用するのは「base2.gguf」ファイルなので、「base.gguf」ファイルと、同時に作成されたfix_5d_tensors_hyvid.pyファイルは削除し、base2.ggufファイルはファイル名を任意の名前に変更してください。

2nd i2v on hunyuan video

以前予告しておいた、Hunyuan Videoのi2v jsonの新型を公開しました。1st jsonよりもはるかに動きは作ることが出来ます。また、1st jsonも若干手直しをしています。


いいなと思ったら応援しよう!