Nodes/comfyui-original-character-generator/OC Generator / Generate Character
ComfyUI Node

OC Generator / Generate Character

One seed, a settings object, and a brand-new anime character

By nade-eaf4fc·Created 5 months ago·Updated 4 months ago· 1
OC Generator / Generate Character
  • settings
  • prompt
  • formatted_prompt
  • name
  • hair_style
  • hair_color
  • eye_color
  • accessory
  • bust_size
  • metadata_json
seed0

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 a PrimitiveInt if you want one seed controlling several branches.
  • settings - the OC_GENERATOR_SETTINGS object from the pack's Settings, Load Settings Preset, or Save Settings JSON nodes. 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 and masterpiece, best quality is alive. On a 2026 LLM-encoded model it'll be mostly ignored, so match the node to the checkpoint.
  • formatted_prompt - a structured block in name: / positive: / negative: format. Handy if you use a downstream parser that understands that layout; if you don't, use prompt and ignore it.
  • name - a slug like long_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.

CategoryOC Generator

Inputs (2)

NameTypeDefaultDescription
seedINT00–18446744073709550000
settingsOC_GENERATOR_SETTINGS

Outputs (9)

NameTypeDescription
promptSTRING
formatted_promptSTRING
nameSTRING
hair_styleSTRING
hair_colorSTRING
eye_colorSTRING
accessorySTRING
bust_sizeSTRING
metadata_jsonSTRING