π¨ Auto Prompt Combiner
Cross every character with every style, and let ComfyUI sort it out
- prompts
- negative
Auto Prompt Combiner is the pack's answer to the "which artist style suits which character?" question - the one that's genuinely painful to answer by hand. You give it a character file and a style file, tell it how many of each to use, and it runs a nested loop: for every character you picked, every style you picked, producing char_count Γ style_count full prompts.
That's 6 characters Γ 10 styles = 60 prompts in one run, and you finally get to see Reimu in the style of flooxyfloox next to the style of nikukyu without typing either prompt. For character-sheet exploration or style studies on Illustrious - where artist tags like style by pnya are first-class citizens the model actually honors - this is exactly the workflow you'd otherwise build by hand in a spreadsheet.
How it works
The mechanics are in nodes/prompt_combiner.py and they're refreshingly boring. It parses both TXT files (same tags<TAB>name format as the rest of the pack), then:
char_start_indexandchar_countpick the character windowstyle_start_indexandstyle_countpick the style window- for each character, for each style:
quality tags + style tags + character tags + random action + random background + random camera + custom positive
Each prompt gets its own fresh random action/background/camera (seeded by seed for reproducibility). One hard cap worth knowing: char_count Γ style_count is clamped to 100 - the node returns an error string if you exceed it, which is the author protecting you from a 10,000-prompt accident.
The inputs that matter
character_fileandstyle_file- two dropdowns, both populated from the pack'sprompts/folder. The samples aresample_1girl_v1.txt(characters) andstyle_names_v1.txt(67style by β¦artist lines).char_count/style_count- the two dimensions of your grid. Mind the product cap.preset- defaults todynamichere (the loader defaults tostandard), which is a deliberate choice: for style combos the author figures you want motion. Swap tononeif you want the rawstyle by Xtags to do the talking.random_action/random_background/random_camera- same toggles as the other nodes, on by default.
Outputs: prompts (a list of char_count Γ style_count strings) and negative (one shared negative, preset + your custom_negative).
The gotcha is identical to the batch node
prompts is a list, and a plain CLIP Text Encode will only ever see the first element. The author's combiner_workflow.json demonstrates the same pattern as the batch workflow - preview the list, sample slot 0. To actually render all 60, you need a list-aware consumer (Impact Pack ForEach or similar). The good news: because the list is ordered character-major (all styles for char 1, then all for char 2), you can read the preview and know exactly which row of your grid you're looking at.
Install
ComfyUI Manager: search "Auto Anime Prompt", restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/jluo-github/comfyui-auto-anime-prompts
No dependencies beyond what ComfyUI ships, no models to download, MIT license. Python 3.10+.
Verdict
This is the pack's best idea, slightly undercut by the list-consumption friction in stock ComfyUI. If you already have list-handling machinery in your graph, it's a genuinely powerful little grid generator for Illustrious artist-style exploration. If you don't, expect a ten-minute detour wiring up iteration before it pays off - then it pays off every single time you'd have hand-built a comparison grid.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| character_file | COMBO | sample_1girl_v1.txt | 2 options: sample_1girl_v1.txt, style_names_v1.txt |
| style_file | COMBO | style_names_v1.txt | 2 options: sample_1girl_v1.txt, style_names_v1.txt |
| char_start_index | INT | 00β99999 | β |
| style_start_index | INT | 00β99999 | β |
| char_count | INT | 11β100 | β |
| style_count | INT | 11β100 | β |
| preset | COMBO | dynamic | 8 options: none, standard, dynamic, atmospheric, flat, dreamy, +2 |
| random_action | BOOLEAN | true | β |
| random_background | BOOLEAN | true | β |
| random_camera | BOOLEAN | true | β |
| custom_positiveopt | STRING | β | |
| custom_negativeopt | STRING | β | |
| seedopt | INT | 00β18446744073709550000 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompts | STRING | β |
| negative | STRING | β |