Nodes/dAIly Prompt & Token Utils/Prompt Mixer dAIly (CSV Wildcards)
ComfyUI Node

Prompt Mixer dAIly (CSV Wildcards)

CSV wildcards with a seed, so every batch is repeatable

By DailyMok·Created 6 months ago·Updated 2 months ago· 0
Prompt Mixer dAIly (CSV Wildcards)
    • PROMPT
    • USED_JSON
    • Skin
    • Bodytype
    • Hairstyle
    • Haircolor
    • Eyes
    • Clothes
    • Expression
    • Pose
    • Locate
    • LightSource
    • LightingType
    • ShotSize
    • Composition
    • FocalLength
    • CameraAngle
    • LensType
    • Color
    • Effect
    • Extra1
    • Extra2
    • Extra3
    • Accessories
    csv_path
    templateA stunning graphic anime illustration image with one stunning young woman, with a beautiful anatomy in her 20s. About the woman : she is a {ShotSize} woman, named Amanda : she have {Skin} with a {Bodytype}. She have beautiful {Haircolor} hair styled in a {Hairstyle} and stunning {Eyes} eyes. She is wearing {Clothes}. Alone, She {Pose} . About the locate : a unique mix between {Locate} and {FocalLength}. Tip: turn flat_mode OFF to preserve paragraphs and line breaks.
    flat_modetrue
    seed0
    Skin
    Bodytype
    Hairstyle
    Haircolor
    Eyes
    Clothes
    Expression
    Pose
    Locate
    LightSource
    LightingType
    ShotSize
    Composition
    FocalLength
    CameraAngle
    LensType
    Color
    Effect
    Extra1
    Extra2
    Extra3
    Accessories

    Wildcards are old news in image generation - {brown|blonde|black} has been around since A1111, and the bracket syntax is how people batch a character across moods and settings without writing 30 prompts. The problem with old-school wildcards is that a random pick is a random pick: reproduce the exact same combo later and you're back to guessing. Prompt Mixer dAIly (CSV Wildcards) is the dAIly pack's answer - it moves your options into a CSV file, drives the prompt from it, and keys the whole selection off a seed so every run is reproducible.

    How it works

    You point it at a CSV where each column is one attribute and each row is one option - columns like Skin, Hairstyle, Eyes, Pose, Locate, FocalLength. Then you write a template that references them as {Skin}, {Hairstyle}, and so on, exactly like the placeholders in the default template. The node reads the CSV, picks values for the seed, and fills the template.

    Two details sell it. First, the seed: set the same seed and you get the same combination back, every time - which is what makes a batch actually reviewable instead of a slot machine. Second, the USED_JSON output: a clean JSON of which values were used plus the seed, so you can stash it next to an image and know precisely what generated it. If you've ever squinted at a batch and wondered which prompt made which image, that's the feature.

    Inputs that matter

    • csv_path (STRING) - path to your CSV, absolute or relative to the ComfyUI root. Your column headers must match the {placeholders} in the template.
    • template (STRING, multiline) - the prompt with {Header} placeholders. The default is a fully worked example, so you can test before writing your own.
    • flat_mode (BOOLEAN) - ON flattens everything to one line (classic ComfyUI style); OFF keeps your paragraphs and line breaks. If you write structured, multi-paragraph prompts, this is the setting that decides whether the model sees a block or a wall of text.
    • seed (INT) - controls which values get picked.

    There are also optional override inputs for each attribute - Skin, Eyes, Pose, and about twenty more - and any override you fill in takes priority over the CSV for that field. The output you'll wire forward is PROMPT (STRING); USED_JSON goes wherever you collect metadata.

    The catch: it's hardcoded

    Here's the thing that matters before you build a whole workflow on it: the attribute inputs and outputs are fixed to the columns in the author's example CSV. If your spreadsheet uses headers the node doesn't have slots for, those columns just won't reach the template. The author clearly hit this too, because v2 of the same node in this pack fixes it by building the attributes dynamically from your actual headers. For v1, stay inside the provided column names and it's fine.

    Installation

    It ships in the dAIly Prompt & Token Utils pack alongside the token counter. Install via ComfyUI Manager (search "dAIly Prompt & Token Utils" or just "dAIly"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/DailyMok/ComfyUI-dAIly.git
    

    Restart after cloning. No models, no extra downloads.

    Troubleshooting

    The README is upfront about the encoding gotcha: CSV loading supports multiple encodings but UTF-8-SIG is preferred. If your non-ASCII options show up garbled, resave the file as UTF-8 with BOM (Excel's default "CSV UTF-8" does this). And if a placeholder comes through empty, check that the header name matches the {...} exactly - case-sensitive, no spaces.

    CategoryPrompt/Utility

    Inputs (26)

    NameTypeDefaultDescription
    csv_pathSTRING
    templateSTRINGA stunning graphic anime illustration image with one stunning young woman, with a beautiful anatomy in her 20s. About the woman : she is a {ShotSize} woman, named Amanda : she have {Skin} with a {Bodytype}. She have beautiful {Haircolor} hair styled in a {Hairstyle} and stunning {Eyes} eyes. She is wearing {Clothes}. Alone, She {Pose} . About the locate : a unique mix between {Locate} and {FocalLength}. Tip: turn flat_mode OFF to preserve paragraphs and line breaks.
    flat_modeBOOLEANtrueON = aplatit tout en une ligne (comme avant) OFF = conserve les sauts de ligne et la mise en forme
    seedINT00–18446744073709550000
    SkinoptSTRING
    BodytypeoptSTRING
    HairstyleoptSTRING
    HaircoloroptSTRING
    EyesoptSTRING
    ClothesoptSTRING
    ExpressionoptSTRING
    PoseoptSTRING
    LocateoptSTRING
    LightSourceoptSTRING
    LightingTypeoptSTRING
    ShotSizeoptSTRING
    CompositionoptSTRING
    FocalLengthoptSTRING
    CameraAngleoptSTRING
    LensTypeoptSTRING
    ColoroptSTRING
    EffectoptSTRING
    Extra1optSTRING
    Extra2optSTRING
    Extra3optSTRING
    AccessoriesoptSTRING

    Outputs (24)

    NameTypeDescription
    PROMPTSTRING
    USED_JSONSTRING
    SkinSTRING
    BodytypeSTRING
    HairstyleSTRING
    HaircolorSTRING
    EyesSTRING
    ClothesSTRING
    ExpressionSTRING
    PoseSTRING
    LocateSTRING
    LightSourceSTRING
    LightingTypeSTRING
    ShotSizeSTRING
    CompositionSTRING
    FocalLengthSTRING
    CameraAngleSTRING
    LensTypeSTRING
    ColorSTRING
    EffectSTRING
    Extra1STRING
    Extra2STRING
    Extra3STRING
    AccessoriesSTRING