MiniMax H3のLightVAEで「VAE is invalid: None」が出る原因|正しい読み方を検証

H3 LightVAE の VAE is invalid をファイル別に v0.40 と v0.44 で検証 AI動画・プロンプト

この記事について(広告・アフィリエイトリンクはありません)

結論:Lite は元の VAE に足す部品です。元の VAE を標準の Load VAE で読み、Lite は Load H3 LightVAE で選びます。エンコーダーは替えず、デコーダーだけ替えるのが無難です。

できること

  • エラーの文から、どのファイルで何が起きたかを見分ける
  • Load H3 LightVAE で Lite を動かす
  • ノードなしで使える int8 版を選ぶ

難易度:ふつう。所要時間:ファイルが揃っていれば約10分。

H3 そのものの導入は、MiniMax H3の使い方を先に見てください。

ファイル別の結果

標準の VAEを読み込む(Load VAE)で読んだ場合と、Load H3 LightVAE で読んだ場合です。

ファイルサイズ標準 v0.40.0標準 v0.44.0ノード v0.44.0
元の minimax_h3_video_vae_int8_convrot2.81GB通る通るbase_vae に使う
lightvae-lite-h3-decoder3.25GBVAE is invalidデコードでサイズのエラー通る
lightvae-lite-h3-decoder-comfy3.25GBVAE is invalidデコードでサイズのエラー通る
lightvae-lite-h3-decoder-int8-convrot0.83GBVAE is invalid通る通る
lightvae-lite-h3-encoder0.41GBVAE is invalidVAE is invalid通る
lynnreal_omni_light_vae_fp163.86GB通る通る対象外

エラーの全文は次のとおりです。

RuntimeError: ERROR: VAE is invalid: None

If the VAE is from a checkpoint loader node your checkpoint does not contain a valid VAE.
RuntimeError: Expected size for first two dimensions of batch2 tensor to be: [4, 24] but got: [4, 2048].

2つ目の文は、バッチの大きさで最初の数字が変わります(小さい試験では [3, 24])。

ComfyUI 本体の PR #17049 は、2026年10月15日にマージされました。説明には、LightVAE の対応と、エンコーダーとデコーダーを別々に読み込む対応が書かれています。v0.40.0 はこの変更の前で、v0.44.0 には入っています。

v0.44.0 で decoder と -comfy が標準のノードで止まる理由として考えられるのは、int8 版と中の名前の違いです。decoder には attn.to_k のような名前が入り、int8 版は attn.to_qkv のような名前。これはファイルの中を見た私の推測です。

ノードの入れ方

README の手順で、今回は検証用の ComfyUI に入れました。カスタムノードの基本の入れ方はこちらにまとめています。H3 向けのほかのノードはH3 専用カスタムノード8選で紹介しています。

  1. リポジトリを custom_nodes の外に clone する
  2. ComfyUI のフォルダーで、次を実行する
git clone https://github.com/ModelTC/LightVAE.git LightVAE
python LightVAE/comfyui/install.py --comfy-root .
  1. Lite のファイルを models/vae/LightVAE に置く
  2. ComfyUI を起動し直す

ポータブル版なら、python は python_embeded\python.exe に読み替えます。今回は同梱の Python で install.py を実行しました。追加のパッケージは入りません。

custom_nodes にリポジトリをそのまま置くと、起動ログに次の行が出ました。ルートに __init__.py がないためです。

FileNotFoundError: [Errno 2] No such file or directory: '...\custom_nodes\LightVAE\__init__.py'

つなぎ方

VAEを読み込む で元の VAE を選び、Load H3 LightVAE の base_vae につなぎます。Load H3 LightVAE の出力を、動画のノードと VAEデコード につなぎます。

VAE を読み込むノードの元の VAE が Load H3 LightVAE の base_vae につながり、その出力が画像から動画へのノードと VAE デコードにつながっている
VAE を読み込むノードの元の VAE が Load H3 LightVAE の base_vae につながり、その出力が画像から動画へのノードと VAE デコードにつながっている

encoder は none のままにします。理由は後で書きます。

  • h3_fl2v_lightvae_node.jsonComfyUI にドラッグして読み込みます。入力画像は自分のものに差し替えてください

速さと VRAM

1344×768、124 フレーム(約5秒)のデコードです。同じ生成結果を VAE だけ替えて、各6回測りました。

