Nodes/ComfyUI_Inteliweb_nodes/Model Profile Router (Inteliweb)
ComfyUI Node

Model Profile Router (Inteliweb)

Four model stacks, one workflow, zero rewiring

By maoper11·Created about a year ago·Updated 9 days ago· 4
Model Profile Router (Inteliweb)
  • profile_in
  • low_model
  • low_text_encoder
  • low_vae
  • medium_model
  • medium_text_encoder
  • medium_vae
  • high_model
  • high_text_encoder
  • high_vae
  • ultra_model
  • ultra_text_encoder
  • ultra_vae
  • MODEL
  • TEXT ENCODER
  • VAE
  • GPU PROFILE
profileHIGH
effective_profileHIGH • LOCAL
global_channelnone

The Model Profile Router is the payoff for the GPU Profile Selector, and the pair is genuinely clever once you see the whole loop. You build four complete model stacks - a LOW stack (say, a GGUF-quantized checkpoint), a MEDIUM, a HIGH, and an ULTRA - all feeding into one Router. Then a single profile token decides which stack actually runs. Same workflow file, different machine: on your 8 GB card you set LOW, on a rented 24 GB box you flip to ULTRA, and nothing downstream changes because the Router always hands out MODEL, TEXT ENCODER, and VAE.

How it works

The twelve model inputs (low_model through ultra_vae) are all declared lazy, and the backend's check_lazy_status() only ever requests the effective profile's three inputs. That's the important engineering bit: ComfyUI never evaluates the loaders on inactive profiles, so the LOW path's GGUF loader doesn't run when you're on ULTRA. It's not just a switch that picks an already-loaded model - it routes which loaders execute at all.

Priority is profile_in (a wired GPU PROFILE, highest) → GLOBAL (follows a channel named by a GPU Profile Selector) → LOCAL (the profile dropdown itself). In GLOBAL mode the global_channel dropdown is populated live from the GLOBAL selectors in your workflow, and if that channel disappears the Router falls back to HIGH • LOCAL rather than silently hopping to another channel - a deliberate safety choice that keeps you from running the wrong stack by accident.

Inputs and outputs

The effective_profile field is informational only - the frontend updates it and you shouldn't hand-edit it. The profile dropdown sets GLOBAL/LOW/MEDIUM/HIGH/ULTRA. Outputs are MODEL, TEXT ENCODER (which is a CLIP internally), VAE, and a pass-through GPU PROFILE so you can see what actually got selected. It works with native loaders, GGUF loaders, anything that emits standard MODEL/CLIP/VAE sockets.

Install and setup

Same pack, same one-time install:

cd ComfyUI/custom_nodes
git clone https://github.com/maoper11/comfyui_inteliweb_nodes.git
cd comfyui_inteliweb_nodes
python -m pip install -r requirements.txt

Restart ComfyUI. No extra dependencies beyond psutil and nvidia-ml-py, no model files to download - the models are yours.

Where people get burned

The biggest trap is the frontend's auto-mute: loaders connected to inactive profiles get set to MUTE, and that's intended. If your workflow "loses" a loader, check whether a shared loader is muted because the active profile doesn't use it - the frontend keeps a loader enabled when the active profile references it, but a loader exclusive to another profile gets muted. Second, if global_channel shows only none, there's no GLOBAL GPU Profile Selector in the workflow, so set the profile dropdown to a concrete tier. Finally, remember this is niche territory: profile-based model routing barely shows up in the wider ComfyUI conversation, so you're mostly on your own with the README's demo workflow (workflows/testing-inteliweb-nodes-v0.20.1.json, which uses Z-Image Turbo). It's a power-user tool, but for "one workflow across two GPUs" it's the least fiddly answer I've found.

CategoryInteliweb/Loaders

Inputs (16)

NameTypeDefaultDescription
profileCOMBOHIGHGLOBAL follows Global Channel. LOW/MEDIUM/HIGH/ULTRA make this router local.
effective_profileSTRINGHIGH • LOCALInformational status automatically updated by the Inteliweb frontend extension.
global_channelCOMBOnoneGlobal channel listened to by this router. The list is populated from GLOBAL GPU Profile Selectors in the workflow.
profile_inoptINTELIWEB_GPU_PROFILEOptional external GPU PROFILE. When connected it has highest priority.
low_modeloptMODELOptional MODEL for this profile.
low_text_encoderoptCLIPOptional text encoder (CLIP type) for this profile.
low_vaeoptVAEOptional VAE for this profile.
medium_modeloptMODELOptional MODEL for this profile.
medium_text_encoderoptCLIPOptional text encoder (CLIP type) for this profile.
medium_vaeoptVAEOptional VAE for this profile.
high_modeloptMODELOptional MODEL for this profile.
high_text_encoderoptCLIPOptional text encoder (CLIP type) for this profile.
high_vaeoptVAEOptional VAE for this profile.
ultra_modeloptMODELOptional MODEL for this profile.
ultra_text_encoderoptCLIPOptional text encoder (CLIP type) for this profile.
ultra_vaeoptVAEOptional VAE for this profile.

Outputs (4)

NameTypeDescription
MODELMODEL
TEXT ENCODERCLIP
VAEVAE
GPU PROFILEINTELIWEB_GPU_PROFILE