Nodes/VELVET VICE — MiniMax H3/VELVET VICE MiniMax H3 — System Hub
ComfyUI Node

VELVET VICE MiniMax H3 — System Hub

The single panel that runs your whole MiniMax H3 backend — and the second sampler hiding inside it

By Velvet-Vice·Created 21 days ago·Updated 18 days ago· 3
VELVET VICE MiniMax H3 — System Hub
    • model_config
    • video_vae_name
    • audio_vae_name
    • ready
    • status
    • turbo_config
    • refine_enabled
    • refine_steps
    • refine_denoise
    • refine_preserve_audio
    • refine_reencode_enabled
    • refine_reencode_scale
    • refine_status
    ◄model_backendAUTO►
    ◄auto_preferenceNATIVE►
    ◄native_modelAUTO►
    ◄gguf_modelAUTO►
    ◄text_encoderAUTO►
    ◄video_vaeAUTO►
    ◄audio_vaeAUTO►
    ◄turbo_loraAUTO►
    ◄turbo_model_strength1.00►
    ◄base_steps20►
    ◄turbo_steps8►
    ◄quality_refine_enabledfalse►
    ◄quality_refine_modeLIGHT►
    ◄quality_refine_custom_steps8►
    ◄quality_refine_custom_denoise0.18►
    ◄quality_refine_preserve_audiotrue►
    ◄quality_refine_reencode_enabledfalse►
    ◄quality_refine_reencode_scale1.25►
    ◄strict_turbo_compatibilitytrue►
    ◄turbo_bypass_on_missingtrue►
    ◄native_weight_dtypedefault►
    ◄text_encoder_devicedefault►
    ◄fallback_if_missingtrue►
    ◄unload_on_backend_changetrue►

    If the Velvet VICE MiniMax H3 pack has a captain's chair, this is it. The System Hub is the one surface where you decide how the whole local H3 stack is going to run - native weights or GGUF, which text encoder, which of the two VAEs, whether the turbo LoRA path is on, and since v1.4.5, whether a second "Quality Refine" sampling pass runs after the first.

    Here's the part that trips people up, so get it early: the hub resolves and validates, but it does not load. It's not a giant loader. It checks what's installed, picks a coherent combination, and hands you a custom model_config object plus a bunch of _name strings and booleans. Separate internal router nodes - the Model Router, VAE Router, Turbo Director - do the actual heavy lifting after a prompt barrier fires. That split is deliberate: model loading only starts once preflight has confirmed the files and RAM are there, so you don't blow up 30 seconds in because you forgot the audio VAE.

    The inputs worth knowing:

    • model_backend - AUTO / NATIVE / GGUF. AUTO tries NATIVE first (or GGUF first, per auto_preference) and falls back to whichever is actually usable when fallback_if_missing is on.
    • native_model / gguf_model / text_encoder / video_vae / audio_vae / turbo_lora - all AUTO by default, each listing what you actually have installed. Text encoder is the interesting one: one selector covers both native safetensors and GGUF Qwen encoders and routes to the matching loader automatically. GGUF only works if you have the ComfyUI-GGUF extension installed, and the audio VAE must stay native - there's no GGUF VAE loader.
    • native_weight_dtype - default plus the fp8 family. If the full-precision stack won't fit, fp8 here is the first lever. text_encoder_device can pin the Qwen encoder to cpu, which is a real escape hatch because that 32B-class encoder is a second VRAM budget all by itself.
    • base_steps / turbo_steps - 20 / 8 by default; turbo only matters when a compatible turbo LoRA is installed.
    • The Quality Refine block (v1.4.5): quality_refine_enabled is OFF by default and when off it's a true lazy bypass - pass 2 is never even requested. Turn it on and pick LIGHT (denoise 0.12), HIGH (0.20), or CUSTOM (denoise 0.01–0.35, steps 1–16). quality_refine_preserve_audio keeps pass-1 audio while pass 2 refines the video latent. This is a classic second-sampler trick - sample fast, then clean up with a low-denoise re-run - folded into the hub instead of a loose test panel.

    Outputs: model_config (the custom dict that feeds the internal routers), video_vae_name and audio_vae_name (strings), ready (a BOOLEAN - the whole pack keys off it), status (read it: when ready is false, status tells you which file or plugin is missing), turbo_config, and the refine outputs (refine_enabled, refine_steps, refine_denoise, refine_preserve_audio, refine_status).

    Install and the files it wants

    cd ComfyUI/custom_nodes
    git clone https://github.com/Velvet-Vice/velvet-vice-minimax-h3
    

    Restart, or use Manager and search "velvet-vice-minimax-h3". No pip dependencies. It expects, in the usual model folders:

    • diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors (native) or a GGUF equivalent
    • a Qwen3-VL H3 text encoder (qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors native, or GGUF)
    • vae/minimax_h3_video_vae_fp16.safetensors and vae/minimax_h3_audio_vae_fp32.safetensors
    • optionally loras/minimax_h3_fl2v_turbo_8step_v1.0_comfyui_bf16.safetensors

    Where people get burned

    ready = false almost always means one file is missing or a GGUF VAE snuck in - the status string names it. If the hub says the backend is "not usable," check that ComfyUI-GGUF is actually installed before blaming the model. And remember the licensing reality of H3 itself: the official weights' community license excludes the US, EU, UK and Korea, so double-check you're allowed to run them where you are before committing a weekend of VRAM to it.

    CategoryVELVET VICE/MiniMax H3

    Inputs (24)

    NameTypeDefaultDescription
    model_backendCOMBOAUTO3 options: AUTO, NATIVE, GGUF
    auto_preferenceCOMBONATIVE2 options: NATIVE, GGUF
    native_modelCOMBOAUTO1 options: AUTO
    gguf_modelCOMBOAUTO1 options: AUTO
    text_encoderCOMBOAUTO1 options: AUTO
    video_vaeCOMBOAUTO1 options: AUTO
    audio_vaeCOMBOAUTO1 options: AUTO
    turbo_loraCOMBOAUTO1 options: AUTO
    turbo_model_strengthFLOAT1.00-4–4—
    base_stepsINT201–80—
    turbo_stepsINT81–80—
    quality_refine_enabledBOOLEANfalse—
    quality_refine_modeCOMBOLIGHT3 options: LIGHT, HIGH, CUSTOM
    quality_refine_custom_stepsINT81–16—
    quality_refine_custom_denoiseFLOAT0.180.01–0.35—
    quality_refine_preserve_audioBOOLEANtrue—
    quality_refine_reencode_enabledBOOLEANfalse—
    quality_refine_reencode_scaleFLOAT1.251–2—
    strict_turbo_compatibilityBOOLEANtrue—
    turbo_bypass_on_missingBOOLEANtrue—
    native_weight_dtypeCOMBOdefault4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    text_encoder_deviceCOMBOdefault2 options: default, cpu
    fallback_if_missingBOOLEANtrue—
    unload_on_backend_changeBOOLEANtrue—

    Outputs (13)

    NameTypeDescription
    model_configVELVET_VICE_H3_MODEL_CONFIG—
    video_vae_nameSTRING—
    audio_vae_nameSTRING—
    readyBOOLEAN—
    statusSTRING—
    turbo_configVELVET_VICE_H3_TURBO_CONFIG—
    refine_enabledBOOLEAN—
    refine_stepsINT—
    refine_denoiseFLOAT—
    refine_preserve_audioBOOLEAN—
    refine_reencode_enabledBOOLEAN—
    refine_reencode_scaleFLOAT—
    refine_statusSTRING—