ComfyUI Node

Auto Prompter

Slot-machine prompts from giant word lists

By dagthomas·Created 3 years ago·Updated 12 days ago· 283
Auto Prompter
    • prompt
    • seed
    • t5xxl
    • clip_l
    • clip_g
    seed0
    custom
    subject
    artformphotography
    photo_typerandom
    body_typesrandom
    default_tagsrandom
    rolesrandom
    hairstylesrandom
    additional_detailsrandom
    photography_stylesrandom
    devicerandom
    photographerrandom
    artistrandom
    digital_artformrandom
    placerandom
    lightingrandom
    clothingrandom
    compositionrandom
    poserandom
    backgroundrandom

    This is the node the whole pack is named after - the "SDXL Auto Prompter." It's a slot machine for prompts. You give it a subject, flip a pile of dropdowns to random, hit generate, and it assembles a long comma-separated prompt out of curated word lists: a camera, a lighting setup, a pose, an outfit, a photographer to imitate, and so on. It doesn't call any AI, it needs no API key, and it downloads nothing. It's just big hand-built databases and a random number generator, which is exactly why it's fast and free to spam.

    You reach for it when you've got a decent checkpoint and no ideas. Batch it, watch what it spits out, steal the combinations you like. It's a brainstorming engine, not a precision tool.

    How it works

    Every dropdown maps to a category file inside the pack. Set one to random and it picks one entry; set it to disabled and that category sits out; pick a specific value and it uses that. The subject and custom fields are yours to type into - subject is your main thing (you can drop LoRA trigger words in here), custom is prefix styling text. The seed decides the random draw, so the same seed rebuilds the same prompt, and a new seed reshuffles the machine.

    The catch worth knowing up front: a lot of the built-in entries are wrapped in double parentheses, like ((cyborg)) or ((long hair)). Those are SDXL-era attention weights. On SDXL and its descendants - Illustrious, Pony, NoobAI - they do real work. On the newer LLM-encoded models (Z-Image, Flux 2, Anima) that weighting syntax is silently thrown away and just becomes literal punctuation in your prompt, so this node is happiest feeding an SDXL-family checkpoint.

    Inputs and outputs that matter

    There are twenty-odd dropdowns and you will not touch most of them. The few that carry a beginner:

    • subject - your core idea. "a woman", "cyberpunk street samurai", a LoRA trigger. Everything else decorates this.
    • artform - photography or art, which steers the whole flavor. This is the big lever.
    • seed - lock it when you find a prompt you like; roll it to keep gambling.

    Leave roles, artist (713 entries), clothing, pose, lighting on random for maximum chaos, or pin the ones you care about and disable the rest for control.

    Outputs: prompt is the full assembled string. seed passes through for wiring into your sampler. Then t5xxl, clip_l, and clip_g are the same prompt shaped for different text encoders - clip_l and clip_g for SDXL's two CLIP encoders, t5xxl for Flux/SD3 pipelines. Wire whichever your encode node expects; for a basic SDXL setup, prompt into your CLIP Text Encode is fine.

    Installing it

    ComfyUI Manager is the easy path: search comfyui_dagthomas, install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/dagthomas/comfyui_dagthomas
    cd comfyui_dagthomas
    pip install -r requirements.txt
    

    The requirements.txt pulls a chunky dependency list (openai, anthropic, google-generativeai, transformers, scipy, blend-modes) because the pack also ships LLM and image-FX nodes. This particular node needs none of that at runtime - but you install the whole pack regardless, so let it finish.

    Common issues

    The number-one complaint isn't a bug, it's coherence: leave every dropdown on random and you get incoherent word soup - a deep-sea diver in a ballgown at a concert on an alien planet. Tame it by disabling categories you don't want and only randomizing two or three. Think of random everywhere as the demo, not the workflow.

    If you're running Z-Image, Flux 2, or another LLM-encoded model and the output feels flat, that's the weighting problem above - the ((parens)) are dead weight there. Strip them, or use one of this pack's LLM nodes instead.

    One historical gotcha: very old versions changed ComfyUI's working directory on load and broke the restart button (you'd see a "can't open main.py" error). That was fixed years ago upstream - if you hit it, a git pull in the node folder clears it. The author (dagthomas, known around r/comfyui as "Ed") is responsive and keeps the repo current, so staying updated is the whole fix.

    Categorycomfyui_dagthomas

    Inputs (21)

    NameTypeDefaultDescription
    seedINT00–1125899906842624
    customSTRING
    subjectSTRING
    artformCOMBOphotography4 options: disabled, random, photography, art
    photo_typeCOMBOrandom21 options: disabled, random, front view, bilaterally symmetrical, side view, back view, +15
    body_typesCOMBOrandom44 options: disabled, random, pretty, chubby, midweight, overweight, +38
    default_tagsCOMBOrandom10 options: disabled, random, a man, a woman, a young man, a young woman, +4
    rolesCOMBOrandom206 options: disabled, random, as a ((cyborg)), as an ((x-men character)), as a ((marvel character)), as a ((character from lord of the rings)), +200
    hairstylesCOMBOrandom84 options: disabled, random, with ((long hair)), with ((very curly hair)), with ((curly hair)), with ((pixie cut hair)), +78
    additional_detailsCOMBOrandom250 options: disabled, random, a purple iridescent suit, wearing a (necklace), wearing ((earrings)), wearing a (bracelet), +244
    photography_stylesCOMBOrandom11 options: disabled, random, high fashion photography, avant garde photography, fashion photography, portrait photography, +5
    deviceCOMBOrandom48 options: disabled, random, Canon EOS 5D Mark IV with Canon EF 24-70mm f-2.8L II, Canon EOS 90D with Canon EF-S 18-135mm f-3.5-5.6 IS USM, Canon EOS M6 Mark II with Canon EF-M 32mm f-1.4, Canon EOS R with Canon RF 28-70mm f-2L, +42
    photographerCOMBOrandom74 options: disabled, random, Alessio Albi, Alvin Langdon Coburn, Anne Brigman, Ansel Adams, +68
    artistCOMBOrandom713 options: disabled, random, Akihito Tsukushi, Al Hirschfeld, Alan Lee, Albert Bierstadt, +707
    digital_artformCOMBOrandom70 options: disabled, random, Glitch Art art, Digital Painting art, Acrylic Paint art, Algorithmic art, +64
    placeCOMBOrandom94 options: disabled, random, indoor, outdoor, at night, in the park, +88
    lightingCOMBOrandom124 options: disabled, random, popping colors, popart style, bokeh, dramatic, golden hour, +118
    clothingCOMBOrandom344 options: disabled, random, white crop top, denim shorts,silver bracelet,white texture,denim texture, white top, sleeveless, button-up, white bottoms, ribbed texture, white crop top, blue jeans, silver belt, textured fabric, denim texture, white tank top, black pants, pink and blue goalie pads, black belt, white skates, +338
    compositionCOMBOrandom344 options: disabled, random, lush greenery, blurred foliage, natural lighting, geometric tiles, circular mirror, bright lighting, hexagonal patterns, graffiti on door, urban setting, dark tones, metallic door handle, hockey rink, empty stands, protective netting, overhead lighting, +338
    poseCOMBOrandom344 options: disabled, random, standing straight, facing camera, leaf in hand, standing, hands on surface, facing camera, one arm bent, hip jutted out, direct gaze, standing straight, hands on pads, confident stance, +338
    backgroundCOMBOrandom270 options: disabled, random, Eye-level shot, centered subject, direct perspective, Eye-level shot, centered subject, natural daylight, Eye-level shot, central framing, natural lighting, Eye-level shot, direct perspective, clear focus, +264

    Outputs (5)

    NameTypeDescription
    promptSTRING
    seedINT
    t5xxlSTRING
    clip_lSTRING
    clip_gSTRING