drozbay's picture
FastH3 v0.2 4-step LoRA extraction (pruned r128/r64 + full max256)
4f95050 verified
|
Raw
History Blame Contribute Delete
3.74 kB
metadata
license: other
license_name: minimax-h3-community
license_link: LICENSE
base_model: FastVideo/FastVideo-Minimax-FastH3-Preview-v0.2
tags:
  - video-generation
  - minimax-h3
  - lora
  - distillation
  - few-step
  - comfyui

MiniMax H3 FastH3 4-Step LoRA (ComfyUI)

LoRA extraction of FastVideo-Minimax-FastH3-Preview-v0.2, the 4-step DMD2 distillation of MiniMax-H3 FL2VA, as the weight difference against the base Comfy-Org fl2va release. Apply to any fl2va base model to sample in 4 steps instead of 50; guidance-distilled, so cfg 1.0.

Files

file for size
loras/..._lora_pruned_rank128_fp16 minimax_h3_fl2va_pruned_* bases (recommended) 1.33 GB
loras/..._lora_pruned_rank64_fp16 same, smaller 0.71 GB
loras/..._lora_full_max256_avg253_fp16 full (non-pruned) fl2va bases only 5.06 GB

The pruned and full variants are not interchangeable: the adaln projections differ between the two base layouts (see below).

Usage

Standard LoRA Loader (model only) at strength 1.0 on the matching fl2va base, then sample with 4 steps, euler, simple scheduler, cfg 1.0 (this reproduces the trained ladder [999, 749, 500, 250] under the model's shift-12/3 schedule). Other step counts are off-distribution per the FastVideo model card. fl2va / t2va only; there is no ref2va student.

Extraction

Layer-by-layer SVD of the weight difference (student minus base), following the KJNodes LoraExtractKJ recipe: rank 256 standard, bias diffs included, no quantile clamp, fp16 output, with exact svd_linalg instead of svd_lowrank. Lower ranks are truncations of the same SVD. Norm weights ship as .diff, biases as .diff_b.

Two things specific to this model:

  • Pruned adaln refit. The pruned bases replace the time embedder with an 8-dim curve table, so ordinary adaln LoRA keys cannot apply there. The pruned variant instead refits the student's adaln projections onto the base's adaln_t_table (least squares over the 1025-point grid, residual ~1e-5) and stores them as exact .diff keys, tiny at [out, 8].
  • The delta is mostly not low-rank. FastH3 is a full fine-tune saved in bf16; each layer's difference is a strong low-rank head plus a flat rounding-dither tail no rank can carry. The LoRA captures the distillation direction well but is not a perfect stand-in for the full checkpoint.

Measured on a live 4-step run (960x544, 73 frames, same seed/prompt, PSNR vs the actual FastH3 checkpoint; ceiling is the same student under a different quantization):

run PSNR
base, no LoRA 14.6 dB
base + rank 64 17.1 dB
base + rank 128 17.6 dB
base + rank 256 17.7 dB
FastH3 itself, different quant (ceiling) 19.9 dB

Rank 128 is the sweet spot; rank 256 adds almost nothing at double the size. Visually all ranks land on FastH3's composition and sharpness.

Credits

  • FastVideo (hao-ai-lab) for the FastH3 distillation
  • MiniMax-H3 (MiniMax) and the Comfy-Org repack used as the base
  • Kijai for the extraction recipe and node math
  • Extraction planned, executed, and verified with the help of Claude (Claude Fable 5, via Claude Code)

Distributed under the MiniMax H3 Community License (see LICENSE), inherited from the base model. Review its territory and acceptable-use terms before use or redistribution.