H3 SpeedKit is an open-source ComfyUI plugin with CUDA kernels tuned for one RTX 5090 D v2 (SM120). It accelerates MiniMax-H3's dense INT8 DiT and video output while retaining Larry v4, eight sampling steps and the original reference encoder.
This Hugging Face repository is a deployment and benchmark landing page. The source, installation instructions and issue tracker are on GitHub. It does not contain model weights, a newly trained LoRA or an automatically loadable Transformers checkpoint.
Measured results
Kitchen 0.2.36, Larry v4 baked into the INT8 ConvRot checkpoint, 8 steps · Euler/beta · CFG 1, one RTX 5090 D v2.
| Comparison | Baseline | SpeedKit | Less time |
|---|---|---|---|
| Two representative clips: native FP16 VAE → optimized INT8 VAE | 264.44 s | 233.63 s | 11.65% |
| Same clips, INT8 VAE in both arms | 250.45 s | 233.63 s | 6.72% |
| DiT stage, same INT8 precision and eight steps | 233.99 s | 218.80 s | 6.49% |
| Public input: 768×512, 124 frames, same INT8 VAE | 19.31 s | 16.76 s | 13.19% |
The first three rows use two private representative segments of approximately ten seconds (243/260 frames), with two formal repeats per arm. The public-input row is a separate workload, uses an original public reference illustration, and also has two formal repeats per arm. Do not pool the rows.
Timing starts at prepared conditioning and ends at a completed local MP4. It excludes text/reference encoding, cold checkpoint reads, queueing, network/upload and first-use verification. These are measured request latencies, not a sustained multi-request serving-throughput benchmark.
Full protocol and raw measurements · Public-input records
What happens to video and audio quality?
- Against the same INT8 baseline, all four formal representative-clip requests have identical SHA-256 signatures for video latents, audio latents, decoded RGB and PCM audio. The public-input tests also match on all four outputs.
- Switching the video VAE from FP16 to INT8 is a separate, very-small-error change. A historical 15-identical-latent comparison measured 58.67 dB raw PSNR, 0.98907 encoded-video SSIM and 0.00759 LPIPS; all 15 PCM audio outputs matched exactly.
- The packaged Kitchen 0.2.36 decoder was rerun on all 15 saved latents: 15/15 decoded RGB signatures matched the historical optimized decoder. This confirms the migration; it is not a new FP16-vs-INT8 quality study.
- Audio VAE decoding remains FP32 on the GPU. CPU work handles MP4 export.
The INT8 VAE is not pixel-identical to FP16. Exactness of the DiT optimization refers to the tested INT8 baseline, not full BF16 dense inference or every possible workflow.
What makes it faster?
| Stage | Implementation |
|---|---|
| Dense attention | SM120 D128 three-slot TMA pipeline, resident Q registers and direct BSHD output |
| DiT preparation | Fused norm/modulation/ConvRot and QKV → RMS/RoPE → quantization |
| INT8 GEMM | FC1 tile scheduling; out-projection/FC2 gate-residual epilogues preserving BF16 rounding |
| Final DiT block | Skip query rows whose outputs are unused, retaining all K/V and dense attention for live queries |
| Video output | Upstream INT8 VAE, original encoder, fused RGB8 finalization and double-buffered asynchronous GPU-to-CPU transfer |
| Service integration | Optional bounded CPU export queue with explicit completion and error propagation |
No sparse-attention approximation, diffusion-step skipping or temporal activation cache is enabled in this published exact INT8 path. First-use checks and unsupported-input guards are part of the plugin.
Kernel details and migration · Historical experiments, including rejected approaches
Install in ComfyUI
Validated source-release stack: Linux · RTX 5090 D v2 · Torch 2.12.0+cu130 · Triton 3.7.0 · Kitchen 0.2.36 · pinned ComfyUI H3 revision. Check the compatibility matrix before building; CUDA toolkit 13.0 and CUTLASS v4.5.0 were used.
cd ComfyUI/custom_nodes
git clone https://github.com/Tokha233/ComfyUI-H3-SpeedKit.git
cd ComfyUI-H3-SpeedKit
python -m pip install comfy-kitchen==0.2.36 av
git clone --branch v4.5.0 --depth 1 https://github.com/NVIDIA/cutlass.git /tmp/h3-cutlass
python tools/build_kernels.py --cutlass /tmp/h3-cutlass
python -m h3_speedkit --probe-cuda
Restart ComfyUI with --disable-cuda-malloc. Connect H3 SpeedKit · Optimize DiT before your sampler. Optional Video VAE Loader → Decode to RGB8 → Save Video nodes accelerate video output; the DiT node can also be used with standard image/output nodes.
Use the Larry merge instructions and example workflows. Do not apply Larry twice to an already merged checkpoint. CUDA libraries are built from source; precompiled wheels and Windows support are not qualified in this initial release.
Reproduce the comparison
The repository includes an original public reference image, benchmark scripts, per-request output checks, CUDA source and build manifests.
python benchmarks/run.py --help
python -m unittest discover -s tests -v
python tools/verify_kitchen036.py
python tools/verify_metrics.py
The benchmark CLI runs real stock/optimized inference using your downloaded public models. The CPU verification commands validate tooling and recorded evidence; they do not measure GPU performance.
中文简介
这是一套面向 单卡 RTX 5090 D v2 的 MiniMax-H3 ComfyUI 加速节点:保留 Larry v4、8 步、采样器与旧 encoder,优化 dense INT8 attention、算子融合、GEMM epilogue 和视频输出。
在 Kitchen 0.2.36 上,两段代表性片段的测量周期从 264.44 秒降到 233.63 秒(耗时降低 11.65%),其中包含 FP16→INT8 VAE 的变化。双方都用 INT8 VAE 时,耗时降低 **6.72%**;公开输入 768×512、124 帧的独立测试是 19.31→16.76 秒(降低 13.19%)。同 INT8 基线的测试中,视频/音频 latent、RGB、PCM 四项哈希一致。INT8 VAE 相对 FP16 有很小的量化误差,不能称为像素完全一致。
Credits and source
Built on ComfyUI, Comfy Kitchen, SageAttention, CUTLASS, PyTorch and SGLang. Larry v4 and the INT8 VAE are upstream contributions. Obtain MiniMax-H3 weights under their original model terms.
Combined plugin: GPL-3.0-or-later, with preserved Apache/BSD file-level notices for applicable kernel components. See licensing and provenance.
If this helps your H3 workflow, star the GitHub repository and share a reproducible benchmark with your GPU, software versions and workflow.
- Downloads last month
- -
