Nodes/Color Gel Pixel/Color Gel Names (N)
ComfyUI Node

Color Gel Names (N)

Turn up to ten names into filenames, so your batch save names itself

By cadric·Created 11 months ago·Updated 11 months ago· 0
Color Gel Names (N)
    • names_packed
    name_1
    prefix
    suffix
    name_2
    name_3
    name_4
    name_5
    name_6
    name_7
    name_8
    name_9
    name_10

    Naming files is the most boring part of a batch export, and this node exists to automate exactly that. Color Gel Names (N) packs up to ten strings into a single newline-separated names_packed output, which you feed straight into Color Gel Save. Flip Save's use_names_for_filenames on and your files come out named after what they are - red_sunset.png, blue_dawn.png - instead of image_20260827_120000_0001.png.

    The intended flow is elegant: each Color Gel (select) already tells you what color it picked. It outputs selected_name (like "Amber 6") and a cleaned filename_stub. Wire those into this node, and your export names itself from the actual tints you chose. No typing, no manual rename pass. That's the whole pitch - one node to make the file list match the content.

    How it works

    It's a string packer with a filename-safety obsession. Every name runs through a sanitizer before it goes out:

    • Non-ASCII characters are folded to ASCII (NFKD), so accents don't survive,
    • Whitespace and separators collapse to underscores, unsafe characters are stripped,
    • Windows reserved names (CON, NUL, COM1…) get a suffix so they don't break on Windows,
    • Length is capped at 120 chars,
    • Duplicates get numbered (name, name(2)) so no file silently overwrites another.

    The prefix and suffix inputs are prepended/appended to every name before sanitizing - handy for a project tag. Output is one STRING with names separated by newlines, which is exactly the format Save's names_packed field expects.

    The inputs that matter

    • name_1 - required, the first name. name_2 through name_10 are optional.
    • prefix / suffix - applied to all names; optional.
    • Output: names_packed - newline-separated string → Color Gel Save → names_packed (and set use_names_for_filenames = true).

    Don't forget the second half. Connecting names here without flipping use_names_for_filenames on Save does nothing visible - the files still get the timestamped names. The pack's docs are explicit about this pairing, and it's the number one "why isn't it using my names" moment.

    Installing Color Gel Pixel

    Names (N) is part of the Color Gel Pixel pack (MIT, by cadric) - all seven nodes come from one install.

    cd ComfyUI/custom_nodes
    git clone https://github.com/cadric/color_gel_pixel
    

    Restart ComfyUI after cloning, or search "Color Gel Pixel" in ComfyUI Manager's Install Custom Nodes. No model downloads, no extra dependencies - pyproject.toml declares none, and it needs ComfyUI 0.3.65+.

    Common issues

    • Names ignored at save time. You wired names_packed but forgot use_names_for_filenames = true on Save. That boolean is the switch; without it names are just carried data.
    • A name got mangled. The sanitizer is aggressive on purpose - it's making cross-platform-safe filenames. If "Amber 6" becomes Amber_6 that's expected; if you need non-ASCII or spaces in filenames, this pack isn't the place to fight for them.
    • Only works for batch saves with matching count. Names map one-to-one onto frames in order. If your batch has 5 frames and you supply 3 names, the named ones save with their names and the rest fall back to numbered filenames.

    It's a small utility from a small pack, and it does exactly one thing well. In a color-gel workflow where you're exporting a pile of tinted variants, it's the difference between named outputs and a folder of timestamps you'll have to decode later.

    CategoryColor Gel Pixel/Utils

    Inputs (12)

    NameTypeDefaultDescription
    name_1STRINGFirst name or title.
    prefixoptSTRINGOptional prefix added to each name.
    suffixoptSTRINGOptional suffix added to each name.
    name_2optSTRINGOptional name 2.
    name_3optSTRINGOptional name 3.
    name_4optSTRINGOptional name 4.
    name_5optSTRINGOptional name 5.
    name_6optSTRINGOptional name 6.
    name_7optSTRINGOptional name 7.
    name_8optSTRINGOptional name 8.
    name_9optSTRINGOptional name 9.
    name_10optSTRINGOptional name 10.

    Outputs (1)

    NameTypeDescription
    names_packedSTRING