Nodes/VELVET VICE — MiniMax H3/VELVET VICE MiniMax H3 — Native / GGUF Model Router
ComfyUI Node

VELVET VICE MiniMax H3 — Native / GGUF Model Router

The switchman that unloads native H3 before a GGUF render takes the track

By Velvet-Vice·Created 10 days ago·Updated 7 days ago· 2
VELVET VICE MiniMax H3 — Native / GGUF Model Router
  • model_config
  • model
  • clip
  • status
barrier

H3 can run from two different weight formats: native safetensors or GGUF quantized files. The VelvetViceMiniMaxH3ModelRouter is the internal node that picks which one actually gets loaded - and, more interestingly, remembers what it loaded last so it can unload the old path before the new one arrives. With a 33B model, "just load both and switch" isn't an option. VRAM won't hold it, and neither will your patience.

This is the loader node inside the H3 System Hub's subgraph. On its own it does nothing user-facing; it consumes the System Hub's decision and materializes a real MODEL.

How it works

The router takes two inputs: model_config (a VELVET_VICE_H3_MODEL_CONFIG bundle from the System Hub) and a barrier (STRING). The barrier matters - it's the workflow's way of sequencing. The router is described as "prompt-first": it executes only after the prompt and system-check barrier has passed, so model loading waits until the preflight has confirmed the graph is sane.

Inside, it reads the config, and refuses to run if the System Hub hasn't declared itself ready (ready must be true - otherwise it raises a "non-ready System Hub configuration" error rather than loading garbage). Then it compares the requested backend (NATIVE or GGUF) and model name against what it loaded on the previous execution. If the backend or file changed, it unloads the old model first, then loads the new one through the right path - the native loader or the GGUF loader. Output is model (MODEL), clip (CLIP), and a status string that tells you which backend won.

That unload-on-change behavior is the part worth understanding, because it's exactly where a naive graph goes wrong: switch from native to GGUF in a plain workflow and both models sit in memory while ComfyUI sorts out the graph change. This router does the memory management for you.

Inputs and outputs

  • model_config (VELVET_VICE_H3_MODEL_CONFIG) - the System Hub's resolved backend/model choice.
  • barrier (STRING) - gate from the prompt/system-check stage.

Outputs: model (MODEL), clip (CLIP), status (STRING).

Install and when you'd see it

Install the pack the usual way and this node ships with it:

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

then restart. GGUF loading also assumes ComfyUI-GGUF is present; the pack's CLIP loader is explicit about that requirement on the encoder side, and the same dependency governs quantized diffusion loading here.

You won't hand-place this node - it's the internal muscle of the System Hub subgraph. Its real debugging value is the status output and the console: if you flip the model backend and see stale VRAM or an "old model still resident" error, the router's unload path is the first suspect. And if you get the non-ready-config error, the problem isn't the router at all - it's that the System Hub hasn't finished resolving files, so look upstream before blaming the switchman.

CategoryVELVET VICE/MiniMax H3/Internal

Inputs (2)

NameTypeDefaultDescription
model_configVELVET_VICE_H3_MODEL_CONFIG
barrierSTRING

Outputs (3)

NameTypeDescription
modelMODEL
clipCLIP
statusSTRING