π²LC Wildcard
π² LC Wildcard β random prompt lines without the wildcard syntax
- text
LC Wildcard is how you get prompt variety without writing forty prompts. Pick a list file, and every run it hands you one random line from that file as plain text - ready to feed into a subject, a prompt box, or LC Join Strings. It's the old A1111 wildcard idea with the syntax stripped out: no __keyword__ magic to remember, just a dropdown and a seed.
If you came from Automatic1111 you know wildcards as those {this|that|the other} bracket tricks and __name__ placeholders that pick a different combination per batch. The LC version is simpler and a bit more honest: you choose which list, it draws one line. The trade-off is that it can't nest or chain the way syntax-based wildcards can - but for "randomize the action in a subject prompt," one line is usually exactly what you want.
How it works
The dropdown is populated from assets/wildcards/ inside the pack - 44 .txt files grouped in folders like Actions/, Camera and effects/, Locations/, Clothes/, Extras/, and people/. Each file is just a list of lines: drinking coffee at a cozy cafe, reading a book on the living room couch. Blank lines and lines starting with # are skipped, so you can leave comments in your lists.
The important part is the seed control, because it's what makes this usable:
- wildcard - which list file to draw from.
- base_seed - the starting point for selection.
- seed_mode -
fixed(same line every run),randomize(new line every run, the default), orincrement/decrement(step through the list predictably).
Selection is deterministic from the seed via a seeded RNG, so fixed + a given base_seed gives you the same line every time - that's the property that makes a wildcard reproducible when you finally land on a composition you like. In randomize mode the node marks itself as changed every run, which is how ComfyUI knows to re-execute it. The output is a single text string; wire it anywhere a STRING is accepted, including the subject description on a ποΈLC Subject node or straight into the prompt assembler.
Where it fits
The killer workflow is batching. Lock randomize, batch 20, and each image gets a different action or lighting phrase while everything else stays fixed - the same "change one variable, keep the scene" trick the community uses to build character reference libraries, except you don't have to hand-write the variants. If you're using the LC Prompt Builder, drop it into a subject's description and set pose/action to none so the wildcard line doesn't fight the dropdown presets.
A couple of practical notes. The list files live inside custom_nodes/ComfyUI_LC123_nodes/assets/wildcards/, so if you want your own lists, drop a .txt there and restart - they show up in the dropdown automatically. And don't expect __keywords__ inside list lines to be expanded; the node returns the raw line, so any {...} syntax you write in a file is passed through as literal text. Keep the lines as final prompt fragments and you're fine.
Install
Part of the ComfyUI_LC123_nodes pack. ComfyUI Manager (search "LC123"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
Restart after. No extra pip packages - this is the rare pack with no requirements.txt, just torch/numpy from ComfyUI's own environment.
The honest verdict
It's a small node and it won't replace a real dynamic-prompting suite if you need nested or weighted randomness. But if your use case is "give me a different everyday action / camera angle / location each batch," it's zero-config and predictable in the ways that matter - seed-lockable, reproducible, and it plays nicely with the rest of this prompt-builder stack.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| wildcard | COMBO | Actions/Everyday_actions.txt | List file under assets/wildcards/. One random line is chosen. |
| base_seed | INT | 00β18446744073709550000 | Base seed. seed_mode decides fixed / randomize / increment / decrement. |
| seed_mode | COMBO | randomize | fixed: reuse base_seed. randomize / increment / decrement: every run (full queue or this node only). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | β |