Color Wheel Generator
Plot your hex palette on a real color wheel — no model required
- IMAGE
The name is a bit of a lie: the Color Wheel Generator doesn't generate anything. It takes a comma-separated list of hex colors and draws them on an HSV color wheel as a plain IMAGE tensor. No model, no GPU, no API key - just math and PIL. The author built it for color studies (sunsets in particular), and that's still its best job: drop your palette in, and you instantly see where each color sits on the wheel, how far apart they are, and whether the whole thing actually holds together.
The workflow it was designed for is the honest reason you'd reach for this. Load a reference image, run a dominant-color extraction, feed those hexes into this node, and you get a reference chart you can study or hand to img2img as a color guide. The image→color extraction in that workflow comes from a separate pack (ComfyUI_BaiKong_Node) - the source for it is copied into this repo, but it's not registered, so this pack only exposes the wheel. You can always skip the extraction and type hexes in by hand; that's the more common way people actually use it.
How it works
The node builds a classic HSV wheel: hue mapped to angle, saturation mapped to distance from center, value pinned to max. The "accurate" in the class name is doing real work here. Naively drawing a wheel like this, overlapping hues overwrite each other and you end up with a muddy washed-out disc. This node keeps a brightness map per pixel and only lets a color claim a spot if it's brighter than whatever's there - so the wheel stays vivid, with no holes.
Your colors are then plotted on top: each hex is converted to its hue/saturation position, and a small white-outlined dot marks it. Below the wheel there's a palette strip with each swatch labeled with its hex string, which makes the output genuinely useful as a reference card. Everything lands in one IMAGE tensor, so it previews and saves like any other image.
The inputs that matter
There are only two, and you'll touch one of them constantly:
- color_string - comma-separated hex codes, like
#ead5c2,#9a99ac,#e9b68b. That's the whole job. - size - output resolution, 128 to 2048, default 512. The wheel is
size×sizeplus the palette strip below. Go 1024 if you want the hex labels legible; 512 is fine for a quick check.
That's it. Output: a single IMAGE tensor - wire it into a PreviewImage or SaveImage and you're done.
Installing it
Easiest path is ComfyUI Manager: search "ColorWheel" and hit install, or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/RhizoNymph/ComfyUI-ColorWheel
Then restart ComfyUI. No model downloads, no weights, nothing to fetch.
Where people get burned
The repo ships a requirements.txt that pins torch==2.4.1, numpy==1.26.4, pillow==10.4.0, and scikit-learn==1.5.2. If ComfyUI Manager auto-installs dependencies, that pinned torch can try to downgrade your install - a nasty surprise if you're on a newer build. The node itself only needs numpy, PIL, and colorsys (stdlib). The one thing that actually must be present is scikit-learn, because nodes.py imports it at module load for that unregistered extraction code. If the node fails to load with an ImportError about sklearn, run pip install scikit-learn and ignore the torch pin.
Minor annoyance worth knowing: the hex labels try to load arial.ttf and fall back to PIL's tiny default font if it's missing, so on Linux without Arial your swatch text may look small. Cosmetic, not functional.
One more honest caveat - this is an HSV wheel, not a perceptual one. Complementary positions are "roughly opposite" by hue math, which is exactly what you want for a quick palette sanity check, not a color-theory textbook. If you need scientifically accurate color distance, this isn't that tool. For "does this sunset palette look coherent," it's perfect.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| color_string | STRING | #ead5c2,#9a99ac,#e9b68b | — |
| size | INT | 512128–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |