Model Router
Keep four checkpoints in one workflow and switch with a number
- MODEL
This is the useful one out of the pack's three routers. Wiring several checkpoints into a workflow normally means you either duplicate the whole graph per model or you keep re-pointing wires; Model Router collapses that into active_channel = 2.
The README's own framing is why it exists: the example workflow is four parallel sampling branches, A through D, each with its own model, and "the main model selection parameter is active_channel in the routers. Switching the channel allows you to quickly change the model, CLIP, and VAE for all branches simultaneously." Read that as a design note, not marketing - one integer is the master switch for a four-branch comparison run.
How it works
Two widgets, one output:
inputcount- INT, 6 to 30, default 6. Tooltip: "Number of input ports (6-30). Click 'Update inputs' to apply." Set it, hit the button, the node grows the ports.active_channel- INT, 1 to 30, default 1. "Which input to pass through (1-N)."- Output: MODEL.
That's the indexed-selector shape of a switch (an A/B switch generalised to N inputs), not the fallback shape. rgthree's Any Switch picks the first non-empty input on its own; this one does exactly what you tell it. Point active_channel at a port you never wired and you pass nothing through.
The wiring, and the trap nobody warns you about
Model loader → each port, output → the sampler's model input (in this pack, straight into CFG Sculptor Advanced's model). Simple. But the router picks what the sampler sees, it does not make the other branches free - every port is still an input to that node, so all your loaders execute and their checkpoints land in the model cache. Six ports isn't six models in VRAM, but it's not nothing either.
The real trap is architecture. One dial that changes the model is only safe if the rest of the stack changes with it:
- VAE - modern checkpoints bake theirs in, so attaching a foreign one is now the mistake rather than the fix. A model from the SD 1.5 lineage usually wants a separate VAE; anything since Flux generally doesn't. The wrong VAE doesn't throw, it hands you a grey wash or black frames on SDXL in fp16.
- CLIP - SDXL's dual encoders, Flux's CLIP-L + T5, an LLM encoder on the 2026 models. No shared vocabulary, so picking the wrong one produces garbage conditioning rather than an error.
- CFG and scheduler - SD 1.5/SDXL are DDPM-style and want 5-9 with Karras; anything guidance-distilled wants CFG 1 and a conservative schedule. Carry a habit across that line and you get burned images and doubled render time.
That's exactly why the pack ships all three routers. If you use one without the others, you've automated the least error-prone step and left the three genuinely silent failure modes untouched.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Rimor-dev/ComfyUI-CFG-Sculptor
# restart ComfyUI
The README's clone line spells the org Rimor/ - a typo; the repo is Rimor-dev/ComfyUI-CFG-Sculptor. Manager works too (search the pack title). Just torch and numpy, no model downloads, but you need a reasonably current ComfyUI with comfy_api support since the pack targets the newer backend node API.
When to reach for it
Any time you're A/B-ing checkpoints on the same prompt and want the comparison to be honest. Duplicated graphs drift - you fix a sampler setting in one branch and forget the other. A single graph with the router forces every branch through identical plumbing, which is the point: same seed, same steps, one variable changed. That discipline is worth more than the wire-dragging it saves you.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| inputcount | INT | 66–30 | Number of input ports (6-30). Click 'Update inputs' to apply. |
| active_channel | INT | 11–30 | Which input to pass through (1-N) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |