aptech0081/MiniMax-H3-Acc-LoRAs-ComfyUI
MiniMax-H3 Acc LoRAs — ComfyUI conversion
ComfyUI-key repackaging of the official [alibaba-pai/MiniMax-H3-Acc-LoRAs](https://huggingface.co/alibaba-pai/MiniMax-H3-Acc-LoRAs) 8-step PDD acceleration LoRAs for MiniMax-H3 — full audio+video generation in 8 (or 4) sampler steps, CFG-free.
These are not plain LoRAs. Each file carries a rank-64 trunk LoRA plus a Parallel Decoding Distillation head bank (32 per-interval final-layer projections per modality, PDD — arXiv:2607.26004). Loading them requires the companion custom node pack:
➡️ [Jalen-Brunson/ComfyUI-MiniMax-H3-PDD-Acc](https://github.com/Jalen-Brunson/ComfyUI-MiniMax-H3-PDD-Acc) (also loads the original alibaba-pai files directly — this repo just saves you the in-memory conversion and gives you inspectable standard LoRA keys).
Files
Put the LoRA files in ComfyUI/models/pdd_acc/. Pair FL2VA with an fl2va UNET, Ref2VA with ref2va (bf16 or int8-convrot builds both work). The baked checkpoint goes in ComfyUI/models/diffusion_models/ instead.
Usage (recipe is mandatory)
UNETLoader → MiniMaxH3SigmaShift (12/3) → MiniMax H3 PDD Acc LoRA (Apply) → BasicGuider (CFG 1.0), sampler euler, sigmas = the Apply node's sigmas output (the trained PDD block boundaries) into SamplerCustomAdvanced. Strengths 1.0, nfe 8 (4 is also official). Remove other distill LoRAs (turbo); don't stack step-caching nodes. A ready-to-run workflow ships in the node pack's example_workflows/.
Baked Ref2VA trunk (for cards that can't fully load the model)
minimax_h3_ref2va_pdd_acc_8step_baked_int8_convrot.safetensors (34 GB) is Comfy-Org/MiniMax-H3's minimax_h3_ref2va_int8_convrot checkpoint with this repo's Ref2VA trunk LoRA pre-merged at strength 1.0 (dequantize → add → requantize with the same comfy-kitchen int8-convrot kernels ComfyUI itself uses; every tensor keeps its exact dtype, shape and byte length). The PDD head bank is not in this file — it stays runtime, so you still need the node pack and one of the LoRA files above.
Why it exists: ComfyUI merges LoRA patches into weights only for modules that fit in VRAM; offloaded modules get a per-forward lowvram patch — the LoRA (plus a dequantize) is re-applied on every step. On cards at the VRAM edge that fixed cost is large: ~2× s/it at 864×480 on a 32 GB RTX 5090 (node pack issue #4). Baking removes the patch term entirely — measured on a fully-offloaded H200: 2.44 → 2.06 s/it (lowvram patches: 258 → 0); the win grows as the card gets smaller. If your card fully loads the trunk, this file buys you nothing — use a LoRA file above on a stock trunk.
Usage: put it in ComfyUI/models/diffusion_models/, load it with a plain UNETLoader, and run the exact recipe above with the Apply node's `lora_strength` set to `0.0` (baked-trunk mode: trunk patching skipped; head bank / sigmas / guards unchanged — the node's info output confirms it). Point the Apply node at the Ref2VA LoRA file above (it still supplies the head bank and the trained sigmas). Everything else is identical: SigmaShift 12/3, the Apply node's sigmas → euler, CFG 1.0, nfe 8 (4 also official).
Caveats: the merge strength is frozen into the file — for another strength, the FL2VA trunk, or a bf16/pruned base, bake_pdd_trunk.py in the node pack bakes any base yourself (streaming write, a few GB of RAM). On an unbaked trunk, lora_strength 0.0 silently renders the un-distilled model with PDD heads — if unsure, check the file's safetensors metadata for pdd_acc_baked: true (full bake provenance — source shas, strength, date — is embedded there).
What was converted
Trunk LoRA renamed from diffusers to ComfyUI H3 keys (diffusion_model.*.lora_A/B.weight
.alpha, 258 modules):
to_q/to_k/to_v→attn.qkv_proj: concatenatedlora_A, block-diagonallora_B, alpha ×3 (keeps the per-branch scale exactly 1.0)ff.net.0.proj→mlp.fc1: SwiGLU[value;gate]→[gate;value]lora_Brow half-swapto_out.0→attn.out_proj,ff.net.2→mlp.fc2,adaln_proj.linearcopied 1:1 (modulation layouts verified bit-identical between the two implementations)token_refiner.refiner_blocks.N→token_refiner.blocks.N
The PDD head bank (proj_out [32,96,5376], audio_proj_out [32,32,5376] + biases) is kept byte-for-byte unchanged. Conversion is verified bit-identical to what the node pack computes in memory from the original files, and the converter CLI + 13-test suite live in the GitHub repo. Full provenance (source file sha256, transform description) is embedded in each file's safetensors metadata.
Credits
All training credit to alibaba-pai (Apache-2.0 release) and the PDD authors (Shaul et al.); base model by MiniMaxAI. This repo is a format conversion only.
