Load Characters CSV
A dropdown that reads characters.csv
- positive prompt
- negative prompt
If you've ever generated fantasy character art, you know the grind: every new portrait means retyping "barbarian with a greataxe, fur cloak, war paint" and hoping the model agrees with you this time. Load Characters CSV is the pack's answer to that specific boredom. It reads characters.csv, which ships with around fifty archetypes - Acolyte, Artificer, Bard, Barbarian, Blood Hunter - and gives you a dropdown. Pick the class, get a prompt, wire it to your CLIPTextEncode, done. It's the fastest way to run a class-through-the-warband series without rebuilding the prompt each iteration.
Set expectations before you install, though: these are archetypes, not named characters. There's no Guts and no Geralt in the file. Each entry is a generic role-word that the model interprets in the flavor of whatever checkpoint you're running. If you want that specific character, that's what a character LoRA or IP-Adapter is for - this node is the "what kind of person" layer, not the "who" layer.
How it works
Identical skeleton to every node in this pack: on load it opens custom_nodes/ComfyUI-CSV-Loader/CSV/characters.csv, skips the header row, and parses each line into name, positive prompt, negative prompt. Names become the dropdown entries; the positive and negative strings are what the node returns. The CSV parser handles quoted commas, so a prompt containing a comma stays one field. There are no dependencies and no model files - just the stdlib CSV read that the whole pack shares.
The negative column is blank for the shipped rows, so the negative prompt output usually comes back as an empty string. Plan on combining it with your own negative text rather than expecting a free anti-bloat filter.
The inputs and outputs that matter
- characters - the dropdown. One entry per archetype in characters.csv.
- positive prompt (STRING) - feeds the positive CLIPTextEncode.
- negative prompt (STRING) - usually empty; combine as needed.
A reminder that applies to all three nodes in this chain: the STRING output must go through a CLIPTextEncode before it reaches the sampler. And the shipped prompts are comma-tag style, which is what SDXL-lineage checkpoints (Illustrious, Pony, NoobAI and friends) want; the LLM-encoded 2026 models read sentences better, so these short tag lists are weaker there.
Installing it
Unzip the pack into ComfyUI/custom_nodes/, install it via ComfyUI Manager (search "ComfyUI-CSV-Loader"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/PCMonsterx/ComfyUI-CSV-Loader
Restart ComfyUI and the ten nodes in the pack appear under "CSV Loaders". There's nothing to pip-install and no weights to download - a genuinely dependency-free node.
Common issues
- Dropdown stuck on "Error loading characters.csv, check the console". The loader path is hardcoded to the folder name
ComfyUI-CSV-Loader, so if your extraction renamed it, the file won't be found. Keep the folder name exactly as shipped. - Edited the CSV, nothing changed. The dropdown is built once when the node loads - hit Refresh in ComfyUI to rebuild it.
- Whole file fails on one bad row. The parser builds its dict in a single pass, so a line missing a column poisons the entire load. Every row needs exactly
name,positive,negative.
Last thing, and it applies to the pack as a whole: the README now says it's no longer maintained, with the author pointing to Dr.Lata nodes and forks. For this node specifically that's mostly fine - the mechanism is so simple it isn't going to rot - but it's why you should think of characters.csv as your file to edit, not a library that's going to keep growing on its own.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| characters | COMBO | 1 options: Error loading characters.csv, check the console |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive prompt | STRING | — |
| negative prompt | STRING | — |