ComfyUI_frontend icon indicating copy to clipboard operation
ComfyUI_frontend copied to clipboard

[Feature Request]: Custom Color Pallet for Selection Toolbox

Open TrentHunter82 opened this issue 9 months ago • 4 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues and checked the recent builds/commits

What would your feature do ?

I would greatly appreciate being able to choose a my own colors to show up instead of the default colors in the selection toolbox -- or just one color selection that when clicked will pop up a custom color selector tool in the same area as the toolbox close to the mouse.

Proposed workflow

  1. Go to any node
  2. Press selection toolbar
  3. Either a custom color pallet you can set in settings, or a custom color selector tool appears.

Additional information

Thank you for your hard work and for your consideration. !

┆Issue is synchronized with this Notion page by Unito

TrentHunter82 avatar Mar 05 '25 12:03 TrentHunter82

It would be nice to set custom colors directly in the Toolbox.

But I'm not sure it's possible, because custom colors are an extension feature.

https://github.com/pythongosssss/ComfyUI-Custom-Scripts?tab=readme-ov-file#custom-colors

JorgeR81 avatar Mar 05 '25 13:03 JorgeR81

No worries - thank you!

TrentHunter82 avatar Mar 05 '25 13:03 TrentHunter82

No worries - thank you!

I'm just a user, but I hope the developers find a way to add it :)

JorgeR81 avatar Mar 05 '25 13:03 JorgeR81

It would be nice if custom colors would become a core feature, as happened with snap to grid.

LukeG89 avatar Mar 05 '25 13:03 LukeG89

I guess I need to bump it. I'm not sure how it was before, but currently, color presets seem to be a built-in frontend feature. Here's what I have when launching comfy with: python -s ./main.py --listen --disable-all-custom-nodes

Python version: 3.12.11 (main, Jun  6 2025, 06:38:58) [GCC 15.1.1 20250425]
ComfyUI version: 0.3.43
ComfyUI frontend version: 1.23.4

Image

Also, the custom colors feature from pythongosssss' pack seem to set the title bar's color differently from the built-in presets.

Image

These two points combined, it seems to me that a custom color palette should be a built-in feature.

How I see it:

  • Most of the users don't need unique custom colors for every node - especially if they can't easily copy the color from one node to another. They need to extend the pre-defined palette defined in settings. So pythongosssss' custom-color feature is more of a crutch than an actual solution.
  • If every "preset color" is actually two colors (node title and body) and it's hard to auto-generate a proper title color for any possible color a user can choose, just go the easy way and let a user choose both colors for each preset. It might actually become a feature, not an issue (many presets with the same body color but different title colors).
  • If possible, title and slots text color should be different depending on their background color:
    • White/Bright gray if the color's luminance is below 50%
    • Black/Dark gray if it's above
    • (currently, half of the palette - everything above 50% in brightness - is basically unusable because it hides the text)
  • To avoid any unforeseen edge cases, make the built-in swatches hard-set ones (user can't change or remove them), but let a user extend this list with their own colors, having their own key names.
  • If a workspace contains missing colors, you could just reset them to default gray. Or, even better, define a new, slightly brighter one, to indicate such nodes. Additionally, the properties panel can show the color-preset name used, so a user could just re-define a preset with the same name.
  • A worthy alternative would be storing the actual hex codes in each node (this might actually result in shorter strings) but detecting the closest preset any time you need to highlight the one currently selected. It could be easily done with a simple dot product on RGB values.

Lex-DRL avatar Jul 01 '25 22:07 Lex-DRL

Good idea

christian-byrne avatar Jul 05 '25 02:07 christian-byrne