Andersonの視点

ハニーユーアンビデオLoRAモデルのトレーニングと使用方法

mm
Unite.AI を Google の優先ソースに追加
ChatGPT-4o: Variation on 'Create me an image 1792 x 1024. It should be in the style of Théodore Géricault, and should depict a dark medieval figure seated in front of a laptop, illuminated by the screen. We are facing the figure, and can only see the back of the laptop lid. Around the seated medieval figure are many other medieval men and women, curious as to what is happening on the computer screen'

この記事では、Windowsベースのソフトウェアをインストールして使用する方法を示します。このソフトウェアは、ハニーユーアンビデオLoRAモデルのトレーニングを可能にし、ユーザーがハニーユーアンビデオファウンデーションモデルでカスタムパーソナリティを生成できるようにします。

クリックして再生。 civit.aiコミュニティからの最近のセレブハニーユーアンLoRAの例です。

現在、ハニーユーアンLoRAモデルのローカル生成方法として最も人気のある2つは次のとおりです。

1) diffusion-pipe-ui Dockerベースのフレームワーク、これはWindows Subsystem for Linux (WSL)に依存して一部のプロセスを処理します。

2) Musubi Tuner、これは人気のあるKohya ss拡散トレーニングアーキテクチャへの新しい追加です。Musubi TunerはDockerに依存せず、WSLやその他のLinuxベースのプロキシを使用しませんが、Windowsで動作させるのが難しい場合があります。

したがって、この実行ではMusubi Tunerに焦点を当て、API駆動のWebサイトやRunpodなどの商用GPUレンタルプロセスを使用せずに、ハニーユーアンLoRAトレーニングと生成の完全にローカルなソリューションを提供します。

クリックして再生。 この記事のためにMusubi TunerでトレーニングしたLoRAのサンプルです。画像に写っている人物から、記事の目的でAI出力の画像を使用する許可を得ています。

要件

インストールには、少なくとも30+/40+シリーズのNVIDIAカードが搭載されたWindows 10 PCが必要です。このカードには少なくとも12GBのVRAMが必要です(ただし、16GBが推奨されます)。この記事で使用されたインストールは、64GBのシステムRAMと24GBのVRAMを持つNVIDIA 3090グラフィックカードを搭載したマシンでテストされました。インストールは、Windows 10 Professionalの新しいインストールでテストされ、600GB以上の空きディスク容量を持つパーティションにインストールされました。

警告

Musubi Tunerとその前提条件をインストールすることも、開発者向けのソフトウェアとパッケージを直接Windowsのメインインストールにインストールすることを意味します。ComfyUIのインストールを考慮すると、このプロジェクトでは約400〜500GBのディスク容量が必要になります。私は新しいテストベッドのWindows 10環境で何度かこの手順をテストしましたが、問題はありませんでした。しかし、私やunite.aiは、手順に従った場合のシステムへの損傷について責任を負いません。インストール手順を実行する前に、重要なデータをバックアップすることをお勧めします。

考慮事項

この方法はまだ有効ですか?

生成的なAIシーンは非常に速いペースで進化しています。今年中に、ハニーユーアンビデオLoRAフレームワークのより優れた、よりストリームライン化された方法が期待できます。

…または今週!この記事を書いている間に、Kohya/Musubiの開発者はmusubi-tuner-guiを制作しました。これは、Musubi Tuner用のGradio GUIです。

明らかに、ユーザーに優しいGUIは、この記事で使用するBATファイルよりも優れています。ただし、musubi-tuner-guiが動作するまでに時間がかかります。私が書いているとき、オンラインに上がったのは5日前で、誰も正常に使用したという報告は見つけることができません。

リポジトリの投稿によると、新しいGUIはできるだけ早くMusubi Tunerプロジェクトに統合される予定です。その結果、独自のGitHubリポジトリとしての存在は終了します。

現在、GUIはMusubiの仮想環境に直接クローンされます。ただし、多くの試行錯誤にもかかわらず、私はGUIを既存のMusubiインストールに関連付けることができません。つまり、GUIが実行されると、エンジンが見つからないということになります。

GUIがMusubi Tunerに統合されると、このような問題は解決されるでしょう。開発者は、新しいプロジェクトが「かなり粗い」ことを認めていますが、開発とMusubi Tunerへの直接統合に楽観的です。

これらの問題(デフォルトパスのインストール時設定や、UV Pythonパッケージの使用など)を考えると、スムーズなハニーユーアンビデオLoRAトレーニング体験を待つ必要があるかもしれません。ただし、約束はあります。

しかし、待てない場合は、少し腕を振るって、すぐにハニーユーアンビデオLoRAトレーニングをローカルで実行できます。

始めましょう。

なぜベアメタルに何かをインストールするのですか?

(上級ユーザーのみ)
上級ユーザーは、Windows 10のベアメタルインストールにソフトウェアをインストールすることを選択した理由を疑問に思うでしょう。理由は、WindowsのLinuxベースのTritonパッケージのエッセンシャルWindowsポートが、仮想環境で動作するのが非常に難しいからです。Musubiのチュートリアルの他のベアメタルインストールは、ローカルハードウェアと直接対話する必要があるため、仮想環境にインストールすることはできません。

前提条件パッケージとプログラムのインストール

最初にインストールする必要があるプログラムとパッケージのインストール順序は重要です。始めましょう。

1: Microsoft Redistributableのダウンロード

Microsoft Redistributableパッケージをhttps://aka.ms/vs/17/release/vc_redist.x64.exeからダウンロードしてインストールします。

これは、迅速で簡単なインストールです。

2: Visual Studio 2022のインストール

Microsoft Visual Studio 2022 Communityエディションをhttps://visualstudio.microsoft.com/downloads/?cid=learn-onpage-download-install-visual-studio-page-ctaからダウンロードします。

ダウンロードしたインストーラーを実行します。

すべての利用可能なパッケージを必要としません。これは重く長いインストールになります。初期のワークロードページが開いたら、デスクトップ開発with C++にチェックを入れます(下の画像を参照)。

次に、個別のコンポーネントタブの左上のインターフェイスで、検索ボックスを使用して「Windows SDK」を探します。

デフォルトでは、Windows 11 SDKのみがチェックされています。如果あなたがWindows 10(このインストール手順はWindows 11でテストされていません)を使用している場合は、最新のWindows 10バージョン(画像上のとおり)にチェックを入れます。

C++ CMakeと検索して、C++ CMakeツールfor Windowsがチェックされていることを確認します。

このインストールには少なくとも13 GBのスペースが必要です。

Visual Studioのインストールが完了すると、コンピューターで開きます。プログラムが完全に開くまで待ち、次にプログラムを閉じます。

3: Visual Studio 2019のインストール

Musubiの後続のパッケージのいくつかは、古いバージョンのMicrosoft Visual Studioを期待していますが、他のパッケージはより新しいバージョンを必要とします。

したがって、Microsoftから(https://visualstudio.microsoft.com/vs/older-downloads/ – アカウントが必要)またはTechspot(https://www.techspot.com/downloads/7241-visual-studio-2019.html)から、Visual Studio 2019 Communityエディションの無料バージョンもダウンロードします。

同じオプションでインストールします(上記の手順を参照、ただしVisual Studio 2019インストーラーではWindows SDKは既にチェックされています)。

インストールが完了し、インストールされたVisual Studio 2019アプリケーションを開いて閉じた後、Windowsコマンドプロンプト(スタート検索ボックスに「CMD」と入力)を開き、次のコマンドを入力してEnterキーを押します。

where cl

結果は、2つのインストールされたVisual Studioエディションの既知の場所になります。

代わりにINFO: Could not find files for the given pattern(s)が表示される場合は、以下の「パスの確認」セクションの手順に従って、Visual StudioパスをWindows環境に追加します。

「パスの確認」セクションの手順に従って変更を保存し、where clコマンドをもう一度実行します。

4: CUDA 11 + 12 Toolkitのインストール

Musubiにインストールされるパッケージのいくつかは、NVIDIA CUDA のさまざまなバージョンを必要とします。これは、NVIDIAグラフィックカードでのトレーニングを加速および最適化します。

Visual Studioのバージョンを最初にインストールした理由は、NVIDIA CUDAインストーラーが既存のVisual Studioインストールを検索し、統合するからです。

11シリーズのCUDAインストールパッケージをhttps://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local(「ローカルexe」)からダウンロードします。

12シリーズのCUDA Toolkitインストールパッケージをhttps://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64からダウンロードします。

インストールプロセスは、両方のインストーラーで同じです。Windows環境変数のパスに関する警告を無視します。後で手動で対処します。

NVIDIA CUDA Toolkit V11+のインストール

11シリーズのCUDA Toolkitインストーラーを起動します。

インストールオプションで、カスタム(詳細)を選択し、続行します。

NVIDIA GeForce Experienceオプションのチェックを外し、次へをクリックします。

インストールの場所の選択をデフォルトのままにします(これは重要です)。

次へをクリックしてインストールを完了させます。

Nsight Visual Studio統合に関するインストーラーの警告や注意を無視します。これは必要ありません。

NVIDIA CUDA Toolkit V12+のインストール

12シリーズのNVIDIA Toolkitインストーラーを使用して、同じプロセスを繰り返します。

このバージョンのインストールプロセスは、上記の11+バージョンと同じです(ただし、環境パスに関する警告が1つありますが、無視できます)。

12+ CUDAバージョンのインストールが完了したら、Windowsコマンドプロンプトで次のコマンドを入力してEnterキーを押します。

nvcc --version

これにより、インストールされたドライバーのバージョンに関する情報が表示されます。

カードが認識されていることを確認するには、次のコマンドを入力してEnterキーを押します。

nvidia-smi

5: GITのインストール

GITは、Musubiリポジトリをローカルマシンにインストールするために使用されます。GITインストーラーをhttps://git-scm.com/downloads/win(「64ビットGit for Windows Setup」)からダウンロードします。

インストーラーを実行します。

コンポーネントの選択では、デフォルトの設定を使用します。

Vimをデフォルトのエディターとして残します。

ブランチ名については、GITに決定させます。

パス環境については、推奨設定を使用します。

SSHについては、推奨設定を使用します。

HTTPSトランスポートバックエンドについては、推奨設定を使用します。

行末変換については、推奨設定を使用します。

Windowsのデフォルトコンソールをターミナルエミュレーターとして使用します。

Git Pullについては、デフォルトの設定(Fast-forwardまたはマージ)を使用します。

Credential Helperについては、Git-Credential Manager(デフォルトの設定)を使用します。

追加のオプションの構成では、ファイルシステムのキャッシングを有効にするにチェックを入れ、シンボリックリンクを有効にするにチェックを外します(除き、中央リポジトリ用のハードリンクを使用している上級ユーザーの場合)。

インストールを完了し、GITが正しくインストールされたことを確認するために、コマンドプロンプトウィンドウを開き、次のコマンドを入力してEnterキーを押します。

git --version

Githubログイン

後にGithubリポジトリをクローンするときに、Githubの資格情報を尋ねられる場合があります。事前にWindowsシステムの任意のブラウザでGithubアカウントにログインしておきます(必要に応じてアカウントを作成します)。この0Auth認証方法(ポップアップウィンドウ)で時間を節約できます。

初回のチャレンジ後は、自動的に認証されたままになります。

6: CMakeのインストール

CMake 3.21以降が必要です。CMakeは、さまざまなコンパイラをオーケストレーションし、ソースコードからソフトウェアをコンパイルできるクロスプラットフォーム開発アーキテクチャです。

https://cmake.org/download/(「Windows x64インストーラー」)からダウンロードします。

インストーラーを起動します。

CMakeをPATH環境変数に追加にチェックを入れます。

次へをクリックします。

コマンドプロンプトで次のコマンドを入力してEnterキーを押します。

cmake --version

CMakeが正常にインストールされた場合、次のようになります。

cmake version 3.31.4
CMake suite maintained and supported by Kitware (kitware.com/cmake).

7: Python 3.10のインストール

Pythonインタープリターは、このプロジェクトの中心です。3.10バージョン(Musubiパッケージのさまざまな要求の妥協点)をhttps://www.python.org/downloads/release/python-3100/(「64ビットインストーラー(Windows用)」)からダウンロードします。

ダウンロードしたインストーラーを実行し、デフォルトの設定を使用します。

インストールプロセスの最後に、パス長制限を無効にするをクリックします(管理者としてのUAC確認が必要)。

コマンドプロンプトで次のコマンドを入力してEnterキーを押します。

python --version

これにより、Python 3.10.0が表示されます。

パスの確認

Musubiフレームワークのクローニングとインストール、およびインストール後の正常な動作には、CUDAを含むWindowsの重要な外部コンポーネントへのパスが必要です。

したがって、パス環境を開いて、すべての前提条件がそこにあることを確認する必要があります。

Windows環境を迅速に取得する方法は、Windows検索バーに「システム環境変数の編集」を入力することです。

これをクリックすると、システムプロパティコントロールパネルが開きます。ここで、システムプロパティの右下にある環境変数ボタンをクリックすると、環境変数ウィンドウが開きます。ここで、システム変数パネルを下半分にスクロールし、パスをダブルクリックして、環境変数の編集ウィンドウを開きます。ここで、ウィンドウの幅を広げて、変数の完全なパスを表示します。

ここで重要なエントリは次のとおりです。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
C:\Program Files\Git\cmd
C:\Program Files\CMake\bin

ほとんどの場合、正しいパス変数はすでに存在します。

パスを追加するには、新規をクリックし、正しいパスを貼り付けます。

上記のパスをコピーして貼り付けることはできません。代わりに、自分のWindowsインストールでそれぞれのパスが存在することを確認します。

Visual Studioのインストール(特にx64フォルダ内のHost64フォルダ)でパスが若干異なる場合、上記のパスを使用して正しいターゲットフォルダを探し、それらのパスを環境変数の編集ウィンドウに貼り付けます。

これを行った後、コンピューターを再起動します。

Musubiのインストール

PIPのアップグレード

最新のPIPインストーラーを使用すると、インストールのいくつかの段階がスムーズになる可能性があります。管理者特権のあるWindowsコマンドプロンプト(「昇格」セクションを参照)で、次のコマンドを入力してEnterキーを押します。

pip install --upgrade pip

昇格

いくつかのコマンドでは、管理者特権が必要です(つまり、管理者として実行する必要があります)。エラーが発生して権限がない場合は、コマンドプロンプトウィンドウを閉じて、管理者モードで再度開きます。Windows検索ボックスに「CMD」と入力し、コマンドプロンプトを右クリックして、管理者として実行を選択します。

以降の段階では、Windowsコマンドプロンプトの代わりにWindows Powershellを使用します。これは、Windows検索ボックスに「Powershell」と入力して、必要に応じて右クリックして管理者として実行を選択することで見つけることができます。

Torchのインストール

Powershellで、次のコマンドを入力してEnterキーを押します。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

多くのパッケージがインストールされるのを待ちます。

インストールが完了したら、GPUを使用したPyTorchインストールを確認するために、次のコマンドを入力してEnterキーを押します。

python -c "import torch; print(torch.cuda.is_available())"

これにより、Trueが表示されます。

Windows用Tritonのインストール

次に、Windows用Tritonコンポーネントのインストールに進みます。昇格したPowershellで、1行に次のコマンドを入力してEnterキーを押します。

pip install https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post8/triton-3.1.0-cp310-cp310-win_amd64.whl

(このインストーラーtriton-3.1.0-cp310-cp310-win_amd64.whlは、64ビットアーキテクチャとPythonバージョンに合致する限り、IntelおよびAMD CPUでも動作します。)

実行後、次のようになります。

Successfully installed triton-3.1.0

Tritonが動作していることを確認するために、PythonでTritonをインポートします。

python -c "import triton; print('Triton is working')"

これにより、Triton is workingが表示されます。

GPUが有効になっていることを確認するには、次のコマンドを入力してEnterキーを押します。

python -c "import torch; print(torch.cuda.is_available())"

これにより、Trueが表示されます。

Musubiの仮想環境の作成

ここから先は、Python仮想環境(またはvenv)にさらにソフトウェアをインストールします。これにより、以降のソフトウェアをアンインストールするには、venvのインストールフォルダをごみ箱にドラッグするだけになります。

インストールフォルダを作成しましょう。デスクトップにMusubiという名前のフォルダを作成します。以降の例では、このフォルダが存在することを前提としています: C:\Users\[あなたのプロファイル名]\Desktop\Musubi\

Powershellで、次のコマンドを入力してEnterキーを押します。

cd C:\Users\[あなたのプロファイル名]\Desktop\Musubi

仮想環境に既にインストールしたものにアクセスしたいので、--system-site-packagesフラグを使用します。次のコマンドを入力してEnterキーを押します。

python -m venv --system-site-packages musubi

環境の作成を待ち、次に次のコマンドを入力してEnterキーを押してアクティブにします。

.\musubi\Scripts\activate

ここから先は、仮想環境がアクティブであることを示すために、すべてのプロンプトの先頭に(musubi)が表示されます。

リポジトリのクローン

新しく作成されたmusubiフォルダに移動します(これは、デスクトップのMusubiフォルダ内にあります)。

cd musubi

ここで、次のコマンドを入力してEnterキーを押します。

git clone https://github.com/kohya-ss/musubi-tuner.git

クローニングが完了するのを待ちます(長くはありません)。

要件のインストール

インストールフォルダに移動します。

cd musubi-tuner

次のコマンドを入力してEnterキーを押します。

pip install -r requirements.txt

多くのインストールが完了するのを待ちます(これには時間がかかります)。

ハニーユーアンビデオVenvへの自動アクセス

将来のセッションで仮想環境を簡単にアクティブ化およびアクセスできるようにするために、次のテキストをメモ帳に貼り付け、activate.batという名前で保存します(任意の名前でもかまいません)。

@echo off

call C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\Scripts\activate.bat

cd C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner

cmd

([あなたのプロファイル名]をあなたの実際のWindowsユーザープロファイル名に置き換えます。)

ファイルを保存する場所は重要ではありません。

以降、ダブルクリックするだけで作業を開始できます。

Musubi Tunerの使用

モデルのダウンロード

ハニーユーアンビデオLoRAトレーニングプロセスでは、すべての可能な事前キャッシュオプションとトレーニングをサポートするために、少なくとも7つのモデルをダウンロードする必要があります。これらのモデルは合計で60GB以上になります。

現在のダウンロード手順は、https://github.com/kohya-ss/musubi-tuner?tab=readme-ov-file#model-downloadにあります。

ただし、執筆時点でのダウンロード手順は次のとおりです。

clip_l.safetensorsllava_llama3_fp16.safetensorsllava_llama3_fp8_scaled.safetensorsは、https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/tree/main/split_files/text_encodersからダウンロードできます。

mp_rank_00_model_states.ptmp_rank_00_model_states_fp8.ptmp_rank_00_model_states_fp8_map.ptは、https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/transformersからダウンロードできます。

pytorch_model.ptは、https://huggingface.co/tencent/HunyuanVideo/tree/main/hunyuan-video-t2v-720p/vaeからダウンロードできます。

これらのモデルを好きなディレクトリに保存できますが、一貫性を保つために、C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\models\に保存します。

これは、以降のスクリプトで使用するディレクトリ構成と一致しています。[あなたのプロファイル名]をあなたの実際のWindowsプロファイルフォルダ名に置き換えます。

データセットの準備

コミュニティの論争を無視して、ハニーユーアンLoRAのトレーニングデータセットには、10〜100枚の写真が必要です。15枚の写真でさえも、写真がバランスが取れてかつ質が良ければ、非常に優れた結果が得られます。

ハニーユーアンLoRAは、画像または非常に短く低解像度のビデオクリップ、またはその両方でトレーニングできます。ただし、ビデオクリップをトレーニングデータとして使用することは、24GBのカードでも課題となる可能性があります。

しかし、ビデオクリップは、キャラクターが通常の動き方をしていない場合、またはハニーユーアンビデオファウンデーションモデルがそれを知らない場合、またはそれを推測できない場合にのみ、本当に役に立つ可能性があります。

例としては、ロジャーラビット、ゼノモルフ、ザ・マスク、スパイダーマン、または独自の特徴的な動きを持つ他のキャラクターが挙げられます。

ハニーユーアンビデオはすでに普通の男女の動き方を知っているので、人間タイプのキャラクターを得るにはビデオクリップは必要ありません。したがって、静的な画像を使用します。

画像の準備

バケットリスト

TLDRバージョン:

可能であれば、すべての画像が同じサイズであるか、2つの異なるサイズの50/50の分割(例: 10枚の512x768px画像と10枚の768x512px画像)を使用することが最もよいです。

トレーニングは、バケット化を使用して、Kohya-ss LoRAsと同様に、静的な生成システム(Stable Diffusionなど)で大きな画像を使用せずに、画像のワークロードをさまざまなサイズの画像に分散させることによって、トレーニング時にメモリ不足エラーを引き起こさないようにします(バケット化は、GPUが処理できるチャンクに画像を「切り分け」ますが、画像の意味の完全性を維持します)。

各画像サイズごとに、バケットまたは「サブタスク」が作成されます。したがって、画像の分布が次のようになっている場合、バケットの注意は不均衡になり、トレーニング時に一部の画像が他の画像よりも優先される可能性があります。

2x 512x768px画像
7x 768x512px画像
1x 1000x600px画像
3x 400x800px画像

バケットの注意が画像間で不均等に分割されていることがわかります。

したがって、画像サイズを1つに固定するか、異なるサイズの分布をできるだけ均等に保つことが重要です。

どちらの場合も、非常に大きな画像を避けることが重要です。これは、トレーニングを遅くし、ほとんど利点がない可能性があります。

私の場合は、すべての写真で512x768pxを使用しました。

免責事項: モデル(人物)は、画像をこの目的で使用するための完全な許可を与え、記事に含まれるAI出力画像の使用を承認しました。

私のデータセットは40枚の画像で構成されており、PNG形式(JPGでも可)で保存されています。画像はC:\Users\Martin\Desktop\DATASETS_HUNYUAN\examplewomanに保存されています。

トレーニング画像フォルダ内にキャッシュフォルダを作成します。

ここで、トレーニングを構成するための特別なファイルを作成します。

TOMLファイル

ハニーユーアンビデオLoRAsのトレーニングと事前キャッシュプロセスは、.toml拡張子を持つフラットテキストファイルからファイルパスを取得します。

私のTOMLファイルはC:\Users\Martin\Desktop\DATASETS_HUNYUAN\training.tomlにあります。

私のトレーニングTOMLの内容は次のとおりです。

[general]

resolution = [512, 768]

caption_extension = ".txt"

batch_size = 1

enable_bucket = true

bucket_no_upscale = false

[[datasets]]

image_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman"

cache_directory = "C:\\Users\\Martin\\Desktop\\DATASETS_HUNYUAN\\examplewoman\\cache"

num_repeats = 1

(バックスラッシュは必ずしも必要ではありませんが、パスにスペースがある場合はエラーを避けるために役立ちます。)

ここで、resolutionセクションでは、2つの解像度が考慮されることがわかります。512pxと768px。512pxのみに設定して、優れた結果を得ることもできます。

キャプション

ハニーユーアンビデオは、テキスト + ビジョンのファウンデーションモデルです。したがって、画像の記述的なキャプションが必要です。これらのキャプションはトレーニング中に考慮されます。トレーニングプロセスは、キャプションがなければ失敗します。

このタスクに使用できるオープンソースのキャプションシステムは多数ありますが、tagguiシステムを使用しましょう。tagguiはGithubに保存されていますが、PythonライブラリとストレートフォワードなGUIをロードするWindows実行可能ファイルの形式で提供されます。

Tagguiを起動し、ファイル > ディレクトリの読み込みを使用して、画像データセットに移動し、キャプションに追加するトークン識別子(この場合はexamplewoman)をオプションで指定します。

(Tagguiが最初に開いたときに、4ビットで読み込むをオフにします。キャプション付け中にエラーが発生する可能性があります。)

左側のプレビュー列で画像を選択し、CTRL+Aを押してすべての画像を選択します。次に、右側の自動キャプション開始ボタンを押します。

Tagguiが最初に実行された場合は、右側の小さなCLIでモデルをダウンロードしていることがわかります。そうでない場合は、キャプションのプレビューが表示されます。

ここで、各写真には、画像コンテンツの説明を含む対応する.txtキャプションがあります。

Tagguiの詳細オプションをクリックして、キャプションの長さとスタイルを増やすことができますが、それはこの実行の範囲外です。

Tagguiを終了し、次に進みましょう。

潜在的な事前キャッシュ

トレーニング時にGPUの負荷を過度に高めることを避けるために、2種類の事前キャッシュファイルを作成する必要があります。1つは画像自体から派生した潜在的な画像を表し、もう1つはキャプションの内容に関連するテキストエンコードを評価するものです。

これらの3つのプロセス(2つのキャッシュ + トレーニング)を簡素化するために、質問を尋ね、必要な情報を提供した後にプロセスを実行するインタラクティブな.BATファイルを使用できます。

潜在的な事前キャッシュの場合、次のテキストをメモ帳に貼り付け、.BATファイル(例: latent-precache.bat)として保存します。

@echo off

REM 仮想環境をアクティブ化

call C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\Scripts\activate.bat

REM ユーザー入力を取得

set /p IMAGE_PATH=画像ディレクトリのパスを入力してください:

set /p CACHE_PATH=キャッシュディレクトリのパスを入力してください:

set /p TOML_PATH=TOMLファイルのパスを入力してください:

echo あなたが入力した内容:

echo 画像パス: %IMAGE_PATH%

echo キャッシュパス: %CACHE_PATH%

echo TOMLファイルパス: %TOML_PATH%

set /p CONFIRM=潜在的な事前キャッシュを実行しますか? (y/n)

if /i "%CONFIRM%"=="y" (

REM 潜在的な事前キャッシュスクリプトを実行

python C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\cache_latents.py --dataset_config %TOML_PATH% --vae C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\models\pytorch_model.pt --vae_chunk_size 32 --vae_tiling

) else (

echo 操作がキャンセルされました。

)

REM ウィンドウをオープンしたままにする

pause

([あなたのプロファイル名]をあなたの実際のWindowsプロファイル名に置き換えます。)

ここで、.BATファイルを実行して自動的な潜在的な事前キャッシュを実行できます。

.BATファイルから質問が出てきたら、データセット、キャッシュフォルダ、TOMLファイルのパスを貼り付けまたは入力します。

テキストの事前キャッシュ

テキストの事前キャッシュ用に2番目の.BATファイルを作成します。

@echo off

REM 仮想環境をアクティブ化

call C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\Scripts\activate.bat

REM ユーザー入力を取得

set /p IMAGE_PATH=画像ディレクトリのパスを入力してください:

set /p CACHE_PATH=キャッシュディレクトリのパスを入力してください:

set /p TOML_PATH=TOMLファイルのパスを入力してください:

echo あなたが入力した内容:

echo 画像パス: %IMAGE_PATH%

echo キャッシュパス: %CACHE_PATH%

echo TOMLファイルパス: %TOML_PATH%

set /p CONFIRM=テキストエンコーダーの出力事前キャッシュを実行しますか? (y/n)

if /i "%CONFIRM%"=="y" (

REM Python実行可能ファイルを使用

python C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\cache_text_encoder_outputs.py --dataset_config %TOML_PATH% --text_encoder1 C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\models\llava_llama3_fp16.safetensors --text_encoder2 C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\models\clip_l.safetensors --batch_size 16

) else (

echo 操作がキャンセルされました。

)

REM ウィンドウをオープンしたままにする

pause

([あなたのプロファイル名]をあなたの実際のWindowsプロファイル名に置き換えます。)

これを任意の名前(例: text-cache.bat)で保存します。

.BATファイルを実行し、質問が出てきたら、データセット、キャッシュフォルダ、TOMLファイルのパスを貼り付けまたは入力します。

ハニーユーアンビデオLoRAのトレーニング

実際のLoRAのトレーニングには、2つの事前キャッシュプロセスよりもはるかに長い時間がかかります。

バッチサイズ、繰り返し、エポック、フルモデルまたは量化モデルを使用するかどうかなど、心配する変数はたくさんありますが、ここではそれらを省略し、LoRAのトレーニングを「中間」の設定で実行しましょう。

トレーニングを開始するための3番目の.BATファイルを作成します。次のテキストをメモ帳に貼り付け、.BATファイル(例: training.bat)として保存します。

@echo off

REM 仮想環境をアクティブ化

call C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\Scripts\activate.bat

REM ユーザー入力を取得

set /p DATASET_CONFIG=データセット構成ファイルのパスを入力してください:

set /p EPOCHS=トレーニングするエポック数を入力してください:

set /p OUTPUT_NAME=出力モデル名を入力してください (例: example0001):

set /p LEARNING_RATE=学習率を選択してください (1: 1e-3, 2: 5e-3, デフォルト: 1e-3):

if "%LEARNING_RATE%"=="1" set LR=1e-3

if "%LEARNING_RATE%"=="2" set LR=5e-3

if "%LEARNING_RATE%"=="" set LR=1e-3

set /p SAVE_STEPS=プレビュー画像を保存する頻度 (ステップ数) を入力してください:

set /p SAMPLE_PROMPTS=トレーニングプレビューのテキストプロンプトファイルの場所を入力してください:

echo あなたが入力した内容:

echo データセット構成ファイル: %DATASET_CONFIG%

echo エポック数: %EPOCHS%

echo 出力名: %OUTPUT_NAME%

echo 学習率: %LR%

echo プレビュー画像を保存する頻度: %SAVE_STEPS% ステップ

echo テキストプロンプトファイル: %SAMPLE_PROMPTS%

REM コマンドの準備

set CMD=accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ^

C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\hv_train_network.py ^

--dit C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\models\mp_rank_00_model_states.pt ^

--dataset_config %DATASET_CONFIG% ^

--sdpa ^

--mixed_precision bf16 ^

--fp8_base ^

--optimizer_type adamw8bit ^

--learning_rate %LR% ^

--gradient_checkpointing ^

--max_data_loader_n_workers 2 ^

--persistent_data_loader_workers ^

--network_module=networks.lora ^

--network_dim=32 ^

--timestep_sampling sigmoid ^

--discrete_flow_shift 1.0 ^

--max_train_epochs %EPOCHS% ^

--save_every_n_epochs=1 ^

--seed 42 ^

--output_dir "C:\Users\[あなたのプロファイル名]\Desktop\Musubi\Output Models" ^

--output_name %OUTPUT_NAME% ^

--vae C:/Users/[あなたのプロファイル名]/Desktop/Musubi/musubi/musubi-tuner/models/pytorch_model.pt ^

--vae_chunk_size 32 ^

--vae_spatial_tile_sample_min_size 128 ^

--text_encoder1 C:/Users/[あなたのプロファイル名]/Desktop/Musubi/musubi/musubi-tuner/models/llava_llama3_fp16.safetensors ^

--text_encoder2 C:/Users/[あなたのプロファイル名]/Desktop/Musubi/musubi/musubi-tuner/models/clip_l.safetensors ^

--sample_prompts %SAMPLE_PROMPTS% ^

--sample_every_n_steps %SAVE_STEPS% ^

--sample_at_first

echo 次のコマンドが実行されます:

echo %CMD%

set /p CONFIRM=トレーニングを実行しますか? (y/n)

if /i "%CONFIRM%"=="y" (

%CMD%

) else (

echo 操作がキャンセルされました。

)

REM ウィンドウをオープンしたままにする

cmd /k

([あなたのプロファイル名]をあなたの実際のWindowsプロファイル名に置き換えます。)

これを任意の名前(例: training.bat)で保存します。

ディレクトリC:\Users\[あなたのプロファイル名]\Desktop\Musubi\Output Models\が存在することを確認し、存在しない場合はその場所に作成します。

トレーニングプレビュー

Musubiトレーナーには、最近追加されたトレーニングプレビュー機能があります。これにより、トレーニングモデルを一時停止させ、保存したプロンプトに基づいて画像を生成できます。これらの画像は、トレーニングモデルが保存されているのと同じディレクトリ内のSampleという名前の自動的に作成されたフォルダに保存されます。

これを有効にするには、プロンプトを少なくとも1つ保存する必要があります。トレーニング.BATは、トレーニングプレビューのテキストファイルの場所を尋ねるので、プロンプトファイルに任意の名前を付けて、どこにでも保存できます。

ここに、ファイルに保存できるプロンプトの例が3つあります。

プロンプトの最後にフラグを追加して、画像を変更できます。

–wは(デフォルトは256px、ドキュメントを参照)です。
–hは高さ(デフォルトは256px)です。
–fはフレーム数です。1に設定すると画像が生成され、1より大きい値に設定するとビデオが生成されます。
–dはシードです。ランダムに設定すると、プロンプトが変化しますが、シードを設定すると、プロンプトが進化します。
–sは、デフォルトで20の、生成プロセスに適用されるステップ数です。

追加のフラグについては、公式ドキュメントを参照してください。

トレーニングプレビューは、問題をすぐに明らかにできる可能性がありますが、トレーニングを少し遅くする可能性があります。また、生成される画像の幅と高さが大きいと、トレーニングがさらに遅くなる可能性があります。

トレーニング.BATファイルを起動します。

質問 #1は「データセット構成ファイルのパスを入力してください」。TOMLファイルの正しいパスを貼り付けまたは入力します。

質問 #2は「エポック数を入力してください」。これは試行錯誤の変数です。画像とキャプションの質、他の要因などに依存します。最初は100に設定し、進捗状況を確認します。トレーニングが十分に進んだと感じたら、トレーニングウィンドウでCtrl+Cを押してトレーニングを停止できます。

質問 #3は「出力名を入力してください」。モデルに名前を付けます。名前を短く簡潔に保つことが最もよいです。

質問 #4は「学習率を選択してください」。これはデフォルトで1e-3(オプション1)に設定されます。これは開始点として適しています。

質問 #5は「プレビュー画像を保存する頻度 (ステップ数) を入力してください」。これを低く設定すると、プレビュー画像の保存間隔が短くなり、トレーニングがさらに遅くなる可能性があります。

質問 #6は「トレーニングプレビューのテキストプロンプトファイルの場所を入力してください」。プロンプトテキストファイルのパスを貼り付けまたは入力します。

.BATは、Hunyuanモデルに送信するコマンドを表示し、y/nで続行するかどうか尋ねます。

トレーニングを開始します。

この間、WindowsタスクマネージャーのパフォーマンスタブのGPUセクションを確認すると、プロセスが約16GBのVRAMを使用していることがわかります。

これは、かなりの数のNVIDIAグラフィックカードで利用可能なVRAMの量ではないかもしれません。上流のコードは、タスクを16GBに収めるために最適化されている可能性があります。

ただし、トレーニングコマンドにさらに贅沢なフラグを送信することで、この使用量を簡単に上げることができます。

トレーニング中、CMDウィンドウの右下に、トレーニング開始からの経過時間と、推定総トレーニング時間(フラグの設定、トレーニング画像の数、トレーニングプレビュー画像の数など、さまざまな要因によって大きく変化する)が表示されます。

典型的なトレーニング時間は、中央値の設定で約3〜4時間です。利用可能なハードウェア、画像の数、フラグの設定など、さまざまな要因によって異なります。

ハニーユーアンビデオでトレーニング済みLoRAモデルを使用する

チェックポイントの選択

トレーニングが完了すると、トレーニングの各エポックごとにモデルチェックポイントが作成されます。

この保存頻度は、トレーニング.BATファイルの--save_every_n_epochs [N]数字を変更することで、ユーザーがより頻繁またはまれに保存するように変更できます。保存頻度をステップあたりに低く設定した場合、保存されるチェックポイントファイルの数が多くなります。

どのチェックポイントを選択するか

前述のように、最初にトレーニングされたモデルは最も柔軟性が高く、後の方のチェックポイントでは詳細が最も優れています。どのチェックポイントが最も生産的で、柔軟性と忠実度のバランスが最も良いのかを判断する唯一の方法は、LoRAsを実行して、いくつかのビデオを生成することです。

ComfyUI

現在、ハニーユーアンビデオLoRAsを使用する最も人気のある環境は、ComfyUIです。これは、Webブラウザで実行されるGradioインターフェイスを備えたノードベースエディターです。

ソース: https://github.com/comfyanonymous/ComfyUI

ソース: https://github.com/comfyanonymous/ComfyUI

インストール手順は、公式のGithubリポジトリ(追加モデルをダウンロードする必要があります)で利用可能です。

ComfyUI用のモデル変換

トレーニング済みモデルは、ComfyUIのほとんどの実装と互換性のない(diffusers)形式で保存されます。MusubiはモデルをComfyUIと互換性のある形式に変換できます。ComfyUI用のモデル変換を実行する.BATファイルを設定しましょう。.BATを実行する前に、C:\Users\[あなたのプロファイル名]\Desktop\Musubi\CONVERTED\フォルダを作成します。このフォルダは、スクリプトで期待されています。

@echo off

REM 仮想環境をアクティブ化

call C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\Scripts\activate.bat

:START

REM ユーザー入力を取得

set /p INPUT_PATH=入力Musubi safetensorsファイルのパスを入力してください (または「exit」で終了します):

REM ユーザーが「exit」を入力した場合、終了

if /i "%INPUT_PATH%"=="exit" goto END

REM ファイル名を入力パスから抽出して「_converted」を追加

for %%F in ("%INPUT_PATH%") do set FILENAME=%%~nF

set OUTPUT_PATH=C:\Users\[あなたのプロファイル名]\Desktop\Musubi\Output Models\CONVERTED\%FILENAME%_converted.safetensors

set TARGET=other

echo あなたが入力した内容:

echo 入力ファイル: %INPUT_PATH%

echo 出力ファイル: %OUTPUT_PATH%

echo ターゲット形式: %TARGET%

set /p CONFIRM=変換を実行しますか? (y/n)

if /i "%CONFIRM%"=="y" (

REM 変換スクリプトを実行 (パスが正しく引用されていることを確認)

python C:\Users\[あなたのプロファイル名]\Desktop\Musubi\musubi\musubi-tuner\convert_lora.py --input "%INPUT_PATH%" --output "%OUTPUT_PATH%" --target %TARGET%

echo 変換が完了しました。

) else (

echo 操作がキャンセルされました。

)

REM 次のファイルに戻る

goto START

:END

REM ウィンドウをオープンしたままにする

echo スクリプトを終了しています。

pause

([あなたのプロファイル名]をあなたの実際のWindowsプロファイル名に置き換えます。)

これを任意の名前(例: convert.bat)で保存します。

ダブルクリックして新しい.BATファイルを実行し、変換するファイルのパスを尋ねられます。

トレーニングしたファイルのパスを貼り付けまたは入力し、yを入力してEnterキーを押します。

CONVERTEDフォルダに変換されたLoRAを保存した後、スクリプトは別のファイルを変換することを尋ねます。ComfyUIでテストするチェックポイントを複数選択する場合は、変換します。

変換が必要なチェックポイントをすべて変換した後、BATコマンドウィンドウを閉じます。

ComfyUIのC:\Users\[あなたのプロファイル名]\Desktop\ComfyUI\models\loras\フォルダに変換されたモデルをコピーします。

ComfyUIでハニーユーアンビデオLoRAsを作成する

ComfyUIのノードベースワークフローは最初は複雑に思えるかもしれませんが、他のユーザーの設定をComfyUIウィンドウに直接画像をドラッグしてロードすることで簡単に使用できます。ワークフローはJSONファイルとしてエクスポートでき、手動でインポートするか、ComfyUIウィンドウにドラッグできます。

いくつかのワークフローは、インストールされていない依存関係を持っている場合があります。したがって、ComfyUI-Managerをインストールして、不足しているモジュールを自動的に取得します。

ソース: https://github.com/ltdrdata/ComfyUI-Manager

ソース: https://github.com/ltdrdata/ComfyUI-Manager

このチュートリアルで使用するワークフローをロードするには、このJSONファイルをダウンロードし、ComfyUIウィンドウにドラッグします(ComfyUIコミュニティや自分のサイトでは、より優れたワークフローの例が利用可能ですが、こちらはその1つから派生しています)。

ComfyUIの使用方法については、ここでは詳細なチュートリアルを提供しませんが、上記のJSONレイアウトを使用する場合に、出力に影響を与える可能性のあるいくつかの重要なパラメーターについて触れておきます。

1) 幅と高さ

画像が大きいと、生成に時間がかかり、メモリ不足エラーのリスクが高くなります。

2) 長さ

これはフレーム数の数値です。何秒になるかは、フレームレート(このレイアウトでは30fpsに設定)によって決まります。秒をfpsに変換するには、Omnicalculatorを使用します。

3) バッチサイズ

バッチサイズを高く設定すると、結果が得られるまでに時間がかかる可能性がありますが、VRAMの負担も増えます。バッチサイズを高く設定しすぎると、メモリ不足エラーが発生する可能性があります。

4) 生成後の制御

これは、ランダムシードを制御します。サブノードのオプションは、固定インクリメントデクリメントランダム化です。固定のままにし、テキストプロンプトを変更しない場合は、毎回同じ画像が生成されます。テキストプロンプトを変更すると、画像はある程度変化します。インクリメントおよびデクリメントの設定では、近くのシード値を探索でき、ランダム化では完全に新しい解釈が得られます。

5) LoRA名

ここで、自分のインストールしたモデルを選択する必要があります。

6) トークン

モデルをトークンでトリガーするようにトレーニングした場合は、プロンプトにトークンを入力します(例: example-person)。

7) ステップ

これは、拡散プロセスに適用されるステップ数を表します。ステップ数を高く設定すると、詳細がより良くなる可能性がありますが、効果的なアプローチには上限があり、しばしばそのしきい値を見つけるのが難しいです。一般的なステップ数の範囲は約20〜30です。

8) タイルサイズ

これは、生成中に一度に処理される情報の量を定義します。デフォルトでは256に設定されています。タイルサイズを高く設定すると、生成が高速化される可能性がありますが、タイルサイズを高く設定しすぎると、特に長いプロセスの最後に、特に苛立たしいメモリ不足エラーが発生する可能性があります。

9) 時間的オーバーラップ

ハニーユーアンビデオの生成では、時間的オーバーラップを低く設定すると「ゴースト化」や、不自然な動きが発生する可能性があります。一般的には、フレーム数よりも時間的オーバーラップを高く設定することが推奨されます。

結論

ComfyUIの使用についてさらに詳しく調べることは、この記事の範囲を超えますが、RedditやDiscordのコミュニティでの経験や、オンラインガイドを通じて、学習曲線を容易にできます。

最初に公開された日: 2025年1月23日木曜日

機械学習のライターであり、ヒューマンイメージシンセシスのドメインスペシャリスト。Metaphysic.aiの研究コンテンツ責任者を務めていたが、DNEGのBrahma.aiへの統合により解散した。
Portfolio site: martinanderson.ai
Contact:martin@martinanderson.ai