Power Primitive (rgthree)
Power Primitive (rgthree)
- *
Power Primitive is a single, self-contained node that spits out one primitive value - a STRING, INT, FLOAT, or BOOLEAN - that you pick the type of and type in yourself. That's it. It's the value you want to define once and fan out to a bunch of places: a shared width, a steps count you reuse across two samplers, a boolean toggle, a filename prefix. And if you connect an input, it'll cast that incoming primitive to whatever output type you've chosen.
Why you'd reach for it over the native one
ComfyUI ships a built-in Primitive node, and if you've fought with it you already know the itch this scratches. The stock node doesn't really know what it is until you wire it into something - it infers its type from the slot you connect it to, which makes it awkward to set up standalone and easy to get into a confused state. Power Primitive flips that around: you tell it the type up front, from the node itself, and it just outputs that. No connect-first dance. It's the same design instinct that runs through the whole rgthree pack - take a small, fiddly bit of ComfyUI and make it comfortable.
The casting side is the quiet bonus. Feed it a FLOAT and set the output to INT and it converts. Feed it a number and set STRING and you get text. It saves you hunting for a separate convert node when all you needed was to nudge one value's type.
How it works
Under the hood it's dead simple: a value widget plus a type selector. You choose the output type, you enter (or pipe in) the value, and the node emits it. From the right-click menu you can fast-switch the output type without rebuilding the node, and you can hide the type selector entirely once you've locked a node to one type and don't want the extra widget cluttering things.
Inputs and outputs
There's really one thing to know here, and it's the output. Power Primitive has a single output slot typed * (wildcard) - it takes on whatever type you selected, so the same node is your INT source in one graph and your STRING source in another. Whatever's downstream sees the concrete type you picked.
On the input side you set the value and the type on the node, and you optionally connect a primitive to cast. Keep the mental model straight: the type you select is what the output becomes, regardless of what you fed in.
Installing it
Comes with rgthree-comfy. Grab it through ComfyUI Manager by searching rgthree's ComfyUI Nodes, or clone the repo:
cd ComfyUI/custom_nodes
git clone https://github.com/rgthree/rgthree-comfy.git
Restart ComfyUI when it's done. Nothing else to download - no models, no dependencies.
Common issues
Type mismatch downstream. The * output becomes exactly the type you chose, so if you set it to STRING and wire it into a slot that wants an INT, ComfyUI will reject the connection. If a link won't take, check the output type matches the slot - fast-switch it from the right-click menu.
The right-click menu is where the controls live - switching type, hiding the selector - which makes this node one of the ones bitten by ComfyUI's Nodes 2.0 frontend rewrite. That rollout (late 2025) broke properties panels and right-click access on several rgthree nodes, and the issue was still open into mid-2026. If you can't get to the type switcher or the properties won't open, check whether Nodes 2.0 is on; the standing workaround is to turn it off and stay on the legacy canvas.
Inputs (0)
No inputs
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |