Nodes/VELVET VICE — MiniMax H3/VELVET VICE MiniMax H3 — Refine Conditioning Switch
ComfyUI Node

VELVET VICE MiniMax H3 — Refine Conditioning Switch

The lazy bouncer that stops Quality Refine's conditioning from ever running when it's off

By Velvet-Vice·Created 10 days ago·Updated 7 days ago· 2
VELVET VICE MiniMax H3 — Refine Conditioning Switch
  • base_conditioning
  • refined_conditioning
  • conditioning
enabledfalse

ComfyUI graphs lie about cost. A node can be wired into your workflow and still do nothing, because ComfyUI has a trick called lazy evaluation: a node can tell the executor exactly which of its inputs it actually needs, and anything feeding an input nobody asked for simply never executes. That trick is the entire personality of this node. It's a selector that decides which conditioning - the pass-1 prompt conditioning or the pass-2 "refined" one - actually gets built and fed to the sampler.

Why a second conditioning exists at all

In the Velvet Vice MiniMax H3 pack (v1.5.0), Quality Refine is a second sampling pass that runs after the primary H3 pass, before final VAE decode, at low denoise (LIGHT 0.12, HIGH 0.20, CUSTOM up to 0.35). On the simple route both passes share the same conditioning, so a switch looks pointless. But on the Decode → Upscale → Re-Encode route, pass 2 samples at a higher, re-encoded resolution - and that pass usually wants conditioning built for that new geometry, not the pass-1 resolution's. That's where refined_conditioning comes from.

So the switch answers one question: which refine path are we actually on? Its enabled input (boolean, defaults to false) picks the side.

  • enabled = false → it requests base_conditioning (pass-1 conditioning). The refined side is never built, never runs.
  • enabled = true → it requests refined_conditioning - the conditioning built for the re-encoded, higher-resolution pass 2.

Both conditioning inputs are marked lazy, which is what makes the skipped side cost nothing. This is the same mechanism as its sibling VelvetViceMiniMaxH3LatentRefineSwitch - one gates the latent branch, this one gates the conditioning branch, and together they're why an inactive refine path genuinely bypasses the second sampler instead of just ignoring its output. You're not paying VRAM or seconds for a branch that isn't executing.

Wiring it

Inputs: enabled (BOOL, default false), base_conditioning and refined_conditioning (both CONDITIONING, forced input). Output: a single conditioning wire that feeds the second sampler's conditioning slot.

If you're reading this because you found the node dangling in a downloaded workflow, leave it alone - it's VELVET VICE/MiniMax H3/Internal, pre-wired by the v1.5.0 graph. The one thing you'll actually meet is its error: if the switch is set to the re-encode side but that refined-conditioning branch is missing or badly spliced, it raises [VELVET VICE] Re-encode refine conditioning is unavailable instead of silently sampling with the wrong conditioning. That error means the workflow's higher-resolution conditioning side is broken - reload the current workflow rather than trying to repair the splice by feel.

Installing the pack

Not a standalone install - this lives in the Velvet Vice MiniMax H3 pack. ComfyUI Manager → Install Custom Nodes → search velvet-vice-minimax-h3 → install → restart, or:

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

Restart ComfyUI after cloning. No extra pip dependencies; you do need a ComfyUI build that can run MiniMax H3 locally (model + H3 VAEs installed). One license footnote: the H3 Community License excludes the US, EU, UK and Korea from running the local weights, so check that before you invest in this stack.

CategoryVELVET VICE/MiniMax H3/Internal

Inputs (3)

NameTypeDefaultDescription
enabledBOOLEANfalse
base_conditioningCONDITIONING
refined_conditioningCONDITIONING

Outputs (1)

NameTypeDescription
conditioningCONDITIONING