Nodes/ComfyUI_Eclipse/String DeDuplicate
ComfyUI Node

String DeDuplicate

Combine up to 20 strings without the duplicate-tag mess

By r-vage·Created 10 months ago·Updated a day ago· 31
String DeDuplicate
    • text
    inputcount2
    dedup_inputsfalse
    weight_handlingNone
    string_1
    string_2

    When you build prompts from multiple sources - a wildcard here, a Smart Prompt there, a hand-written base - you will end up with duplicates. 1girl, 1girl, looking at viewer is a prompt nobody typed and everybody has generated. String DeDuplicate is the node that cleans that up: it merges up to 20 string inputs and removes duplicate entries, case-insensitively and with underscores normalized, so 1girl and 1girl (or 1_girl) become one entry no matter which input they came from.

    The smart part is that it handles both prompt formats. Comma-separated tag lists get deduplicated per tag, while line-based prose gets treated as lines - so it works whether you're on an SDXL-lineage tag workflow or a newer block-style prompt. Empty inputs are ignored entirely, which means you can wire in optional branches without them polluting the result.

    How it works

    • inputcount (default 2, up to 20) - how many string inputs the node shows. This is the knob that surprises people: it's a count, not a toggle, and the node grows the matching string_1string_n inputs accordingly.
    • dedup_inputs (off) - deduplicate within each individual input before combining. Turn it on when a single source is already messy.
    • weight_handling - what to do with emphasis markers like (word:1.3). None keeps them as-is; Remove Weights strips all emphasis; Normalize caps weights at 1.4. That last one matters more than you'd think - normalization is a nice middle ground if your sources use wildly different emphasis conventions.

    The single text output is the cleaned, combined string, ready for a CLIP encoder.

    Where it fits

    Any prompt-assembly chain that has more than one upstream source. If you're combining a base prompt, a character tag block, and a style block, this is the safety net that keeps the result clean. It also pairs naturally with String Dual (drop it before the encoder) and with Smart Prompt, whose selected categories are exactly the kind of source that can collide.

    Installing it

    Ships in ComfyUI_Eclipse:

    git clone https://github.com/r-vage/ComfyUI_Eclipse custom_nodes/ComfyUI_Eclipse
    

    Or ComfyUI Manager → search "ComfyUI_Eclipse" → install and restart. No models.

    Gotchas

    The dedup is case-insensitive and underscore-normalized - so it will happily merge two tags that differ only in capitalization, which is the desired behavior, but keep it in mind if you intentionally want a distinction between Photo and photo. And inputcount is per-node config: if you wire in an 11th string but the count is still at its default of 2, the extra input doesn't exist - bump the count. Pack note: pre-v4.0.0 RvTools-era node IDs need the migration tool on old workflows.

    Category🌒 Eclipse/ Text

    Inputs (5)

    NameTypeDefaultDescription
    inputcountINT22–20Number of string inputs.
    dedup_inputsBOOLEANfalseDeduplicate within each input before combining.
    weight_handlingCOMBONoneNone=keep weights as-is. Remove Weights=strip all emphasis markers. Normalize=cap weights at 1.4.
    string_1optSTRINGString input #1.
    string_2optSTRINGString input #2.

    Outputs (1)

    NameTypeDescription
    textSTRING