Draw Wildcards
The node that is the card deck
- text_1
- text_2
- text_3
This is the "draw"
ProtoTeller's whole gimmick is that cards get dealt - randomly, but reproducibly. Draw Wildcards is the dealing. It takes up to three text inputs, resolves the wildcard syntax inside them, and hands back three finished strings. Feed it __cards__ and it picks a random tarot card name. That randomness is the draw, and the whole reading flows from it.
The syntax
Two things it understands, both familiar if you've used Impact Pack's wildcards or A1111 dynamic prompts:
__name__- pick a random line from a matching.txtfile in the pack'swildcards/folder.__cards__readscards.txt(the 78 card names),__card-dis__reads the upright meanings,__card-invt__the reversed ones. Keys are lowercased and spaces become hyphens, so a filethe-fool.txtis addressed as__the-fool__.{a|b|c}- pick one option inline, the old A1111 way:{The Fool|The Magician|The High Priestess}.
They nest. A wildcard can resolve to something that itself contains another __tag__ or {choice} block, and the node keeps expanding until nothing changes, capped at 100 passes so you can't build an infinite loop.
Inputs and outputs
- text_1 / text_2 / text_3 - three independent templates, each resolved separately.
- seed - INT up to 2^64-1, and it's the whole point: same seed → same three draws; bump it → a fresh spread. In the bundled workflow this is wired to the KSampler's seed, so the cards you drew and the art generated for them stay locked to the same shuffle.
- Outputs: three STRINGs (text_1, text_2, text_3), fully resolved.
The gotcha in the docstring
The class docstring says it also loads Impact Pack wildcards and the custom_wildcards path "if configured." The shipped code doesn't - it reads only the pack's own wildcards/ folder. The good news is what that implies: you extend the deck by dropping .txt files into custom_nodes/ComfyUI-ProtoTeller/wildcards/, and they're addressable by filename right away. __mytheme__ → mytheme.txt.
One more: an unresolvable __typo__ passes through to the output untouched rather than erroring. So a misspelled tag silently pollutes your prompt instead of telling you it failed. If your generated reading contains literal __ text, that's your clue to check your tag.
Install
Same as the rest of the pack: ComfyUI Manager → search "ProtoTeller", or
cd ComfyUI/custom_nodes
git clone https://github.com/DoctorDiffusion/ComfyUI-ProtoTeller
then restart. No models or Python deps needed for this node - the wildcard files ship inside the repo. (And per the author, the two recommended LoRAs - the negative one and the tarot card LoRA - are optional; the workflow swaps in any LoRAs.)
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| text_1 | STRING | — | |
| text_2 | STRING | — | |
| text_3 | STRING | — | |
| seed | INT | 00–18446744073709550000 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| text_1 | STRING | — |
| text_2 | STRING | — |
| text_3 | STRING | — |