Nodes/Doom_Flux_NodePack/Doom Random Prompt
ComfyUI Node

Doom Random Prompt

Doom Random Prompt

By PeterMikhai·Created about a year ago·Updated 6 days ago· 1
Doom Random Prompt
    • random_prompt
    • counter
    • seed_used
    counter0
    seed-1
    enable_backgroundtrue
    enable_characterstrue
    enable_clothingtrue
    enable_color_palettetrue
    enable_compositiontrue
    enable_decorativetrue
    enable_gendertrue
    enable_lightingtrue
    enable_moodtrue
    enable_motiontrue
    enable_specialtrue
    enable_styletrue
    enable_techniquestrue

    Writer's block is a real workflow problem, and Doom Random Prompt is the pack's cure: it assembles a prompt from category word-lists shipped in the pack, with two wildcard syntaxes you can use to shape exactly how random "random" gets. Set a seed and it becomes reproducible - the same seed, the same counter, the same prompt, every time. That's the difference between a dice roll and a workflow you can actually debug.

    How it works

    The pack ships 13 category files in its lists/ folder - background, characters, clothing, color_palette, composition, decorative, gender, lighting, mood, motion, special, style, techniques. The node reads those, picks one line from each enabled category, and stitches them into a prompt. Each category has an enable_<name> toggle, so you can, say, lock out style and techniques when you only want scene descriptions.

    Two wildcard syntaxes extend it beyond the fixed categories:

    • {a|b|c} - pick one of the alternatives inline.
    • __filename__ - pull a random line from lists/filename.txt at that spot in the prompt.

    So you can write a template prompt where half the words are fixed and half are rolls, which is the sweet spot: structured enough to be coherent, random enough to keep surprising you.

    The inputs that matter

    • counter - increments each run, and it's part of what makes a seed reproducible. Feed the counter output back into this input and it climbs by one per run.
    • seed - -1 means a fresh random pick every run. Any non-negative value makes the result reproducible: same seed + same counter = same prompt.
    • enable_* - the category toggles. All default on.
    • seed_used (output) - the seed that was actually used. Log this; it's what lets you recreate a prompt you liked three weeks later.

    Outputs are random_prompt (the assembled string), counter (input + 1, for the loopback), and seed_used.

    Setup and the catches

    Standard pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/PeterMikhai/Doom_Flux_NodePack
    

    Restart ComfyUI, or search "DoomAI Nodes" in Manager. No dependencies.

    Three things are worth knowing before you lean on it:

    • The lists are yours to edit. They live in the pack's lists/ directory. The shipped categories are a start, not a contract - the real power is replacing the lines with your own vocabulary. Add your own .txt and the node picks it up as a new category on restart.
    • "Reproducible" requires discipline. Same seed and same counter. If the counter drifts (say you changed the loopback wiring), the "same" seed gives a different prompt. That's by design - it's what makes counter an intentional knob.
    • It's a starting point, not a finished prompt. These categories produce describe-the-scene text, which suits Flux and Krea 2 fine. On strict SDXL-style tag models, you may want to pipe the result through a prompt builder or edit it down.

    One honest note: the shipped vocabulary is English and generic - you're not going to get "the exact niche aesthetic from that one artist" out of the box. But as a slot machine for "give me something I didn't think of", it's exactly the right amount of machine, and the seed logic is done properly, which is rarer than it should be.

    CategoryDoom/Prompt

    Inputs (15)

    NameTypeDefaultDescription
    counterINT0Счётчик прогонов (увеличивается на 1)
    seedINT-1-1–18446744073709550000-1 — случайный сид каждый раз; >=0 — воспроизводимый результат
    enable_backgroundBOOLEANtrueИспользовать категорию «background» (lists/background.txt)
    enable_charactersBOOLEANtrueИспользовать категорию «characters» (lists/characters.txt)
    enable_clothingBOOLEANtrueИспользовать категорию «clothing» (lists/clothing.txt)
    enable_color_paletteBOOLEANtrueИспользовать категорию «color_palette» (lists/color_palette.txt)
    enable_compositionBOOLEANtrueИспользовать категорию «composition» (lists/composition.txt)
    enable_decorativeBOOLEANtrueИспользовать категорию «decorative» (lists/decorative.txt)
    enable_genderBOOLEANtrueИспользовать категорию «gender» (lists/gender.txt)
    enable_lightingBOOLEANtrueИспользовать категорию «lighting» (lists/lighting.txt)
    enable_moodBOOLEANtrueИспользовать категорию «mood» (lists/mood.txt)
    enable_motionBOOLEANtrueИспользовать категорию «motion» (lists/motion.txt)
    enable_specialBOOLEANtrueИспользовать категорию «special» (lists/special.txt)
    enable_styleBOOLEANtrueИспользовать категорию «style» (lists/style.txt)
    enable_techniquesBOOLEANtrueИспользовать категорию «techniques» (lists/techniques.txt)

    Outputs (3)

    NameTypeDescription
    random_promptSTRINGСобранный промпт
    counterINTСчётчик (вход + 1)
    seed_usedINTСид, реально использованный