Nodes/ComfyUI/Select Model Device
ComfyUI Node Runs on cloud

Select Model Device

The power node of the multigpu family — and the easiest to misuse

By Comfy-Org·Created 4 years ago·Updated 20 days ago· 121,575
Select Model Device
  • model
  • MODEL
device

Where its siblings move the CLIP and the VAE, this node moves the model that does the actual work: the diffusion transformer itself. It's the most powerful node in the advanced/multigpu family and the one you can genuinely hurt yourself with, because the diffusion model is the component everything else hangs off. Used right, on a dual-GPU machine, it tells ComfyUI "run the sampler over on card two." Used wrong, you get silent weirdness that's a pain to debug.

The core idea is the same as the rest of the family: a device dropdown (default / cpu / gpu:N), a clone of the patcher, a reroute. But the diffusion model is big and may already be partially loaded, so the mechanics go deeper - and that's where both the power and the traps live.

How it works

  • default - restores the device the loader originally assigned, even if a previous Select Model Device call changed it. Handy for portable workflows; a graph built on a 2-GPU box just runs on whatever card the loader picks.
  • cpu - pins both the load and offload device to CPU. It's slower than VRAM by a wide margin - PCIe bandwidth is roughly an order of magnitude behind GPU memory - so only use this if the point is to get the model completely out of every GPU's VRAM.
  • gpu:N - pins the load device to the Nth GPU, and restores the offload device to the loader's original choice.

Here's the mechanism that matters: if the requested device differs from where the model currently sits, the node spawns a fresh model via the loader's reload factory so the new patcher owns independent weights on the new device. If the model is already on the requested device, it takes a fast path and just adjusts the offload target. It also prunes any MultiGPU CFG Split clone that would collide with the newly chosen GPU - the node knows about the CFG-split clones and keeps the device assignments consistent, so you can combine both features.

Where people get burned

The node's own docs spend a lot of words on this, and you should believe them. Place this node before any consumer of the model - before the KSampler, not after. If a KSampler has already run on the model, it mutated state on the original model object. Place Select Model Device after that, the fast path kicks in when the device matches, and you'll be sampling with whatever the prior consumer left behind. The docs call it "not recommended" in the most polite way possible; treat it as "don't."

Two quieter failure modes, both designed to not hard-fail: if the loader doesn't support multigpu (no reload factory behind it), the node passes the model through unchanged with a warning - so a "wrong" device silently does nothing. And if the requested GPU doesn't exist on the current machine, same deal: passthrough plus a log. Neither breaks the workflow; both can leave you wondering why your "moved" model didn't move.

Inputs and outputs

  • model - the MODEL to place.
  • device (COMBO: default / cpu / gpu:N) - the only input you set.

Output is a single MODEL, routed to wherever you pointed it, ready for the sampler. One bonus detail: when targeting a GPU, the node also casts the compute dtype to one the device actually supports, so you don't silently run a card in a dtype it can't handle.

When it's worth it

Single GPU: skip it - the loader already made the right call. Dual GPU: this is the node for "I want the sampler on card two," typically paired with Select CLIP Device and Select VAE Device to move the whole stack over and leave card one free. It ships with ComfyUI core - no install - and landed with the rest of this family around late May 2026. Just remember the ordering rule and it'll treat you well.

Categoryadvanced/multigpu

Inputs (2)

NameTypeDefaultDescription
modelMODEL
deviceCOMBO2 options: default, cpu

Outputs (1)

NameTypeDescription
MODELMODEL