VAE読み方デコード(中央値)VRAM のピーク
元の fp16標準11.8秒約7.7GB
元の int8標準5.2秒約5.4GB
LynnReal light標準8.7秒約6.4GB
Lite decoderノード約4.1秒約4.5GB
Lite decoder -comfyノード約4.1秒約4.5GB
Lite decoder int8ノード約2.0秒約3.6GB
Lite decoder int8標準約2.0秒約3.7GB

VRAM には、この PC の他のアプリの約1.9GB が含まれます。

サンプリングの時間は変わりません。今回の1本では、サンプリングに約96秒かかっています。デコードが数秒縮んでも、全体の短縮は数秒です。

画質

元の fp16 との差を、3シードの3フレームずつで比べました。PSNR は大きいほど元に近い値です。

VAE元の fp16 との差(PSNR)
元の int854.7〜58.6dB
LynnReal light37.6〜45.3dB
Lite(decoder、-comfy、int8 のどれも)30.8〜37.9dB

Lite は速い代わりに、元の VAE との差が一番大きくなりました。 下の比較では、木の細かい部分が少し甘くなっています。

同じ生成結果を 4 つの VAE でデコードした比較。Lite は木の細部が少し甘い
同じ生成結果を 4 つの VAE でデコードした比較。Lite は木の細部が少し甘い

Lite の3種類どうしの比較も取りました。

  • decoder と -comfy は、確かめたフレームで完全に同じでした。両方ダウンロードする必要はありません。
  • decoder と int8 版の差は、画素の平均で 0.1 以下でした。
  • base_vae を fp16 と int8 で替えても、同じ結果でした。
  • int8 版は、標準のノードで読んでも、ノードで読んでも同じ結果でした。

今回の結果では、一番小さい int8 版で十分でした。 標準のノードで動くので、ノードを入れなくても使えます。ただし README が案内しているのはノードの方法で、標準のノードで読めるのは今回の版での結果です。

エンコーダーは替えない

画像から動画を作るときは、入力の画像を VAE でエンコードします。同じ入力とシードで、3通り試しました。

設定結果元の VAE だけとの差
元の VAE だけ通る基準
デコーダーだけ Lite通る35.7〜38.2dB
エンコーダーも Lite通る18.5〜28.7dB
同じ入力とシードの比較。デコーダーだけ Lite は元の VAE と同じ動きで、エンコーダーも Lite にするとキツネの位置と動きが変わる
同じ入力とシードの比較。デコーダーだけ Lite は元の VAE と同じ動きで、エンコーダーも Lite にするとキツネの位置と動きが変わる

エンコーダーも Lite にすると、絵が崩れるわけではなく、キツネの位置や動きが別のものになりました。 README でも、最初と最後のフレームから作る場合はデコーダーだけを替える案内です。

速さの利点も小さく、1枚のエンコードは 0.3秒が 0.2秒になった程度でした。

なお、int8 版を標準のノードで読んで、そのままエンコードに使うと止まります。

'MiniMaxH3VideoVAE' object has no attribute 'quant_conv'

ノードなしで使うなら、VAEを読み込む を2つ置き、エンコードには元の VAE、VAEデコード には Lite をつなぎます。これも3シードで通りました。

VAE を読み込むノードが 2 つあり、元の VAE は画像から動画へのノード、Lite は VAE デコードにつながっている
VAE を読み込むノードが 2 つあり、元の VAE は画像から動画へのノード、Lite は VAE デコードにつながっている

混ぜやすい3つの話

  • LynnReal の light VAE:デコーダーとエンコーダーの両方が入ったファイルで、標準のノードで読みました。v0.40.0 でも通っています。
  • lightx2v の Lite:この記事の中心です。デコーダーとエンコーダーが別のファイルです。
  • TLR と -comfy:配布元の議論には、-comfy に Load LightVAE (TLR) が要るという古い案内があります。今の README では H3 に TLR はいらないと書かれていて、今回も TLR なしで -comfy が通りました。

つまずいた点

最初は「現行版でも VAE is invalid が再現する」と考えていました。ところが v0.44.0 の decoder は読み込みまで通り、デコードで別の文のエラーが出ます。v0.40.0 を起動して、ようやく報告と同じエラーを decoder で再現できました。

ノードを入れた直後は、decoder の欄が none だけでした。Lite のファイルを普段の models/vae に置いていたためです。このノードは models/vae/LightVAE だけを見ます。 移すと、欄に表示されました。

