ComfyUI Node

Lazy Model Switcher

Two MiniMax UNETs, one sampler path

By vsaan212·Created 10 months ago·Updated 9 days ago· 1
Lazy Model Switcher
  • ref2video_model
  • text_img_fl2v_model
  • MODEL
selector_in

MiniMax H3 has a quirk that breaks the "one model, one sampler" assumption: reference-to-video (R2V) uses different UNET weights than text-to-video, image-to-video, and first/last-frame video. That means a single workflow that does all four modes either carries two full sampler branches, or you bypass one loader by hand every time you switch. The Lazy Model Switcher is the third option - keep one sampler, wire both models in, and let the mode string pick which one actually gets sampled.

It slots into the pack's wider design: the Lazy Global Selector emits a mode string, this node reads it, and the rest of your graph stays untouched. Change one dropdown and the model feeding your sampler changes with it.

How it works

The mechanism is deliberately small. You connect two models:

  • text_img_fl2v_model - the UNET used for T2V, I2V, and FL2V (first+last frame).
  • ref2video_model - the UNET used for R2V (reference-to-video).

Then selector_in decides between them. If the mode resolves to R2V, you get ref2video_model; anything else gets text_img_fl2v_model. The output is a single MODEL that feeds straight into your sampler.

The node doesn't care where the mode string came from - Lazy Global Selector's global_Selector_output or LazyPrompt's selector_Out both work - and it's tolerant of how the mode is spelled. The pack's shared mode resolver normalizes aliases (fl2va, ref2va, fl, fflf, ...) down to canonical modes and can even dig a [Workflow] tag out of a multi-line blob from the automation node. In practice you feed it bare R2V or FL2V and it just works.

What you'll actually touch

Only the three inputs exist, and only selector_in is a value you think about:

  • selector_in - the mode string. Wire it from a Lazy Global Selector (or any node emitting a mode). Leave it empty and it defaults to the non-R2V path, which is a fine fallback.
  • ref2video_model / text_img_fl2v_model - the two UNETs, from your model loaders.

One thing to be clear about: this node doesn't load or find model files for you. It takes MODEL sockets, so you still need your MiniMax H3 checkpoints loaded upstream (which, on a current ComfyUI with native H3 support, is ComfyUI's own loader + the H3 wrapper nodes). The pack ships no weights and downloads nothing.

Where it shines

If you're running the full Vsaan212 stack - global selector, image loader with roles, the MiniMax all-in-one conditioner, this switcher - then a mode change updates the model, the images, and the conditioning in one move. The alternative, two parallel sampler branches wired to two models, is exactly the kind of graph that silently drifts when you forget which branch is live.

It's also genuinely redundant outside that stack. If your workflow only ever does I2V, you don't need a model switcher - you need one model. Reach for it when R2V is actually in your rotation.

Installing it

This node ships in vsaan212/Vsaan212-workflow-utilities (MIT). Install from ComfyUI Manager by searching Vsaan212-workflow-utilities, or:

cd ComfyUI/custom_nodes
git clone https://github.com/vsaan212/Vsaan212-workflow-utilities

Restart ComfyUI and look under vsaan212/automation. No models, no API keys, no extra Python deps for the switcher itself. The real requirement lives upstream: working MiniMax H3 nodes need a recent ComfyUI (0.30+ for the native H3 integration this pack is built on). If your ComfyUI is older, H3 support is the thing to update first.

Categoryvsaan212/automation

Inputs (3)

NameTypeDefaultDescription
ref2video_modelMODEL
text_img_fl2v_modelMODEL
selector_inSTRINGWorkflow mode from Lazy Global Selector or Prompt Engineer selector_Out (bare or tagged). R2V → ref2video_model; else → text/img/FL2V model.

Outputs (1)

NameTypeDescription
MODELMODEL