Color_Picker ROTI β‘π ‘π π £π
One color, output in three formats other nodes actually want
- hex_color
- rgb_color
- hue_shift
Small utility, genuinely useful friction-remover: pick a color once, in an actual visual picker, and get it back out in the three formats different nodes tend to want - hex string, "R,G,B" string, and a hue-shift integer - instead of typing the same color three times in three different formats across your graph and inevitably getting one of them wrong.
How it works
The color widget stores your pick as a small JSON blob under the hood ({"hex":"#FF0000","rgb":"255,0,0","hue":0} is the default - plain red), which you set through a color-picker UI rather than typing JSON by hand. The node then splits that single pick into three separate outputs so downstream nodes can each grab the exact format they expect.
It's the kind of node you don't think about until you notice you've been manually re-typing "255,0,0" into three different string fields across a workflow - this pack's own DyeImage node, for instance, wants its source_rgb/target_rgb in exactly that "R,G,B" string format, and this node's rgb_color output slots straight in.
The inputs and outputs that matter
color(STRING, required) - the picker widget itself; you interact with this visually rather than editing the underlying JSON string directly.
Three outputs:
hex_color(STRING) - the color as a hex code.rgb_color(STRING) - the color as an"R,G,B"string, ready for nodes likeDyeImage.hue_shift(INT) - the hue value.
How to install it
Via ComfyUI Manager: search "RyanOnTheInside," install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside.git
cd ComfyUI_RyanOnTheInside
pip install -r requirements.txt
then restart. It's a pure UI/formatting node - no model download, no heavy dependency involved.
Common issues & troubleshooting
A downstream node rejects the color string. Check which output you wired in - hex_color and rgb_color are genuinely different formats (#FF0000 vs 255,0,0), and a node expecting one will choke on the other. Match the output to what the receiving node's tooltip actually asks for.
Widget shows a color but a connected node isn't picking up the change. Confirm you're pulling from the correct output socket after adjusting the picker - since this node exposes three simultaneous outputs from one widget, it's easy to have wired a downstream node to, say, hue_shift when you meant hex_color.
Not sure this node is doing anything beyond formatting. It genuinely isn't - that's the whole point. There's no color transformation happening here, just one input converted into the three shapes other nodes ask for.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| color | STRING | {"hex":"#FF0000","rgb":"255,0,0","hue":0} | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| hex_color | STRING | β |
| rgb_color | STRING | β |
| hue_shift | INT | β |