fix: emit quant format key in INT8ModelSave; add MiniMax H3 model types - #99
Open
plz12345 wants to merge 1 commit into
Open
fix: emit quant format key in INT8ModelSave; add MiniMax H3 model types#99plz12345 wants to merge 1 commit into
plz12345 wants to merge 1 commit into
Conversation
INT8ModelSave omitted "format" from comfy_quant, so comfy.ops could not
dispatch and core's UNETLoader failed with "Unknown quantization format"
on every checkpoint this node writes. Other int8 ConvRot checkpoints in
the wild carry {"format": "int8_tensorwise", "convrot": true, ...}.
Also adds MiniMax H3 exclusion lists (BobJohnson24#95): without an entry the list is
empty and adaln_proj (in_features 8), video_patch_proj (96) and
audio_patch_proj (32) get quantized with no rotation, since ConvRot needs
in_features % 256 == 0. The skip-edges variant additionally keeps the
first/last two transformer blocks in BF16.
patientx
added a commit
to patientx/ComfyUI-INT8-Fast-ROCM
that referenced
this pull request
Aug 25, 2026
Added support for minimaxH3 Credit: plz12345, upstream PR BobJohnson24#99 (BobJohnson24#99)
|
merged this with my fork, credited you of course. thanks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1.
INT8ModelSavewrites checkpoints core ComfyUI can't loadquant_confomitsformat, andcomfy/ops.pydispatches on exactly that key, so anycheckpoint saved by this node fails in core's
UNETLoader:It loads fine through
OTUNetLoaderW8A8, which detects int8 by tensor dtype — so thebreakage only shows up when someone uses the saved file with the native loader. Published
INT8 ConvRot checkpoints carry
{"format": "int8_tensorwise", "convrot": true, "convrot_groupsize": 256}; this makes the save node emit the same. Weights and scales areunchanged, and core has native
int8_tensorwise+ ConvRot support.2. MiniMax H3 model types (#95)
With no H3 entry the exclusion list is empty, so
adaln_proj(in_features 8),video_patch_proj(96) andaudio_patch_proj(32) get quantized with no rotation — ConvRotneeds
in_features % 256 == 0. Excluding them leaves the 200blocks.Nattn/mlp linears,which is the layout of the H3 INT8 ConvRot checkpoints already in circulation.
minimax h3 skip edgesadditionally keeps blocks 0, 1, 48 and 49 in BF16, matching the_skip_edgesbuilds on HF (+~1.5 GB on a 21 GB checkpoint).Testing
10Eros Max H3 fl2va (BF16, 40 GB) quantized on a 5090 with both entries:
UNETLoaderminimax h3minimax h3 skip edgesAll
comfy_quantpayloads decode to{"format": "int8_tensorwise", "convrot": true, "convrot_groupsize": 256, "per_row": true}, and both files also still load throughOTUNetLoaderW8A8with on-the-fly quantization off.