# MiniMax H3 Activation Chunk & Attention Acceleration - Star7 [中文说明](#中文说明) · [English](README_EN.md) · [实测记录](BENCHMARKS.md) · [示例工作流](examples/workflows) 新版示例基于 0919 工作流,顺序为一采 → 可选二采 → 可选人脸修复 → Star7 分块解码;二采与修脸默认关闭。请先选择本机模型文件,需要参考素材时载入自己的图片或视频并取消绕过。修脸需分块项目 2.16.2 或更新版本。 This ComfyUI project helps MiniMax H3 run high-quality, long-duration video generation on GPUs with limited VRAM. Its core node provides independent QKV, RoPE, and MLP activation chunking together with a selectable attention backend. It does not change the sampler, sigma schedule, latent layout, VAE, duration, frame count, or output resolution. Attention choices include preserving an upstream backend, Comfy Kitchen INT8, architecture-specific SLA/Sol sparse attention, and step-level CK/Sparse/CK Hybrid modes. The package also includes compact reference-image, reference-video, and prompt-loading helpers. > This is an independent community project. MiniMax, ComfyUI, Comfy Kitchen, KJNodes, LightX2V, and NVIDIA are trademarks or projects of their respective owners. ## 中文说明 让高画质、长时长 MiniMax H3 视频在有限显存的显卡上高效运行。 ### 快速看懂 - 核心节点同时提供 **QKV / RoPE / MLP 激活分块**和**注意力选择**。 - QKV 投影、RoPE 与 MLP 扩展激活沿 token 维分块计算,使每次只需保留当前分块的中间张量,分别避免这三处临时工作集按完整长序列规模展开;显存不足时还可只降低发生 OOM 的分块大小。 - 分块降低的是推理临时激活峰值,不减少模型权重、帧数或 token,也不改变采样器、latent、VAE、时长和输出分辨率。 - 注意力可选择传入模型已有实现、Comfy Kitchen INT8、SLA、Sol,以及 CK/Sparse/CK Hybrid;SLA 仅计算路由选中的 K/V 块,Sol 以选中块精确计算和未选中块质心近似替代完整稠密计算,SM75 与 SM80+ 均提供对应路径。 ## 主要功能 | 功能 | 说明 | |---|---| | QKV / RoPE / MLP 独立分块 | 分别控制三处临时显存峰值,保留 MiniMax H3 原 block、权重、LoRA 和条件布局 | | 智能显存降档 | 仅在可缩小的分块阶段 OOM 时,将对应分块值减半重试,其他参数保持不变 | | 多种注意力后端 | 支持 `existing`、Comfy Kitchen INT8、SLA、Sol 和 CK/Sparse/CK Hybrid | | 架构专用稀疏内核 | SM75 使用随节点分发的原生 CUDA 内核;SM80+ 使用 Triton 或 NVIDIA 官方 Sol-Attn 路径 | | 数值检查与定位 | 在完整 Transformer block 和 H3 视频/音频输出处检查 NaN/Inf,并提供 QKV、attention、`out_proj`、MLP 分段诊断 | | 轻量辅助节点 | 附带参考图像、参考视频和提示词载入;支持将对应文件直接拖入节点,参考图像可按常用横竖比例自动进行最大保留裁切,且不影响核心模型补丁 | ## 工作原理 ### 激活分块 MiniMax H3 长序列推理主要存在三个可独立控制的临时显存峰值: - `QKV projection`; - `RMSNorm -> split-half RoPE (Q/K)`; - `fc1 -> SwiGLU -> fc2` MLP 扩展激活。 本节点沿 sequence/token 维切分这些行独立计算,并将结果写回原有输出布局。RoPE 原位写回 Q/K,MLP 输出继续交给上游 block;分块不改变公式、token 顺序或条件结构。 分块的作用是降低临时工作集,而不是减少计算量。如果任务原本可以完整驻留显存,分块不一定更快;当原任务会 OOM、进入共享显存或频繁换页时,分块才更可能改善实际吞吐。 ### SLA SLA 按 LightX2V 契约使用 `Q=128`、`K=64` 动态 Top-K 块路由。目标视频查询通常只保留约 15% 的 K 块参与 QK/PV,online softmax 状态和最终累积保持 FP32。 SM75 原生内核对目标音频查询块执行完整注意力。SM80+ 在保留边界路由的同时,以量化前 Q/K/V 对参考音频和生成音频的查询范围执行完整注意力并覆盖稀疏结果;视频查询仍使用 SLA 稀疏计算。 SLA 建议配合 [MiniMax H3 Turbo SLA LoRA](https://huggingface.co/lightx2v/Minimax-h3-Turbo-SLA) 使用,以获得更适合该稀疏模式的长时序表现。 ### Sol Sol 使用 `Q64/K64`、`tau=1.0` 的阈值路由。被选中的 K/V 块执行精确注意力;未命中块不是直接丢弃,而是通过 K/V 质心近似贡献,并与精确块合并到同一次 FP32 online softmax 中。 SM80+ 标准 Sol 模式调用随节点内置的 NVIDIA NVlabs/Sana 官方 BF16 Sol-Attn 接口。SM75 与 SM80+ 的 Star7 All-INT8 路径保留“精确块 + 未命中块质心近似”的完整 Sol 语义,但采用不同的 Q/K/PV 量化和 CUDA/Triton 实现,因此不具备与官方 BF16 路径逐值一致性。 SM80+ Sol 保留音频范围的 KV sink,并对参考音频和生成音频查询使用完整注意力结果覆盖;该保护同时适用于官方 BF16、All-INT8 和 Hybrid 中的 Sol 步。 ### Hybrid Hybrid 在完整采样 step 之间切换注意力,而不是在一次 Attention 内混合两套内核。默认前后保护区使用 CK,中间采样阶段使用对应的 SLA、Sol 或 VSA。 以常见 4-step 工作流为例:第 1、4 步使用 CK,第 2、3 步使用所选稀疏模式。Hybrid 需要 ComfyUI 提供真实 sigma 调度上下文;无法可靠确定采样步时将终止任务并报告错误。 RTX 20 系建议配合 [MiniMax H3 FP16 Exact Fix - Star7](https://github.com/star7code/minimax-h3-fp16-exact-star7) 使用。该项目从模型载入阶段采用 FP16 计算,并以 FP32 残差运算和精确溢出保护修复 Turing 上的 FP16 数值问题,可降低长视频中 NaN、棋盘格和音频异常的风险;它不改变注意力后端,也不会把 CK、SLA 或 Sol 的 INT8 计算转换为 FP16。 ## 注意力模式 ### 通用模式 | `attention_backend` | 作用 | 适用情况 | |---|---|---| | `existing` | 保留传入模型已有的注意力实现 | 已接 Sage、Low VRAM 或其他注意力补丁;也可保留当前环境默认后端 | | `comfy_kitchen_int8` | 使用 ComfyUI / Comfy Kitchen INT8 注意力 | 默认选项,兼容性与速度较均衡;属于近似注意力 | ### SM75 / RTX 20 系 | `attention_backend` | 计算路径 | 定位 | |---|---|---| | `sla_sm75_qk_int8_pv_fp16` | QK INT8、PV FP16、FP32 softmax/累积 | SLA 精度优先 | | `sla_sm75_all_int8` | QK/PV INT8、FP32 softmax/累积、完整音频查询保护 | SLA 性能优先;建议按提示词验证画质与语音 | | `sol_sm75_all_int8` | Q64/K64,精确块 + 质心近似,PV INT8 | SM75 Sol 标准可见模式 | | `vsa_sm75` | H3 VSA、10% 保留、0%–100% 全采样区间、SM75 专用路径 | 普通 H3 运行 fine-only;FastH3/VSA 额外使用学习型 coarse 补偿 | | `hybrid_sm75_ck_sla_all_int8` | CK / SLA All-INT8 / CK | 采样步级质量与速度折中 | | `hybrid_sm75_ck_sol_all_int8` | CK / Sol All-INT8 / CK | 采样步级质量与速度折中 | | `hybrid_sm75_ck_vsa` | CK / SM75 VSA / CK | 首尾 CK、中间使用 SM75 预编译 VSA | ### SM80+ / RTX 30–50 系及更新架构 | `attention_backend` | 计算路径 | 定位 | |---|---|---| | `sla_sm80+_qk_int8_pv_bf16` | QK INT8、PV BF16、FP32 softmax/累积、完整音频查询保护 | SM80+ SLA 标准模式 | | `sla_sm80+_all_int8` | QK/PV INT8、FP32 softmax/累积、完整音频查询保护 | 性能/质量对照模式,需实机验证 | | `sol_sm80+_bf16_official` | NVIDIA 官方 BF16 exact+approx Sol-Attn、音频 KV sink 与完整音频查询保护 | SM80+ Sol 标准模式 | | `sol_sm80+_all_int8` | Star7 exact+centroid Sol、PV INT8、音频 KV sink 与完整音频查询保护 | 性能/质量对照模式,需实机验证 | | `vsa_sm80+` | H3 VSA、10% 保留、0%–100% 全采样区间、SM80+ 路径 | 普通 H3 运行 fine-only;FastH3/VSA 额外使用学习型 coarse 补偿 | | `hybrid_sm80+_ck_sla_qk_int8_pv_bf16` | CK / SLA BF16-PV / CK | SM80+ Hybrid SLA 标准模式 | | `hybrid_sm80+_ck_sol_bf16_official` | CK / NVIDIA 官方 BF16 Sol / CK | SM80+ Hybrid Sol 标准模式 | | `hybrid_sm80+_ck_sla_all_int8` | CK / SLA All-INT8 / CK | SM80+ Hybrid SLA 性能模式 | | `hybrid_sm80+_ck_sol_all_int8` | CK / Star7 Sol All-INT8 / CK | SM80+ Hybrid Sol 性能模式,需实机验证 | | `hybrid_sm80+_ck_vsa` | CK / SM80+ VSA / CK | 首尾 CK、中间使用 Comfy Kitchen VSA | ### 如何选择 - 追求最高兼容性或保留已有 Sage:选择 `existing`。 - 通用配置:优先选择 `comfy_kitchen_int8`。 - SM80+ 默认推荐 BF16;若启动器明确开启 `--fp16-unet`,最新版 Star7 载入节点会安装 FP16 Exact 保护,CK、SLA、Sol 与 Hybrid 均可继续运行。只有未经保护的普通 FP16 会在采样前被拦截并提示检查载入节点与启动参数。 - SM75 使用 SLA:先以 `sla_sm75_qk_int8_pv_fp16` 验证质量,再根据需求测试 All-INT8 或 Hybrid。 - SM80+ Hybrid 可按需求选择 BF16 标准模式(`hybrid_sm80+_ck_sla_qk_int8_pv_bf16` 或 `hybrid_sm80+_ck_sol_bf16_official`),也可显式选择新增的 All-INT8 性能模式(`hybrid_sm80+_ck_sla_all_int8` 或 `hybrid_sm80+_ck_sol_all_int8`)。旧工作流中的 BF16 Hybrid 值会原样保留, 不会静默改变为 All-INT8。 - SM80+ 单独 Sol 优先从 `sol_sm80+_bf16_official` 开始;All-INT8 只应在同配置 A/B 测试后采用。 - 稀疏模式并非所有分辨率、时长和显卡上都必然快于 CK,应比较同模型、同 seed、同帧数、同步数和同卸载策略下的采样耗时。 ## 环境与分发 - SM75 Windows x64:节点内置预编译 CUDA 13 静态运行时 DLL,需要支持 CUDA 13 的 NVIDIA 580+ 驱动。 - SM75 Linux x86_64:节点内置 CUDA 12.6 静态运行时 `.so`,面向 Ubuntu 20.04 / glibc 2.31 及更新系统,需要 NVIDIA 525.60.13+ 驱动。 - SM75 原生库只接收张量地址、形状和当前 CUDA stream,不链接 PyTorch C++ ABI,也不依赖 SageAttention。Turing Triton 不可用时,路由/量化预处理可使用有界显存 PyTorch 路径,核心稀疏注意力仍由原生 CUDA 库执行。 - SM80+ SLA 与 All-INT8 路径使用 Triton,首次运行会编译并写入缓存,后续运行复用。 - SM80+ 官方 BF16 Sol 优先使用 ComfyUI 0.34 `comfy_kitchen.sol_attn` 的已编译后端;该接口不可用时才使用节点内置 NVIDIA Triton 实现。 - `sol_sm80+_bf16_official` 已内置 NVlabs/Sana `sol-engine` 源码,无需另外安装 Sana。SM80/SM86 使用官方 Triton;支持的 SM89/SM90/SM100/SM120 环境在 CuTe DSL 与 `cuda-python` 可用时使用对应专用内核,否则由官方接口使用 Triton。 - `STAR7_SOL_ATTN_PATH` 仅用于开发者可选覆盖为更新的官方 Sol 源码,普通用户不需要设置。 - 架构选项不按当前显卡动态隐藏,便于跨机器保存和分发工作流。架构不匹配时任务终止,错误信息包含所需与检测到的计算能力,且不执行后端回退。 ## 安装 ComfyUI Manager / Comfy Registry: ```text 搜索:MiniMax H3 Activation Chunk - Star7 包名:minimax-h3-chunk-star7 ``` Comfy CLI: ```bash comfy node install minimax-h3-chunk-star7 ``` GitHub 手动安装: ```bash cd ComfyUI/custom_nodes git clone https://github.com/star7code/minimax-h3-chunk-star7.git ``` 安装或更新后重启 ComfyUI。 ## 包含的节点 | 节点 | 用途 | |---|---| | `MiniMax H3 增强载入 - Star7` | 分块项目内置的独立 H3 模型载入节点;按 GPU 架构选择受保护 FP16 或原生 BF16,保留量化分发,并使用独立类 ID 避免与 FP16 项目冲突 | | `MiniMax H3 显存分块加速 - Star7` | QKV/RoPE/MLP 分块、注意力输出显存保护、自动降档和注意力加速选择 | | `MiniMax H3 实时预览 - Star7` | 每个采样步骤后用 TAEH3 显示覆盖完整时间轴的循环动画 | | `参考视频载入 - Star7` | 支持直接拖入视频,完成载入、时间范围裁切和最长边限制,输出同一时间窗的画面与音频 | | `参考图像载入 - Star7` | 支持直接拖入图片,在一个节点中完成载入、最长边限制、可选小图放大及常用横竖比例的最大保留裁切 | | `提示词载入 - Star7` | 支持拖入图片、视频或工作流 JSON,自动提取长文本并保留候选词 | | `DLSS 神经画质增强 V2 - Star7` | 对图片或视频帧批次执行可调 Neural Rendering,可选目标百万像素与写实/人像/动漫预设 | | `MiniMax H3 多合一条件载入 - Star7` | 在一个节点中组织提示词、首尾帧、参考图、参考视频和音频,并输出可供高清放大与人脸修复复用的采样上下文 | | `MiniMax H3 一键高清放大 - Star7` | 将采样结果直接放大至目标百万像素并可选短程高清修复;输出仍为标准 H3 采样结果,VAE 在节点外独立解码 | | `MiniMax H3 分块解码 - Star7` | 独立解码完整 H3 音视频 latent;视频使用当前 H3 VAE 自带的时序流式与空间分块路径 | | `MiniMax H3 一键人脸修复 - Star7` | 接收采样后的 H3 音视频 latent,检测、跟踪并局部修脸;保留独立修复裁切,由 Star7 分块解码在最终 RGB 图像上贴回 | 三个载入节点均支持将对应文件直接拖到节点上完成载入;它们都是独立工具,不会向模型注入注意力或精度补丁。 多合一条件节点会在已连接素材后显示提示词标签:``、`