SaveLatent で生成結果を保存して使い回すつもりでしたが、H3 の結果では 'NestedTensor' object has no attribute 'contiguous' で保存できませんでした。ComfyUI のキャッシュを使って VAE だけ替える形に変えています。

よくある質問(FAQ)

Q. VRAM の少ない PC で効きますか?

デコードのピークは下がりました。ただしサンプリングのピークは別なので、Lite だけで足りるとは言えません。少ない VRAM の実機では試していません。

Q. どれを選べばいいですか?

仕上げには元の VAE を選びます。確認を急ぐときは、Lite の int8 版をデコーダーにする形が今回は無難でした。

Q. 最初の読み込みが遅いのはなぜですか?

ノードで decoder と -comfy を最初に読んだときは約60秒でした。2回目からは約1秒です。ディスクからの読み込みの時間と考えられます。int8 版は約0.3秒でした。

まとめ

  • VAE is invalid は、Lite を標準のノードで読んだときの代表的なエラーです。
  • Lite は models/vae/LightVAE に置き、Load H3 LightVAE で選びます。
  • エンコーダーは元のままにして、デコーダーだけ替えます。

この記事の検証環境

RTX 5090(32GB)/ Ryzen 9 9950X3D / 128GB / Windows 11 / ComfyUI v0.40.0(3541246a)と v0.44.0(2c75dc1b)/ ComfyUI-LightVAE(38b0587)/ 2026年11月4日
これまでの検証の一覧はこちら

検証メモ

  • 更新:2026年11月4日に、最初はノードなしで公開し、同じ日のうちにノードの結果を追記しました。
  • ファイル別の表:標準のノードは 512×320・25 フレームの空の latent、ノードは下の実際の生成結果で確かめました。
  • 速さの表:シード 101、202、303 を各1回、シード 303 をさらに3回測りました。LynnReal だけはノードを入れる前の6回です。ディスクの読み込みが重なった回は、これより遅くなりました(fp16 の初回は 62〜70秒)。VRAM は、モデルを降ろしてからの値で、開始時に VRAM が残っていた回は外しました。元の int8 の VRAM は、外したあと2回分です。
  • 画質:各シードの 1、63、124 フレーム目を比べた範囲です。プロンプトは1種類で、動きの多い映像は試していません。
  • 画像から動画:FL2V の pruned int8、960×544、8 ステップ、シード 11、22、33 で、差は 63 フレーム目だけの比較です。元の VAE は fp16(ノードあり)と int8(ノードなし)で試しました。ノードなしの2つの VAE の構成でも、デコーダーだけ Lite の差は同じ 35.7〜38.2dB でした。
  • エンコードの速さ:1344×768 の1枚で、ノードの encoder が 0.18〜0.25秒、元の fp16 が 0.29〜0.30秒です(初回の 4.18秒を除く)。動画のリファレンスでの差は試していません。
  • ライセンス:LightVAE のカードは Apache-2.0 です。LynnReal は minimax-h3-community です。H3 本体のライセンスは導入の記事を見てください。
  • ダウンロード:LightVAE と LynnReal は同意なしで取得できました(2026年11月4日時点)。
  • ノード:ModelTC/LightVAE(38b0587)の comfyui フォルダーを install.py で入れました。
  • 未確認のこと:REF2V、TLR ノード、v0.44.0 より前の版でのノード、少ない VRAM の実機、Comfy Desktop 版。

参考リンク

この記事を書いた人
こまたろ

画像生成 AI に興味を持ったのがきっかけで、3年ほど前から ComfyUI を触っています。始めたころは今ほど情報がそろっておらず、何時間もかけて整えた環境が翌日のアップデートで動かなくなったこともありました。

KOBO Lab は、自分の学び直しと、これから ComfyUI を始める人が同じところでつまずかないようにと思って始めたサイトです。初心者も中級者も、迷ったときに開くサイトを目指しています。

検証は、RTX 5090 を積んだ自作 PC 1台で、実際に動かして確かめています。作業を楽にするための自作ツールも作っています。

記事は、運営者自身の経験と検証をもとに、Claudeで下書きを作り、GrokボットとMuseでも添削や確認をして仕上げています。

KOBO Lab の新しい記事を受け取る
AI動画・プロンプトComfyUI
KOBO Lab の新しい記事を受け取る
タイトルとURLをコピーしました