MiniMax H3 should sample normally with the comfy kitchen attention backend on an int8-convrot quantized checkpoint, or fail gracefully with a clear message if that combination isn't supported.
Crashes immediately on step 0/20 with RuntimeError: quant_qk_per_thread_int8: Q/K base pointers and B/H/N strides must preserve 4-element alignment, thrown from comfy_kitchen's sage_sdpa_quantize kernel.
Load the standard MiniMax H3 T2V template workflow (attached).
Add a ModelAttentionBackend node between UNETLoader and the sampler chain, set attention = comfy kitchen attention.
Use an int8-convrot H3 checkpoint (minimax_h3_fl2va_pruned_int8_convrot.safetensors + qwen3vl_32b_minimax_h3_int8_convrot.safetensors).
Queue prompt.
b4ldur@b4ldur-B650M-D3HP:~$ /home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/bin/python3 -s /home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/main.py --listen 127.0.0.1 --disable-all-custom-nodes
[INFO] setup plugin alembic.autogenerate.schemas
[INFO] setup plugin alembic.autogenerate.tables
[INFO] setup plugin alembic.autogenerate.types
[INFO] setup plugin alembic.autogenerate.constraints
[INFO] setup plugin alembic.autogenerate.defaults
[INFO] setup plugin alembic.autogenerate.comments
[INFO] Adding extra search path diffusion_models /media/b4ldur/Windows/Comfysage/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/models/diffusion_models
[INFO] Adding extra search path loras /media/b4ldur/Windows/Comfysage/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/models/loras
[INFO] Adding extra search path audio_encoders /media/b4ldur/Files1/models/audio_encoders
[INFO] Adding extra search path checkpoints /media/b4ldur/Files1/models/checkpoints
[INFO] Adding extra search path clip /media/b4ldur/Files1/models/clip
[INFO] Adding extra search path clip_vision /media/b4ldur/Files1/models/clip_vision
[INFO] Adding extra search path configs /media/b4ldur/Files1/models/configs
[INFO] Adding extra search path controlnet /media/b4ldur/Files1/models/controlnet
[INFO] Adding extra search path diffusers /media/b4ldur/Files1/models/diffusers
[INFO] Adding extra search path diffusion_models /media/b4ldur/Files1/models/diffusion_models
[INFO] Adding extra search path embeddings /media/b4ldur/Files1/models/embeddings
[INFO] Adding extra search path fishaudios2 /media/b4ldur/Files1/models/fishaudioS2
[INFO] Adding extra search path flashvsr-v1.1 /media/b4ldur/Files1/models/FlashVSR-v1.1
[INFO] Adding extra search path gguf /media/b4ldur/Files1/models/gguf
[INFO] Adding extra search path gligen /media/b4ldur/Files1/models/gligen
[INFO] Adding extra search path hypernetworks /media/b4ldur/Files1/models/hypernetworks
[INFO] Adding extra search path image-saver /media/b4ldur/Files1/models/image-saver
[INFO] Adding extra search path inpaint /media/b4ldur/Files1/models/inpaint
[INFO] Adding extra search path ipadapter /media/b4ldur/Files1/models/ipadapter
[INFO] Adding extra search path latent_upscale_models /media/b4ldur/Files1/models/latent_upscale_models
[INFO] Adding extra search path llm /media/b4ldur/Files1/models/LLM
[INFO] Adding extra search path mediapipe /media/b4ldur/Files1/models/mediapipe
[INFO] Adding extra search path model_patches /media/b4ldur/Files1/models/model_patches
[INFO] Adding extra search path models /media/b4ldur/Files1/models/models
[INFO] Adding extra search path onnx /media/b4ldur/Files1/models/onnx
[INFO] Adding extra search path photomaker /media/b4ldur/Files1/models/photomaker
[INFO] Adding extra search path pulid /media/b4ldur/Files1/models/pulid
[INFO] Adding extra search path qwen-tts /media/b4ldur/Files1/models/qwen-tts
[INFO] Adding extra search path rembg /media/b4ldur/Files1/models/rembg
[INFO] Adding extra search path rmbg /media/b4ldur/Files1/models/RMBG
[INFO] Adding extra search path sam3 /media/b4ldur/Files1/models/sam3
[INFO] Adding extra search path sams /media/b4ldur/Files1/models/sams
[INFO] Adding extra search path seedvr2 /media/b4ldur/Files1/models/SEEDVR2
[INFO] Adding extra search path sonic /media/b4ldur/Files1/models/sonic
[INFO] Adding extra search path style_models /media/b4ldur/Files1/models/style_models
[INFO] Adding extra search path text_encoders /media/b4ldur/Files1/models/text_encoders
[INFO] Adding extra search path ultralytics /media/b4ldur/Files1/models/ultralytics
[INFO] Adding extra search path unet /media/b4ldur/Files1/models/unet
[INFO] Adding extra search path upscale_models /media/b4ldur/Files1/models/upscale_models
[INFO] Adding extra search path vae /media/b4ldur/Files1/models/vae
[INFO] Adding extra search path vae_approx /media/b4ldur/Files1/models/vae_approx
[INFO] Adding extra search path vibevoice /media/b4ldur/Files1/models/vibevoice
[INFO] Adding extra search path vitmatte /media/b4ldur/Files1/models/vitmatte
[INFO] Adding extra search path wildcards /media/b4ldur/Files1/models/wildcards
[INFO] Adding extra search path yolo /media/b4ldur/Files1/models/yolo
/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/cuda/__init__.py:63: FutureWarning: The pynvml package is deprecated. Please install nvidia-ml-py instead. If you did not install pynvml directly, please report this to the maintainers of the package that installed pynvml for you.
import pynvml # type: ignore[import]
[INFO] Found comfy_kitchen backend triton: {'available': True, 'disabled': True, 'unavailable_reason': None, 'capabilities': ['adaln', 'apply_rope', 'apply_rope1', 'apply_rope1_', 'apply_rope_', 'apply_rope_split_half', 'apply_rope_split_half1', 'apply_rope_split_half1_', 'apply_rope_split_half_', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'int8_linear', 'na3d', 'quantize_and_rotate_rowwise', 'quantize_int8_rowwise', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'rms_adaln', 'rms_rope', 'rms_rope1', 'rms_rope1_', 'rms_rope_', 'rms_rope_split_half', 'rms_rope_split_half1', 'rms_rope_split_half1_', 'rms_rope_split_half_', 'w4a8_int8_linear']}
[INFO] Found comfy_kitchen backend eager: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['adaln', 'apply_rope', 'apply_rope1', 'apply_rope1_', 'apply_rope_', 'apply_rope_split_half', 'apply_rope_split_half1', 'apply_rope_split_half1_', 'apply_rope_split_half_', 'convrot_w4a4_linear', 'dequantize_convrot_w4a4_weight', 'dequantize_int8_convrot_weight', 'dequantize_int8_convrot_weight_dtype', 'dequantize_int8_embedding', 'dequantize_int8_simple', 'dequantize_int8_simple_dtype', 'dequantize_mxfp8', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'dequantize_w4a8_int8_weight', 'gemv_awq_w4a16', 'int8_linear', 'na3d', 'prepare_int4_weight_for_int8_linear', 'quantize_and_rotate_rowwise', 'quantize_convrot_w4a4_weight', 'quantize_int8_convrot_weight', 'quantize_int8_rowwise', 'quantize_int8_tensorwise', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'quantize_w4a8_int8_weight', 'rms_adaln', 'rms_rope', 'rms_rope1', 'rms_rope1_', 'rms_rope_', 'rms_rope_split_half', 'rms_rope_split_half1', 'rms_rope_split_half1_', 'rms_rope_split_half_', 'rotate_int8_convrot_weight', 'scaled_mm_mxfp8', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8', 'w4a8_int8_linear']}
[INFO] Found comfy_kitchen backend cuda: {'available': True, 'disabled': False, 'unavailable_reason': None, 'capabilities': ['adaln', 'apply_rope', 'apply_rope1', 'apply_rope1_', 'apply_rope_', 'apply_rope_split_half', 'apply_rope_split_half1', 'apply_rope_split_half1_', 'apply_rope_split_half_', 'convrot_w4a4_linear', 'dequantize_convrot_w4a4_weight', 'dequantize_int8_convrot_weight', 'dequantize_int8_convrot_weight_dtype', 'dequantize_int8_simple', 'dequantize_int8_simple_dtype', 'dequantize_nvfp4', 'dequantize_per_tensor_fp8', 'dequantize_w4a8_int8_weight', 'gemv_awq_w4a16', 'int8_linear', 'na3d', 'prepare_int4_weight_for_int8_linear', 'quantize_and_rotate_rowwise', 'quantize_convrot_w4a4_weight', 'quantize_int8_convrot_weight', 'quantize_int8_rowwise', 'quantize_int8_tensorwise', 'quantize_mxfp8', 'quantize_nvfp4', 'quantize_per_tensor_fp8', 'quantize_svdquant_w4a4', 'quantize_w4a8_int8_weight', 'rms_adaln', 'rms_rope', 'rms_rope1', 'rms_rope1_', 'rms_rope_', 'rms_rope_split_half', 'rms_rope_split_half1', 'rms_rope_split_half1_', 'rms_rope_split_half_', 'rotate_int8_convrot_weight', 'scaled_mm_nvfp4', 'scaled_mm_svdquant_w4a4', 'stochastic_rounding_fp8', 'w4a8_int8_linear']}
[INFO] Found comfy_kitchen backend hip: {'available': False, 'disabled': False, 'unavailable_reason': 'PyTorch ROCm/HIP runtime not available', 'capabilities': []}
[INFO] Checkpoint files will always be loaded safely.
[INFO] Total VRAM 15819 MB, total RAM 95656 MB
[INFO] pytorch version: 2.9.1+cu130
[INFO] Set vram state to: NORMAL_VRAM
[INFO] Device: cuda:0 NVIDIA GeForce RTX 5070 Ti : cudaMallocAsync
[INFO] Using async weight offloading with 2 streams
[INFO] Enabled pinned memory 81320
[INFO] working around nvidia conv3d memory bug.
[INFO] Using pytorch attention
[INFO] aimdo: /project/src/control.c:276:INFO:comfy-aimdo inited for GPU: NVIDIA GeForce RTX 5070 Ti (VRAM: 15819 MB)
[INFO] DynamicVRAM support detected and enabled
[INFO] Python version: 3.12.10 (main, Apr 16 2026, 18:09:14) [GCC 13.3.0]
[INFO] ComfyUI version: 0.32.0
[INFO] comfy-aimdo version: 0.4.13
[INFO] comfy-kitchen version: 0.2.30
[INFO] comfyui-frontend-package version: 1.48.7
[INFO] comfyui-workflow-templates version: 0.11.40
[INFO] comfyui-embedded-docs version: 0.5.9
[INFO] comfy-kitchen version: 0.2.30
[INFO] comfy-aimdo version: 0.4.13
[INFO] [Prompt Server] web root: /home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/comfyui_frontend_package/static
[INFO] Asset seeder disabled
[INFO] No OpenGL_accelerate module loaded: No module named 'OpenGL_accelerate'
[INFO] Skipping loading of custom nodes
[INFO] Context impl SQLiteImpl.
[INFO] Will assume non-transactional DDL.
[INFO] Using RAM pressure cache.
[INFO] Starting server
[INFO] To see the GUI go to: http://127.0.0.1:8188
[INFO] got prompt
[INFO] VAE load device: cuda:0, offload device: cpu, dtype: torch.float32
[INFO] VAE load device: cuda:0, offload device: cpu, dtype: torch.float16
[INFO] Found quantization metadata version 1
[INFO] Using MixedPrecisionOps for text encoder
[INFO] CLIP/text encoder model load device: cuda:0, offload device: cpu, current: cpu, dtype: torch.float16
[INFO] Requested to load MiniMaxH3TEModel_
[INFO] Model MiniMaxH3TEModel_ prepared for dynamic VRAM loading. 25882MB Staged. 0 patches attached. Force pre-loaded 310 weights: 1272 KB.
[INFO] Found quantization metadata version 1
[INFO] Detected mixed precision quantization
[INFO] Using mixed precision operations
[INFO] Native ops: int8_tensorwise, asym_w4a8_int8, convrot_w4a4, float8_e4m3fn, float8_e5m2, nvfp4 , emulated ops: mxfp8
[INFO] model weight dtype torch.bfloat16, manual cast: torch.bfloat16
[INFO] model_type FLOW_AV
[INFO] Requested to load MiniMaxH3
[INFO] 0 models unloaded.
[INFO] Model MiniMaxH3 prepared for dynamic VRAM loading. 19995MB Staged. 0 patches attached. Force pre-loaded 210 weights: 1175 KB.
0%| | 0/20 [00:00<?, ?it/s, Model Initializing ... ]
[ERROR] !!! Exception during processing !!! quant_qk_per_thread_int8: Q/K base pointers and B/H/N strides must preserve 4-element alignment
[ERROR] Traceback (most recent call last):
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/execution.py", line 545, in execute
output_data, output_ui, has_subgraph, has_pending_tasks = await get_output_data(prompt_id, unique_id, obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/execution.py", line 344, in get_output_data
return_values = await _async_map_node_over_list(prompt_id, unique_id, obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb, v3_data=v3_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/execution.py", line 318, in _async_map_node_over_list
await process_inputs(input_dict, i)
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/execution.py", line 306, in process_inputs
result = f(**inputs)
^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy_api/internal/__init__.py", line 149, in wrapped_func
return method(locked_class, **inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy_api/latest/_io.py", line 1990, in EXECUTE_NORMALIZED
to_return = cls.execute(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy_extras/nodes_custom_sampler.py", line 1055, in execute
samples = guider.sample(noise.generate_noise(latent), latent_image, sampler, sigmas, denoise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=noise.seed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1335, in sample
output = executor.execute(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed, latent_shapes=latent_shapes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/patcher_extension.py", line 113, in execute
return self.original(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1262, in outer_sample
output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed, latent_shapes=latent_shapes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1237, in inner_sample
samples = executor.execute(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/patcher_extension.py", line 113, in execute
return self.original(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1005, in sample
samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, **self.extra_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 120, in decorate_context
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/k_diffusion/sampling.py", line 1460, in sample_res_multistep
return res_multistep(model, x, sigmas, extra_args=extra_args, callback=callback, disable=disable, s_noise=s_noise, noise_sampler=noise_sampler, eta=0., cfg_pp=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 120, in decorate_context
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/k_diffusion/sampling.py", line 1418, in res_multistep
denoised = model(x, sigmas[i] * s_in, **extra_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 640, in __call__
out = self.inner_model(x, sigma, model_options=model_options, seed=seed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1208, in __call__
return self.outer_predict_noise(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1215, in outer_predict_noise
).execute(x, timestep, model_options, seed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/patcher_extension.py", line 113, in execute
return self.original(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 1218, in predict_noise
return sampling_function(self.inner_model, x, timestep, self.conds.get("negative", None), self.conds.get("positive", None), self.cfg, model_options=model_options, seed=seed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 620, in sampling_function
out = calc_cond_batch(model, conds, x, timestep, model_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 211, in calc_cond_batch
return _calc_cond_batch_outer(model, conds, x_in, timestep, model_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 219, in _calc_cond_batch_outer
return executor.execute(model, conds, x_in, timestep, model_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/patcher_extension.py", line 113, in execute
return self.original(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/samplers.py", line 335, in _calc_cond_batch
output = model.apply_model(input_x, timestep_, **c).chunk(batch_chunks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/model_base.py", line 203, in apply_model
return comfy.patcher_extension.WrapperExecutor.new_class_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/patcher_extension.py", line 113, in execute
return self.original(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/model_base.py", line 247, in _apply_model
model_output = self.diffusion_model(xc, t, context=context, control=control, transformer_options=transformer_options, **extra_conds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1775, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1786, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/ldm/minimax/model.py", line 502, in forward
out = comfy.patcher_extension.WrapperExecutor.new_class_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/patcher_extension.py", line 113, in execute
return self.original(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/ldm/minimax/model.py", line 638, in _forward
h = block(h, t_emb, mod_segments, rope_freqs, transformer_options=transformer_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1775, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1786, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/ldm/minimax/model.py", line 261, in forward
x = _mod_gate(x, gate_msa, self.attn(h, rope_freqs=rope_freqs, transformer_options=transformer_options), mod_segments)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1775, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1786, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/ldm/minimax/model.py", line 172, in forward
out = optimized_attention(q, k, v, self.heads, mask=None, skip_reshape=True, transformer_options=transformer_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/ldm/modules/attention.py", line 191, in wrapper
return optimized_attention_override.container_function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/ComfyUI/comfy/ldm/modules/attention.py", line 628, in _attention_comfy_kitchen_int8_containers
quantized = comfy_kitchen.prequantize_int8_attention(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/b4ldur/ComfyUI-Easy-Install/ComfyUI-Easy-Install/python_embeded/lib/python3.12/site-packages/comfy_kitchen/sage_attention.py", line 322, in prequantize_int8_attention
_cuda_backend._C.sage_sdpa_quantize(
RuntimeError: quant_qk_per_thread_int8: Q/K base pointers and B/H/N strides must preserve 4-element alignment
[INFO] Prompt executed in 24.59 seconds
Custom Node Testing
Expected Behavior
MiniMax H3 should sample normally with the comfy kitchen attention backend on an int8-convrot quantized checkpoint, or fail gracefully with a clear message if that combination isn't supported.
video_minimax_h3_t2v (3).json
Actual Behavior
Crashes immediately on step 0/20 with RuntimeError: quant_qk_per_thread_int8: Q/K base pointers and B/H/N strides must preserve 4-element alignment, thrown from comfy_kitchen's sage_sdpa_quantize kernel.
Steps to Reproduce
Load the standard MiniMax H3 T2V template workflow (attached).
Add a ModelAttentionBackend node between UNETLoader and the sampler chain, set attention = comfy kitchen attention.
Use an int8-convrot H3 checkpoint (minimax_h3_fl2va_pruned_int8_convrot.safetensors + qwen3vl_32b_minimax_h3_int8_convrot.safetensors).
Queue prompt.
Debug Logs
Other
Likely related to #15263 — H3's attention call at comfy/ldm/minimax/model.py:172 doesn't pass low_precision_attention=False, unlike every other model using a low-precision-sensitive attention path in the tree. Suspect this is the same root cause surfacing through a different route (comfy_kitchen's int8 container instead of SageAttention). Workflow JSON attached.
video_minimax_h3_t2v (3).json