独自カスタマイズ導入中のため更新毎に動作が変わる場合があります。

minimax H3用のLoRAをさくっと画像1枚だけで作成してみた。使うのはMusubi Tuner(VRAM16GB~)

minimax-H3モデル用のLoRAを、画像1枚だけで簡単につくれたので、その手順だけ残しておきます。使うのは、現時点でMusubi Tunerのはdev(開発版)です。正式版に組み込まれるまでは、Dev版を使う必要あり。

目次

前提の環境

OSは日本語版Windows 10 / 11(64bit)環境を前提とした記事です。

Musubi Tunerとは、Qwen-ImageやminimaxH3、Krea2、FramePack、Wanなどの生成AIモデル向けLoRA学習ツール。

今回は、Musubi Tunerのdev版(#1057)に追加された「One-Frame T2VA Image LoRA」を使って、1枚(1枚以上)の画像から、LORAを作ります。(#1058で追加されたOne-Frame FL2VA編集LoRAは別記事で紹介予定。)

「One-Frame T2VA Image LoRA」とは、1枚以上の静止画像を使い、そのまま1フレームの学習対象としてLoRAを作成する機能です。(T2VA / FL2VA対応。一応R2Vでも使えます。主に人物LORA向け)

用意する画像は1枚だけでもOK。1枚以上用意しても良いです。
学習に使う画像サイズは幅X高さ(1024X1024)推奨ですが、
汚い(特徴が潰れていない)、ドアップ過ぎない画像であれば問題ありません。上半身画像でもよい。
サイズが1024X1024未満を無理に画像サイズを合わせて変形させないようにしてください。
可能であれば高さ、幅ともに32の倍数に合わせるのがコツです。

LORA作成に必要なハード構成は、
GPU(NVIDIA)VRAM16GB以上、PCメモリ64GB以上

前提:git、uvなどの基本的な環境が揃っていること。
・Python 3.12.xを使用すること
・CUDA対応のNVIDIA GPUと、対応するNVIDIAドライバーが導入されていること。CUDA Toolkit 13.2の事前インストールは不要です。

必要なモデルの配置先とDL場所

モデルファイルの配布先リンク表示させています。必要に応じてダウンロードしてください。

自動キャプション生成モデルは、qwen_2.5_vl_7b.safetensors を使用しました。
配置先は、
<あなたのMusubi Tunerインストールパス>\models\text_encoders\qwen_2.5_vl_7b.safetensors

H3 One-Frame LoRA学習本体では、以下のモデルを使いました。

minimax_h3_fl2va_pruned_int8_convrot.safetensors (21GB)
qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors (15.7GB)
minimax_h3_video_vae_fp16.safetensors (5.21GB)
minimax_h3_audio_vae_fp32.safetensors (605MB)

それぞれの配置先は、

minimax_h3_fl2va_pruned_int8_convrot.safetensors は、
<あなたのMusubi Tunerインストールパス>\models\diffusion_models\

qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors は、
<あなたのMusubi Tunerインストールパス>\models\text_encoders\

minimax_h3_video_vae_fp16.safetensors、minimax_h3_audio_vae_fp32.safetensors は、
<あなたのMusubi Tunerインストールパス>\models\vae\

全容量は大きいですが、工程を複数に分けて行うので、実際に必要なVRAMは16GBあれば、時間はかかりますが作成できました。VRAMはあればあるほど余裕ができ、早く終わります。

今回は分かりやすく、modelsの配置位置はMusubi Tuner上としていますが、
ComfyUI上でmodelsをまとめて管理している場合は、LoRA関連の各コマンドでComfyUI上のmodelsのフルパスを指定すれば、そのまま使用できます。


STEP

 開発バージョンを導入しよう(最新の開発版dev導入済ならSTEP2へ)

私の環境を例・導入先として:E:\ai\lora_tuku\ に
musubi-tuner-h3-oneframe という名前で、musubi-tunerを入れる前提で説明していきます。

すでに稼働中musubiへの導入はお勧めしません。なぜならこれはまだdev版だからです。おすすめは新規で導入です。一応、既存環境へ導入したいバージョンも用意しました。

その1 新規でMusubi Tuner開発版(dev)を導入する方法

新規で導入したいフォルダ(E:\ai\lora_tuku\)をエクスプローラーなどで開く、右メニューから、
powershell を起動。(管理者権限は付けない)

cd E:\ai\lora_tuku

git clone --branch dev --single-branch https://github.com/kohya-ss/musubi-tuner.git musubi-tuner-h3-oneframe

cd E:\ai\lora_tuku\musubi-tuner-h3-oneframe

これで、開発版の最新dev(開発版)が入ります。


今回はCUDA 13.2対応版のPyTorchを使用するため、
以下のコマンドを(Musubi Tunerのプロジェクト直下で)実行すると、
uv が自動で仮想環境に必要依存関係をインストールしてくれます。(CUDA 13.2対応版のPyTorch環境を作る。Musubiの .venv に CUDA 13.2対応版のPyTorchと、その実行に必要なCUDAランタイム類が入ります。)

uv sync --extra cu132

続いて、実際に入ったPyTorchのバージョンを確認します。
powershellコマンドにて、以下を実行。

& ".\.venv\Scripts\python.exe" -c "import torch; print(torch.__version__); print(torch.version.cuda)"

PyTorch 2.7系 なら、Windows用Tritonは3.3です。PyTorch 2.8系 なら、Windows用Tritonは3.4です。
PyTorch 2.9系 なら、Windows用Tritonは3.5です。PyTorch 2.10/11系 なら、Windows用Tritonは3.6です。
PyTorch 2.12/13系 なら、Windows用Tritonは3.7です。
あなたの環境で対応する、Windows用Triton番号(3.7等)は、メモに控えておいてください。

例:PyTorch 2.13系 なら、
Windows用Tritonは3.7系ですので、以下のコマンドから、高速化のためのtriton-windowsを導入します。

uv pip install --python ".\.venv\Scripts\python.exe" "triton-windows>=3.7,<3.8"

次のSTEPへ

その2 既存のインストール済のMusubi Tunerを、DEV版に更新する場合

エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(以下のE:\から始まる絶対パスは、あなたの環境に合わせた絶対パスを書いてください。)

cd E:\ai\lora_tuku\musubi-tuner-h3-oneframe

git status
git branch --show-current
git fetch origin
git switch -c dev --track origin/dev

これで、devの最新版に置き換わっています。
このままだと実行に必要な依存関係ファイルが入っておらず起動しませんので、
次に、CUDA 13.2対応版のPyTorchに更新するため、続けて以下を実行します。
以下のコマンドを(Musubi Tunerのプロジェクト直下で)実行すると、uv が自動で仮想環境に必要依存関係をインストールしてくれます。(CUDA 13.2対応版のPyTorch環境を作る。Musubiの .venv に CUDA 13.2対応版のPyTorchと、その実行に必要なCUDAランタイム類が入ります。)

uv sync --inexact --extra cu132

新規インストールとは違い、–inexact を付けてください。--inexact を付けることで、uvの管理外で追加インストールしたパッケージを可能な限り維持します。

既存環境をdev+cu132へ変更した後は、powershellコマンドで、
以下のコマンドで現在の環境を確認してください。

& ".\.venv\Scripts\python.exe" -c "import torch; print(torch.__version__); print(torch.version.cuda)"

2.13.x+cu132
13.2
のように書き換えられているはずです。

uv sync --inexact --extra cu132 実行後は、PyTorchのバージョンを確認し、既存の triton-windows が対応バージョンか確認してください。既存Tritonを維持するための --inexact により、PyTorch更新後にバージョン不一致が残る場合があります。

以下のpowershellコマンドで不一致かどうか確認します。

& ".\.venv\Scripts\python.exe" -c "import torch; print(torch.__version__); print(torch.version.cuda)"
& ".\.venv\Scripts\python.exe" -c "import triton; print(triton.__version__)"

PyTorchが 2.13系 なら、Tritonは 3.7系 に合わせます。

uv pip install --python ".\.venv\Scripts\python.exe" --upgrade "triton-windows>=3.7,<3.8"

最後に以下のコマンドで、現在のMusubi Tuner導入バージョン#1064 等の数値が確認できると思います。devがついていれば成功です。

git branch --show-current
git log -1 --oneline

次のSTEPへ

STEP

 データセット(dataset)画像を1枚以上用意しよう。

私の環境では、musubi-tuner を
E:\ai\lora_tuku\musubi-tuner-h3-oneframe に配置しています。

本来であれば分かりやすく、そのフォルダ上にdatasetフォルダを作るべきなんですが、
本体の更新頻度が高いため、本体とは分離して
E:\ai\lora_tuku\ 上に、datasetフォルダを作り、必要な学習用画像を配置しています。

Musubi Tuner本体:
E:\ai\lora_tuku\musubi-tuner-h3-oneframe\

学習データ:
E:\ai\lora_tuku\dataset\
├─ images\
├─ cache\
└─ output\

dataset フォルダには、画像を入れるimagesフォルダ、キャッシュを保存するcacheフォルダ、完成したLORAファイルを保存するためのoutputフォルダを手動作成します。

基本的に同名で作成したファイルは上書き保存しますので、LORA完成時には、
output新規フォルダに新規フォルダを作るなどして、上書き保存されないようにしてください。

推奨画像サイズとファイル名

画像形式は「PNG」形式推奨。
ファイル名は何でもいいのですが、ファイル名に空白・日本語(2バイト文字)・特殊記号を入れないように注意してください。半角英数字+_や-の組み合わせのシンプルなファイルが良いです。(例: test01.png)

自動キャプションは、次のSETP3で自動作成し、
今回のH3 One-Frame用LORA向けのテンプレ形式に手動で整えます。

STEP

 自動キャプション機能を使う。H3のLORA用テンプレに合わせて仕上げる

SETP2のフォルダ構成で、 画像を E:\ai\lora_tuku\dataset\images へ置いたとします。
エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(以下のE:\から始まる絶対パスは、あなたの環境に合わせた絶対パスを書いてください。)

cd E:\ai\lora_tuku\musubi-tuner-h3-oneframe

& ".\.venv\Scripts\python.exe" ".\caption_images_by_qwen_vl.py" `
  --image_dir "E:\ai\lora_tuku\dataset\images" `
  --model_path "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\text_encoders\qwen_2.5_vl_7b.safetensors" `
  --output_format text

image_dir は、学習したい画像が入っているフォルダをドライブ名を含んだフルパス(絶対パス)を書く。
model_path はテキストエンコーダのモデルが配置されているドライブ名を含んだフルパス(絶対パス)を書く。モデルの配置位置は、任意なのでComfyUI上んもモデル位置を指定して、容量削減を図っても大丈夫です。

実行すると、画像と同名のtxtファイルが作成されます。そのままだと、呼び出し用のトリガーキーと、静止画で無音である記述がないので、以下のテンプレに合わせて手動で修正する必要があります。

integrated_multimodal_description:
 [Shot 1] トリガーキーワードを入れる,ここに自動生成captionをいれる. This is a static still image.
overall_soundscape: Complete silence.
non_diegetic_music: N/A.

上記の
トリガーキーワードを入れる
任意記入です。空白でも問題ありませんが、呼び出し使う専用キーワードを入れると高頻度で出やすくなります。このトリガーキーワードに全て(背景・構図含め、あらゆる全て)を集約したい場合は、ここに自動生成captionをいれる(プロンプト文)部分の記入は不要です。(空欄で良い)

ここに自動生成captionをいれる
通常はここに、自動作成されたキャプションをそのまま入れます。画像と内容を一致しているかを確認。不一致な表現や、誤認識された単語は削除します。(画像に表示されていない部分は書かないこと)

もし、メモリ不足エラーが出る場合には、wen_2.5_vl_7b.safetensors--fp8_vl を付けて実行してください。

--model_path "...\qwen_2.5_vl_7b.safetensors" `
--fp8_vl
cd E:\ai\lora_tuku\musubi-tuner-h3-oneframe

& ".\.venv\Scripts\python.exe" ".\caption_images_by_qwen_vl.py" `
  --image_dir "E:\ai\lora_tuku\dataset\images" `
  --model_path "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\text_encoders\qwen_2.5_vl_7b.safetensors" `
  --fp8_vl `
  --output_format text

STEP

 images.toml を用意する。

SETP3で、キャプションファイルが用意できたら、
各cacheファイルを作るための基本設定ファイルを用意します。

インストールした、musubi-tuner-h3-oneframe(あなたのmusubi-tuner)ではなく、
E:\ai\lora_tuku\dataset\images(あなたの学習画像フォルダ) に

images.toml というテキストファイルを配置します。
画像データセット全体に適用される基本設定ファイルになります。

ファイルの中身は

[general]
resolution = [1024, 1024]
batch_size = 1
enable_bucket = true
bucket_no_upscale = false

[[datasets]]
image_directory = "E:/ai/lora_tuku/dataset/images"
cache_directory = "E:/ai/lora_tuku/dataset/cache"
caption_extension = ".txt"

resolution :基本解像度(画像サイズ)です。学習画像サイズが1024サイズ未満でもこのままでOK
VRAM12GB環境であれば、768x768としてください。(画像枚数が多い場合は、640x640)

batch_size = 1 基本1です。1回の学習で使用される画像枚数。
enable_bucket = true 元画像のアスペクト比は維持され、異なるサイズでも変形を防ぎます。
bucket_no_upscale = false 必要に応じて画像拡大を許可する。falseで拡大許可。trueで拡大禁止。
上記の二重カッコは消さないでください。データ設定の配列を表しています。消すと構文認識されない恐れがあります。

以下は、
あなたの環境に合わせて、フルパス(絶対パス)で、フォルダ名までを書いてください。

caption_extension = “.txt”は、キャプションの拡張子を指定します。

image_directory = “E:/ai/lora_tuku/dataset/images”
cache_directory = “E:/ai/lora_tuku/dataset/cache”
caption_extension = “.txt”

忘れずに保存。

STEP

動作時にtriton-windowsエラーが出た時は!高速化を導入

triton未導入の際のメッセージ毎の対処方法です。

triton not found と出た場合!

あなたの環境に triton-windowsが見つからなかったというエラーです。
あなたのインストール済のmusubi-tuner、 .venv に triton-windows を入れます。

あなたの環境 PyTorch 2.13 系であれば、Triton 3.7 が対応しています。

エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(詳しくはSTEP1の新規インストール項目のtriton-windows一覧参照)

& ".\.venv\Scripts\python.exe" -m pip install -U "triton-windows<3.8"

triton-windowsを入れる際にNo module named pipと出た場合

あなたの.venv仮想環境に pipが見つからなかったというエラーです。
あなたのインストール済のmusubi-tuner、uv で直接 triton-windows を入れます。
推奨環境 PyTorch 2.13 系であれば、Triton 3.7 が対応していますので、エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。

uv pip install --python ".\.venv\Scripts\python.exe" "triton-windows>=3.7,<3.8"

インストール後、

& ".\.venv\Scripts\python.exe" -c "import triton; print(triton.__version__)"

にて、3.7.x が表示されれば導入OKです。

STEP

cacheファイル作成A(Latent Cache)

musubi-tuner-h3-oneframe(あなたがインストールしたmusubi-tuner)にて、
キャッシュA、キャッシュBを作る必要があります。その後に本番LORAを作ります。
キャッシュは各5分程度。本番は30分ほどで作れます。(本番は多めSTEPで60分)

キャッシュAを作る(画像を変更・追加したら再度実行、未変更時は次STEPへ)
****画像を入替えした場合は、minimax_h3_cache_latents.py を –skip_existing なしで再実行

エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(以下のE:\から始まる絶対パスは、あなたの環境に合わせた絶対パスを書いてください。)

& ".\.venv\Scripts\python.exe" ".\minimax_h3_cache_latents.py" `
  --dataset_config "E:\ai\lora_tuku\dataset\images\images.toml" `
  --task t2va `
  --one_frame `
  --video_vae "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\vae\minimax_h3_video_vae_fp16.safetensors" `
  --audio_vae "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\vae\minimax_h3_audio_vae_fp32.safetensors" `
  --cache_seed 42 `
  --skip_existing

上記実行で、cacheフォルダに、1フレームのVideo latent、無音Audio latent、target indexが保存されます。

dataset_config:ここにSTEP4で作成したimages.tomlファイルのフルパス(絶対パス)を指定し、読み込ませます。

実行時、メモリ不足エラーとなる場合は、images.toml設定値の
resolution = [768, 768]や[640,640]で、学習解像度サイズを調整してください。

STEP

cacheファイル作成B(Text Encoder Cache)

キャプションを新規作成・変更した場合に実行します。
(必ず、Latent Cacheの次にText Encoder Cacheを作ります)

エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(以下のE:\から始まる絶対パスは、あなたの環境に合わせた絶対パスを書いてください。)

& ".\.venv\Scripts\python.exe" ".\minimax_h3_cache_text_encoder_outputs.py" `
  --dataset_config "E:\ai\lora_tuku\dataset\images\images.toml" `
  --task t2va `
  --one_frame `
  --text_encoder "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\text_encoders\qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors" `
  --uncond_output "E:\ai\lora_tuku\dataset\uncond_space.safetensors" `
  --skip_existing

上記実行で、Text Encoder用の追加キャッシュ .safetensors 、uncond_space.safetensors (小サイズ)をdataset上に作成します。

STEP

本番 minimax-H3用LORA作成

注意点
–lr_warmup_steps 50 を指定する場合は、必ず –lr_scheduler constant_with_warmup も指定する事。
Musubi現行実装(#1064時点)では、初期値constantはwarmupを受付けず、constant_with_warmupならnum_warmup_stepsが使用できる。

–blocks_to_swap 48 のBlock Swapで、block 0がCPUに残ったままForwardへ入ったことが原因でエラー。対処方法:–block_swap_h2d_onlyを付け、–gradient_checkpointing 必須。

pruned INT8でclassic swap 48 →
–block_swap_h2d_only + blocks_to_swap 32に変更。(使用メモリ14.5gbで収まった。)
–block_swap_h2d_only はCPU側にベース重みを保持、必要なblockをCPU→GPU方向だけストリーミング。

MiniMax-H3のConvRot INT8+Block Swapとの併用に対応。
classic Block Swapの非同期転送競合でエラー落ちする場合あり。H2D-only方式を優先。

LORA作成後は、outputに出力されます。(上書き保存されます)
–max_train_steps 500 :学習STEP数を指定
–save_every_n_steps 250:中間STEPをN間隔で保存します。
–blocks_to_swap 32 `
 VRAM16GB以下に抑えたい時は32指定。数値を低くするほど必要VRAM増加し高速化。
 VRAM24GB以下に抑えたい時は16指定。

作成したLoRAと一緒に、caption本文は、忘れずに保存しておいてください。
最初はテストを兼ねて50STEPで開始し、問題がなければ500STEPにします。300STEPだと学習不足?で、生成動画が強制チビキャラ2D化してしまいました。500STEPでリアルキャラの置換えを確認。自然に動いています。

LORA作成は、コマンド上から行います。
エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(以下のE:\から始まる絶対パスは、あなたの環境に合わせた絶対パスを書いてください。)

& ".\.venv\Scripts\accelerate.exe" launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ".\minimax_h3_train_network.py" `
  --dataset_config "E:\ai\lora_tuku\dataset\images\images.toml" `
  --task t2va `
  --one_frame `
  --dit "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\diffusion_models\minimax_h3_fl2va_pruned_int8_convrot.safetensors" `
  --network_module networks.lora_minimax_h3 `
  --network_dim 16 `
  --network_alpha 16 `
  --video_only `
  --sdpa `
  --mixed_precision bf16 `
  --gradient_checkpointing `
  --blocks_to_swap 32 `
  --block_swap_h2d_only `
  --optimizer_type adamw8bit `
  --learning_rate 1e-4 `
  --lr_scheduler constant_with_warmup `
  --lr_warmup_steps 50 `
  --h3_guidance_loss_scale 4.0 `
  --h3_guidance_loss_sigma_min 0.15 `
  --h3_guidance_loss_uncond_cache "E:\ai\lora_tuku\dataset\uncond_space.safetensors" `
  --max_train_steps 500 `
  --save_every_n_steps 250 `
  --output_dir "E:\ai\lora_tuku\dataset\output" `
  --output_name "h3-oneframe"

RTXPRO4500(5070Ti相当)使用
・実測値 blocks_to_swap = 32 (300 STEP ,7.16 s/it ,約36分)
・実測値 blocks_to_swap = 16 (300 STEP ,6.34 s/it ,約32分)
・実測値 blocks_to_swap = 8 (300 STEP ,6.30 s/it ,約32分)(VRAM23.3GB、メモリ24GB)
500STEPで約54分で作成確認。

STEP

動作確認動画の生成(不要ならスキップしてね)

短時間生成で確認したい場合は
ComfyUIで、prompt欄にLORA作成時と同じcaptionを入れてください。
LORAありの同一文での生成で、学習反映有無が確認できます。
Turbo LoRAを併用する場合は4~12STEP、通常生成時にはSTEP20で十分です。

時間がかかってもいいのであれば、エクスプローラーで、musubi-tuner-h3-oneframe(あなたのmusubi-tuner環境)のフォルダを開き、そのフォルダ上でPowerShellを起動して、以下のコマンドを実行します。
(以下のE:\から始まる絶対パスは、あなたの環境に合わせた絶対パスを書いてください。)

& ".\.venv\Scripts\python.exe" ".\minimax_h3_generate_video.py" `
  --task t2va `
  --dit "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\diffusion_models\minimax_h3_fl2va_pruned_int8_convrot.safetensors" `
  --video_vae "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\vae\minimax_h3_video_vae_fp16.safetensors" `
  --audio_vae "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\vae\minimax_h3_audio_vae_fp32.safetensors" `
  --text_encoder "E:\ai\lora_tuku\musubi-tuner-h3-oneframe\models\text_encoders\qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors" `
  --text_encoder_blocks_to_swap 50 `
  --prompt "integrated_multimodal_description: [Shot 1] ここに指定captionを入れる. overall_soundscape: Complete silence. non_diegetic_music: N/A" `
  --width 576 `
  --height 768 `
  --frame_count 124 `
  --steps 20 `
  --seed 42 `
  --blocks_to_swap 48 `
  --lora_weight "E:\ai\lora_tuku\dataset\output\h3-oneframe.safetensors" `
  --lora_multiplier 1.0 `
  --output "E:\ai\lora_tuku\dataset\output\test_lora_1.mp4"

VRAM16GBの場合(OOMする場合含む)、768×1024 → 576×768に減らすこと。blocks_to_swap 32 → 48等に調整する。

自分用のメモ一覧 LORA作成。

GUI版は使いません。
1)Musubi標準のcaption生成を実行

musubi-tuner-h3-oneframe\
にて

Musubi標準のcaption生成を実行
--output_format text にすると、画像と同じ名前のTXTを同じディレクトリへ作成
1行で実行するならこちらです。
& ".\.venv\Scripts\python.exe" ".\caption_images_by_qwen_vl.py" --image_dir "E:\ai\lora_tuku\dataset\images" --model_path "F:\ComfyUI\ComfyUI_H3\models\text_encoders\qwen_2.5_vl_7b.safetensors" --output_format text

各.txtファイルのテンプレ

integrated_multimodal_description: [Shot 1] トリガーキーワードを入れる,ここに自動生成captionをいれる. This is a static still image.
overall_soundscape: Complete silence.non_diegetic_music: N/A.

images.toml(E:\ai\lora_tuku\dataset\images\images.toml)

[general]
resolution = [1024, 1024]
batch_size = 1
enable_bucket = true
bucket_no_upscale = false

[[datasets]]
image_directory = "E:/ai/lora_tuku/dataset/images"
cache_directory = "E:/ai/lora_tuku/dataset/cache"
caption_extension = ".txt"

3)LORA作成手順.txt

musubi-tuner-h3-oneframe\
にてキャッシュA、キャッシュBを作る必要があります。その次に本番LORAを作ります。
キャッシュは5分以内。本番は30分ほどで作れます。(500STEPで60分)

STEP1キャッシュAを作る(画像を追加したら再度実行、未変更時は、次のSTEPへ)
& ".\.venv\Scripts\python.exe" ".\minimax_h3_cache_latents.py" `
  --dataset_config "E:\ai\lora_tuku\dataset\images\images.toml" `
  --task t2va `
  --one_frame `
  --video_vae "F:\ComfyUI\ComfyUI_H3\models\vae\minimax_h3_video_vae_fp16.safetensors" `
  --audio_vae "F:\ComfyUI\ComfyUI_H3\models\vae\minimax_h3_audio_vae_fp32.safetensors" `
  --cache_seed 42 `
  --skip_existing

上記で、cacheフォルダに、1フレームのVideo latent、無音Audio latent、target indexが保存されます。

=====================
キャッシュBを作る(キャプションを新規追加・変えたら実行)

& ".\.venv\Scripts\python.exe" ".\minimax_h3_cache_text_encoder_outputs.py" `
  --dataset_config "E:\ai\lora_tuku\dataset\images\images.toml" `
  --task t2va `
  --one_frame `
  --text_encoder "F:\ComfyUI\ComfyUI_H3\models\text_encoders\qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors" `
  --uncond_output "E:\ai\lora_tuku\dataset\uncond_space.safetensors" `
  --skip_existing

上記でText Encoder用の追加キャッシュ .safetensors 、uncond_space.safetensors を追加作成する。

=====================本番LORA 作成
& ".\.venv\Scripts\accelerate.exe" launch --num_cpu_threads_per_process 1 --mixed_precision bf16 ".\minimax_h3_train_network.py" `
  --dataset_config "E:\ai\lora_tuku\dataset\images\images.toml" `
  --task t2va `
  --one_frame `
  --dit "F:\ComfyUI\ComfyUI_H3\models\diffusion_models\minimax_h3_fl2va_pruned_int8_convrot.safetensors" `
  --network_module networks.lora_minimax_h3 `
  --network_dim 16 `
  --network_alpha 16 `
  --video_only `
  --sdpa `
  --mixed_precision bf16 `
  --gradient_checkpointing `
  --blocks_to_swap 16 `
  --block_swap_h2d_only `
  --optimizer_type adamw8bit `
  --learning_rate 1e-4 `
  --lr_scheduler constant_with_warmup `
  --lr_warmup_steps 50 `
  --h3_guidance_loss_scale 4.0 `
  --h3_guidance_loss_sigma_min 0.15 `
  --h3_guidance_loss_uncond_cache "E:\ai\lora_tuku\dataset\uncond_space.safetensors" `
  --max_train_steps 500 `
  --save_every_n_steps 250 `
  --output_dir "E:\ai\lora_tuku\dataset\output" `
  --output_name "h3-oneframe"

30分ほどで、LORA作成。リアル人物ものだと300STEPでは学習不足。500STEPが最低限必要。
全体像を枚数使うならさらにSTEP数追加で安定。

参考にされる場合は、あくまでも自己責任でご判断ください。

以下、公式サイトです。

よかったらシェアしてね!
  • URLをコピーしました!
目次