OC Generator / Generate Character
One seed, a settings object, and a brand-new anime character
- settings
- prompt
- formatted_prompt
- name
- hair_style
- hair_color
- eye_color
- accessory
- bust_size
- metadata_json
If you've ever sat in front of a blank prompt box trying to invent a character - hair, eyes, vibe, accessory, done - this is the node that makes that a button press. OC Generator / Generate Character takes a settings object and a seed, and spits out a complete, deterministic anime character: prompt tags, a slug name, and the individual trait picks. It does the "blank page" part of character generation so the sampler can do the fun part.
It's not a LoRA, not an adapter, not a character-consistency tool. This is prompt-side randomization - you feed the output into a normal CLIP Text Encode and KSampler, exactly like any other prompt. The character-consistency problem (keeping one character across images) is deliberately someone else's problem; this node's job is the opposite direction, inventing a fresh OC on demand, or iterating a cast of them.
How it works
Under the hood it's refreshingly simple and boring, which is the point. The pack loads JSON data files (hair_styles.json, eye_colors.json, accessories.json, and so on) and builds a seeded random.Random(int(seed)). It then draws one trait per category in order: hair style, hair color, eye color, accessory (rolled against a probability), and a weighted bust size.
Everything is deterministic: the same seed plus the same settings gives the same character, every time. That's a real virtue - you can hunt for a seed you love, lock it, and know it's not going to drift when you rerun. If a trait is marked (not fixed) in the settings, it's rolled randomly; if it's fixed, it's always picked. List generation uses seed + index, so a batch is just as reproducible as a single draw.
The inputs and outputs that matter
The node only takes two inputs, both required:
seed- a plain integer. This drives every random pick. Change it, get a different character; leave it and everything else fixed, get the same one. Convert it to an input and wire aPrimitiveIntif you want one seed controlling several branches.settings- theOC_GENERATOR_SETTINGSobject from the pack'sSettings,Load Settings Preset, orSave Settings JSONnodes. All the interesting knobs live in there, not here.
The outputs are where the value is:
prompt- the comma-joined tag string (masterpiece, best quality, 1girl, solo, anime style, long flowing hair, ...). This is what you feed a CLIP Text Encode. The tag style is aimed at the SDXL anime lineage - Pony, Illustrious, NoobAI - where tag prompting still works andmasterpiece, best qualityis alive. On a 2026 LLM-encoded model it'll be mostly ignored, so match the node to the checkpoint.formatted_prompt- a structured block inname:/positive:/negative:format. Handy if you use a downstream parser that understands that layout; if you don't, usepromptand ignore it.name- a slug likelong_straight_hair_black_hair_blue_eyes_small, built from the selected traits. Great for filenames.hair_style,hair_color,eye_color,accessory,bust_size- the individual picks, so you can route them to a filename builder or a metadata node.metadata_json- the full dump: seed, settings, bust-weight distribution, and the final result. Stash this in a text save node and you can fully reconstruct any generation.
Install
No models, no pip dependencies, no GPU muscle. It's pure standard-library Python plus JSON data files. ComfyUI Manager: search for comfyui-original-character-generator and hit Install. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/nade-eaf4fc/comfyui-original-character-generator.git
Then restart ComfyUI and look for the OC Generator category in the node menu. There's also a companion web app (original-character-generator-web) that can export compatible settings_json if you want to design presets in a browser first.
Where people get burned
A couple of gotchas, straight from the README. The settings object is an opaque bundle, so if you orphan the node by deleting its upstream Settings node mid-workflow, the type socket goes with it - reconnect, don't fight it. Recent pack updates have also broken existing workflows and required reconnecting nodes, so if something suddenly won't wire, check for an update before rewriting your graph. And remember production_mode: it's true by default and hides developmentOnly entries, so if an option you saw in a tutorial is missing, that's why.
You can't fix a bad-looking character here - you can only regenerate or pin down the traits you like. That's the trade for "no thinking required," and it's a good one.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| settings | OC_GENERATOR_SETTINGS | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| formatted_prompt | STRING | — |
| name | STRING | — |
| hair_style | STRING | — |
| hair_color | STRING | — |
| eye_color | STRING | — |
| accessory | STRING | — |
| bust_size | STRING | — |
| metadata_json | STRING | — |