Zenkai Prompt V5
Walk a prompt list one line at a time, reproducibly
- STRING
The difference between "random" and "deterministic" is the difference between Zenkai Prompt V4 and V5. V4 samples randomly and lets you blacklist; V5 drops the blacklist and adds a sequential mode, which is the mode you actually want for systematic batch work. Same idea - pick prompts from a text file, one per line - but V5 is the one that lets you walk through a list in order and always know what's next.
It's part of the Zenkai prompt suite in DJZ-Nodes, Drift Johnson's prompt-engineering collection. The pack ships about 200 themed text files in prompts/, from traditional storytelling sets to cyberpunk and LTXV scene lists, and V5 is how you work through them methodically - say, one prompt per frame batch in a video workflow, or a slow sweep through a story's beats.
How it works
The text_file dropdown lists every .txt in custom_nodes/DJZ-Nodes/prompts/. In random mode it's the same seeded sampling as V4. In sequential mode the seed becomes a starting position, not a randomizer: line index is (seed + i) % total_lines, so num_prompts grabs consecutive lines starting at the seed, looping when it hits the end. Bump the seed by one and you advance one line - that's the whole trick, and it makes a great poor-man's keyframe system for video prompts.
prefix and suffix wrap every selected line, and the result is one comma-joined string. The author's own docs suggest using prefix for quality tags and suffix for resolution details (masterpiece, best quality, ... , 8k, detailed), which is sound advice for tag-based models.
Inputs and outputs
- text_file - dropdown of shipped prompt files; drop your own
.txtintoprompts/and restart to add them - seed - starting position in
sequential, RNG seed inrandom - num_prompts - 1–10, joined with commas
- mode -
sequentialorrandom - prefix / suffix - optional wrapping on every prompt
Output is a single STRING - straight into a CLIP Text Encode node, or through a wildcard node if you want further variation. Reproducibility is the point: the same seed and mode give you the same selection every run, so you can log the seed of a good render and rebuild it later.
Install
ComfyUI Manager → search DJZ-Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-Nodes
cd DJZ-Nodes
pip install -r requirements.txt
Restart ComfyUI. Like V4, this node is pure standard library - no ffmpeg, no VHS, no heavy deps. If it's absent from your node list, the pack's __init__.py silently skipped it; check the console for "Unable to import ZenkaiPromptV5".
Troubleshooting
If it ever returns "No valid prompts found in the file," the file is empty or all blank lines - check for trailing whitespace-only entries. UTF-8 encoding matters for special characters, so save your custom files as UTF-8. And the dropdown is populated at node load, so new files need a ComfyUI restart before they appear. If your workflow loads with the node missing entirely, it's usually a stale install - pull the pack again from Manager or git pull in the pack folder.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| text_file | COMBO | 204 options: 05-trad-obsessions.txt, cyberSocietyV4.txt, paradistro-gen.txt, Thorra-Actions-airlock.txt, LTXV-surrealist-scenes.txt, cyberninjav1.txt, +198 | |
| seed | INT | 00–4294967295 | — |
| num_prompts | INT | 11–10 | — |
| mode | COMBO | 2 options: sequential, random | |
| prefixopt | STRING | — | |
| suffixopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |