こんにちは、パレイド技術部です。
前回、Wan2.2 14B T2V の環境構築を完了し、いざ生成してみたところ画質に問題があることに気づきました。全体的にノイズが残り、ディテールが潰れてしまいます。
原因を調べたところ、HIGH/LOWノイズ領域でサンプラーを使い分けるデュアルサンプラー構成が必要でした。今回はこの問題の解決と、fp8_scaled モデルを使った A14B ワークフローの構築記録をお伝えします。
ワークフローの構成と技術的ポイント
前回は安易に Wan2.2 5B のワークフローのテンプレートを出発点としたため、14B の特性を考慮しない構成となってしまったことが原因でした。今回は Kijai氏 のリポジトリのワークフローやドキュメントを参考に、同様に Claude Code + Chrome 拡張に相談しつつ作業を進めました。
デュアルサンプラー構成(HIGH/LOW分割)
結論、Wan2.2 A14B はHIGH noise モデルと LOW noise モデルの2本立て設計になっています。
- HIGH noise model:生成の前半ステップ(高ノイズ段階)を担当
- LOW noise model:後半ステップ(低ノイズ段階)を担当
前回のように、これを1本のサンプラーで動かすと画質が安定しません。2つの WanVideoSampler ノードを直列につなぎ、HIGH の出力サンプルを LOW の入力に渡す構成が正解のようです。start_step と end_step でステップ範囲を分割します(例:前半 0〜3、後半 3〜6)。
LightX2V LoRA によるステップ蒸留
LightX2V はステップ蒸留 LoRA で、通常 20〜50 ステップかかる生成を6ステップで行えるようにします。T2V 用(lightx2v_T2V_14B_cfg_step_distill_v2_lora_rank64_bf16.safetensors)を両サンプラーに適用します。
VAE は Wan2.1 を使う
調べないとはまりがちですが、Wan2.2 A14B モデルは Wan2.2 専用 VAE ではなくWan2.1 VAE(wan_2.1_vae.safetensors)を使います。Kijai 氏本人が issue #1281 で確認済みです。Wan2.2 VAE を使うと channels mismatch (36 vs 68) エラーが出ます。
fp8_scaled モデル
Wan2_2-T2V-A14B_HIGH_fp8_e4m3fn_scaled_KJ.safetensors(約15GB)Wan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors(約15GB)
通常の fp8 と異なり、レイヤーごとにスケール係数を持たせた高精度 fp8 です。fp16(28GB)の半分の VRAM で動き、画質劣化がほぼありません。Kijai 公式推奨形式です。
ただし、今回の環境の RTX4070 の 12GB VRAM に fp8 の 15GB モデルは収まらないため、WanVideoBlockSwap ノードで一部のブロックを CPU RAM に逃がしながら計算します。14B モデルは全40ブロックあり、blocks_to_swap=40(全スワップ)で問題なく動作し、30程度まで下げられるようです。prefetch_blocks=1 で先読みが効くことがあります。
生成例
ComfyUI の 5B TI2V テンプレートと、プロンプトをはじめとできるだけ条件を揃えたものが下記です。チューニングやプロンプトで 5B でも向上の余地はありそうですが、動画素材としては 14B 一択という感じです。(ここでは割愛しますが、ネガティブプロンプトもWan2.2の例をそのまま中国語でコピペして与えています)
Slow pan access a calm ocean at sunset, gentle waves, golden light reflecting on water surface
構築時に遭遇したエラーと解決策
参考にしたワークフローでは他にも SageAttention や Triton を使った高速化が行われており、環境によってオプションを指定する必要がありました。今回は取り急ぎ下記の様に処理しています。
SageAttention が使えない
Can't import SageAttention: No module named 'sageattention'
WanVideoModelLoader の attention_mode を sageattn → sdpa に変更。
TorchCompile の Triton エラー
TritonMissing: Cannot find a working triton installation
WanVideoTorchCompileSettings ノードを bypass(mode=4)し、両モデルローダーへの compile_args リンクを切断。
スローモーション?
低めの fps で試した結果、生成された動画がスローモーションのようになります。Wan2.2 は 24fps 前提の設計のため、24 に変更で解決しました。
速度について
fp8_scaled(15GB)は 12GB VRAM に収まらず BlockSwap が大量に必要なため生成速度は遅めです。
832×480、fps=24、フレーム数121(約5秒)の動画生成において下記の通りでした。
- block_to_swap: 40 → 約15分
- block_to_swap: 30 → 約13分
ここからの速度改善の選択肢としては、量子化 gguf を用いてBlockSwapの不要な組み合わせを探ることが考えられます。
| 方法 | サイズ | BlockSwap | 速度 | 画質 |
|---|---|---|---|---|
| fp8_scaled(現在) | 15GB | 多(20〜40) | 遅い | 高い |
| GGUF Q5_K_S | 10.1GB | 中(10〜20) | 中程度 | fp8 に近い |
| GGUF Q4_K_M | 9.65GB | 少(5〜15) | 速い | 良好 |
| GGUF Q3_K_M | 7.17GB | ほぼ不要 | 最速 | やや劣化 |
| FastMix Q4_K_M | 9.65GB | 少 | 速い | LoRA 焼き込み済み |
EasyWan22/FastMix(Zuntan 氏)では GGUF Q4_K_M(Zuntan/Wan22-FastMix)+ lcm スケジューラーで VRAM 6GB〜対応を実現しており、BlockSwap をほぼ不要にしています。
使用モデル一覧
| 種別 | ファイル名 | 配置先 |
|---|---|---|
| HIGH noise model | Wan2_2-T2V-A14B_HIGH_fp8_e4m3fn_scaled_KJ.safetensors | diffusion_models/ |
| LOW noise model | Wan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors | diffusion_models/ |
| LoRA(ステップ蒸留) | lightx2v_T2V_14B_cfg_step_distill_v2_lora_rank64_bf16.safetensors | loras/ |
| VAE | wan_2.1_vae.safetensors | vae/ |
| テキストエンコーダー | umt5_xxl_fp16.safetensors | text_encoders/ |
モデル出典:Kijai/WanVideo_comfy_fp8_scaled・Kijai/WanVideo_comfy(HuggingFace)
まとめ
- Wan2.2 A14B は HIGH/LOW noise モデルのデュアルサンプラー構成が前提。1本では画質が安定しない
- LightX2V LoRA でステップ数を6まで削減できる
- VAE は Wan2.1 を使う(Wan2.2 VAE ではチャンネルミスマッチエラー)
- fp8_scaled は画質最優先。速度重視なら GGUF 量子化モデルも選択肢
- 12GB VRAM 環境では BlockSwap をフル活用(blocks_to_swap=40)
- seed の再現性には HIGH sampler の seed のみ記録すれば十分
次回は、A14B の Image-to-Video(I2V)を同じ構成で動かし、構図をコントロールした BGV 素材の生成に挑戦します。





