if AMD else if NVIDIA Ovum
One workflow that behaves differently on AMD and NVIDIA
- amd_1
- nvidia_1
- out_1
- out_2
- out_3
- out_4
- out_5
- out_6
- out_7
- out_8
- out_9
- out_10
- out_11
- out_12
- out_13
- out_14
- out_15
- out_16
- out_17
- out_18
- out_19
This node routes one set of inputs or another to the outputs depending on which GPU vendor it detects in the current process. It answers a very real question for people who share workflows: "what should this graph do on an AMD card versus an NVIDIA card?" Because the honest truth is that ComfyUI behaves differently on the two - different attention backends, different memory patterns, sometimes different nodes entirely if you're on ZLUDA or ROCm.
The author is the right person to have built this. He's a well-known AMD-on-Windows tinkerer (his amd-torch guide is a fixture for getting ComfyUI running on RDNA3 cards), and his pack is full of AMD-flavored utilities. This node is the "portable workflow" answer to hardware differences.
How it works
The node detects the vendor at execution time: it checks the torch device name, whether torch was built with HIP, and whether ZLUDA is in the environment. AMD (including ZLUDA) is treated as "amd," NVIDIA as "nvidia." Then it picks the corresponding inputs and forwards them.
- amd_1, nvidia_1, and so on - you get up to 19 numbered input pairs. Wire the AMD-appropriate value into the
amd_Nslot and the NVIDIA value intonvidia_N. - Outputs out_1 through out_19 - the chosen side's value comes out the matching number.
out_1forwards whichever ofamd_1/nvidia_1won.
Because the node's inputs are dynamically generated, ComfyUI adds slots as you connect them. The wiring order in your saved workflow determines which pair is which, so keep the numbering consistent or you'll be confused later.
When it's actually useful
- You have two versions of a node - one with better AMD support, one NVIDIA-optimized - and you want the same saved workflow to pick correctly on either machine.
- You're sharing a workflow and want it to "just work" for a friend on different hardware.
- You're running ZLUDA and need a different path than real ROCm.
The honest counterpoint: most workflows don't need this, and for the ones that do, a simple manual "which GPU am I on" switch you flip yourself is often enough. The node earns its keep when you're distributing a workflow or running it across multiple machines without supervision.
Installing it
Comes with comfy-ovum:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
Restart, or ComfyUI Manager → "comfy-ovum". No models, no extra deps - it only imports torch, which you have.
Gotchas
Vendor detection is a heuristic. If torch reports a device name the node doesn't recognize, it defaults to the AMD branch - a safe-ish fallback but a silent one. Detection also runs on the server process, so if you're running ComfyUI in Docker with CUDA passthrough, "AMD" vs "NVIDIA" is whatever the container sees. Test the routing once on each machine you plan to use, because an untested route is just a bug waiting for the wrong GPU.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| amd_1opt | * | AMD input | |
| nvidia_1opt | * | NVIDIA input |
Outputs (19)
| Name | Type | Description |
|---|---|---|
| out_1 | * | — |
| out_2 | * | — |
| out_3 | * | — |
| out_4 | * | — |
| out_5 | * | — |
| out_6 | * | — |
| out_7 | * | — |
| out_8 | * | — |
| out_9 | * | — |
| out_10 | * | — |
| out_11 | * | — |
| out_12 | * | — |
| out_13 | * | — |
| out_14 | * | — |
| out_15 | * | — |
| out_16 | * | — |
| out_17 | * | — |
| out_18 | * | — |
| out_19 | * | — |