Pony Character Prompt Picker
Let the spreadsheet pick your pony character, so you don't have to
- prompt
- seed
You've got a spreadsheet of pony characters - hundreds of danbooru-style tag strings for Nier girls, Pokemon, western cartoons - and instead of generating you're just scrolling it again. This node is the "I can't decide" button. It opens an .xlsx, grabs a random cell from a column, slaps the Pony quality preamble on the front, and hands you a ready-to-run prompt string. Wire its output into a CLIP Text Encode and you've built a character slot machine: hit queue, get a character you didn't pick, repeat.
What it is
Pony Character Prompt Picker is one tiny class (category prompt) from the jeffrey2212/ComfyUI-PonyCharacterPrompt pack. It loads a workbook with openpyxl, picks a sheet, walks a single column starting at row 3, and returns random.choice() on the non-empty cells. Nothing about it calls an API or needs a model download - it's pure spreadsheet roulette, which is the entire appeal.
It's aimed squarely at Pony V6 XL. The default prefix is score_9, score_8_up, score_7_up, and that's not an accident. Pony's training glitched in a way that made the full score-tag string mandatory for good output - the model basically treats it as a quality gate. And the bundled sample file is full of exactly Pony's native vocabulary: 2b_(nier:automata), nier_(series), 1girl, white_hair, covered_eyes. Which is your honest warning: those score tags are meaningless on Illustrious, Flux, or base SDXL, so on non-Pony models this node's default prefix does nothing for you.
The inputs that matter
Six inputs, and you really touch three of them:
- excel_path - path to the workbook, default
pony_char_list.xlsx. Here's the gotcha: relative paths resolve against the node's own folder, not ComfyUI's directory or wherever you launched from. The repo ships a sample file, so it works out of the box - but a file you drop anywhere else needs an absolute path. - sheet_name - which tab to read. The bundled workbook has six real sheets (Female/Male character list, Pokemon List, Western character list, Innate artist list) plus a "links and info" tab.
- column_letter - which column holds the prompts. Default
A, and each cell should be a complete prompt fragment, not a single tag.
seed_mode (randomize/fixed) and seed control the pick. In randomize mode it rolls a fresh seed and hands it back to you; in fixed mode the same seed plus the same file picks the same character every time. That's the whole reason the node bothers outputting a second value.
Outputs
- prompt (STRING) - the full combined string: your prefix items, then the picked cell.
- seed (INT) - the seed actually used. Log it, store it in a workflow widget, or feed it back in later to reproduce a specific character.
Installing it
Via ComfyUI Manager, search "Pony Character Prompt Picker". Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/jeffrey2212/ComfyUI-PonyCharacterPrompt
then restart ComfyUI. The one real dependency is openpyxl (see requirements.txt); Manager installs it for you, and a manual install just needs pip install openpyxl in ComfyUI's Python environment.
Where people get burned
The error messages are blunt and mostly self-explanatory, straight from the code:
- "Excel file not found" - the path got joined onto the node directory. Use an absolute path or drop the file next to
nodes.py. - "Sheet 'X' not found" - typo, or the tab name isn't what you think it is.
- "No valid values found in column A starting from row 3" - rows 1–2 are treated as headers and skipped, so if your data starts at row 1 you'll get nothing. Empty column, same error.
One cosmetic quirk: the output string ends with a trailing ", ". Harmless - the text encoder doesn't care.
The honest verdict
This is a one-commit project from October 2024, untouched since, with effectively zero community footprint. That's fine: it's a five-function utility, and it does its job. If you already roll random prompts from a text-list node or a CSV picker, you don't need it. But if you've built out a character spreadsheet and want variety without curating every queue, this is the simplest thing that works - and the bundled character list is a fun catalog on its own.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| excel_path | STRING | pony_char_list.xlsx | — |
| sheet_name | STRING | Female character list | — |
| column_letter | STRING | A | — |
| prefix | STRING | score_9, score_8_up, score_7_up | — |
| seed_mode | COMBO | 2 options: randomize, fixed | |
| seed | INT | 00–18446744073709550000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| seed | INT | — |