RunningHub MiniMax H3 Qwen3-VL Loader (Direct) (Legacy)
The Qwen3-VL Loader Behind Every MiniMax H3 Prompt
- h3_text_encoder
Every MiniMax H3 workflow has one of these somewhere, because H3 doesn't use a little CLIP-style text encoder - its prompt understanding comes from a Qwen3-VL-32B model. That's right, a 32-billion-parameter vision-language model is the "text encoder." This legacy node loads that encoder in-process and hands it to the encode nodes that actually turn your prompt into conditioning.
H3's omni-modal design is why the encoder is this beefy. It's not just reading your words - it has to fuse text, image, video and audio into one shared context, so the DiT can generate picture and sound together. A dinky CLIP isn't up to that job. The flip side: this thing is a real chunk of VRAM sitting in your graph before you've generated a single frame, which is exactly why the pack's INT8 ConvRot quantization of qwen3-vl-32b-int8_convrot.safetensors matters.
Inputs
- model_root - weights root,
models/MiniMax-H3-INT8-CONVROT(oldmodels/MiniMax-H3layout accepted). All components from one root. - dtype -
auto,bfloat16,float16, orfloat32. Note this one offers float32 where the DiT loaders don't; still,auto/bf16is the sane default. - text_encoder_path - the explicit encoder file, default
qwen3-vl-32b-int8_convrot.safetensors. Explicit means no auto-swap.
Output is a single h3_text_encoder handle - MINIMAX_H3_TEXT_ENCODER - that plugs into RHMiniMaxH3FL2VAEncode, RHMiniMaxH3Ref2VAEncode, or the T2VA text-encode node.
How it works
Under the hood this loads the Qwen3-VL-32B layer-50 conditioning encoder directly in your ComfyUI process - again, no SGLang server, no Diffusers pipeline, no API call. The pack keeps the encoder as a separate component because you want it loaded once and shared across whatever generation path you're running. It's also the component most likely to be lazily imported, so the first use after install can feel slow while transformers and the encoder weights spin up - that's normal.
Install and models
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI-RH-MiniMax-H3.git
pip install -r ComfyUI-RH-MiniMax-H3/requirements.txt
Restart ComfyUI. The pack's requirements.txt pins transformers>=4.57.0 among the usual suspects (accelerate, safetensors, einops, sentencepiece, numpy, Pillow) - the Qwen3-VL encoder needs a recent transformers, so don't downgrade it to chase an old workflow. Then the ~95 GiB bundle into ComfyUI/models/MiniMax-H3-INT8-CONVROT/.
Two standing gotchas. First, the license: MiniMax H3's Community License excludes the US, EU, UK and South Korea from running the local weights. Second, the modern path: for new workflows the pack now wants RHMiniMaxH3TextEncoderLoader (no "Direct," no partition choice, because both partitions ship the same encoder). This legacy node still loads fine for old graphs - that's its whole reason for existing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_root | COMBO | 选择 MiniMax-H3 权重根目录:专属根 models/MiniMax-H3-INT8-CONVROT(兼容 models/MiniMax-H3)(<类型>/<分区>/<模型>,放量化与合并产物),或 models/diffusers 下的官方 release 根(含 FL2VA/Ref2VA 分片子目录)。三个组件必须来自同一个根。 | |
| dtype | COMBO | auto | 4 options: auto, bfloat16, float16, float32 |
| text_encoder_path | COMBO | qwen3-vl-32b-int8_convrot.safetensors | 必须明确选择文本编码器模型名(权重文件名或逻辑名);不会再自动切换量化/BF16 权重。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| h3_text_encoder | MINIMAX_H3_TEXT_ENCODER | — |