AI Character Reference Bank — Consistent Characters avatar

AI Character Reference Bank — Consistent Characters

Pricing

from $150.00 / 1,000 character banks

Go to Apify Store
AI Character Reference Bank — Consistent Characters

AI Character Reference Bank — Consistent Characters

Describe one character and get a matching reference set. You get a portrait, three-quarter, full body, side profile and expression sheets. It also writes a character-bible prompt you can reuse. That keeps the face, hair, outfit and colors the same in every shot. $0.15 per character, flat.

Pricing

from $150.00 / 1,000 character banks

Rating

5.0

(2)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

10 days ago

Last modified

Share

AI Character Reference Bank: one description, a matching set of reference images

Describe a character in a sentence and you get a sheet of them: portrait, three-quarter, full body, side profile and four expressions, all in one art style. You also get a characterBible string, a block of prompt text you paste into later prompts so the same face, hair and outfit keep turning up.

Two things up front. It runs on your own OpenAI key, so the renders land on your OpenAI bill on top of the charge here. And the consistency is written, not locked: there is no reference image behind it, so a character stays recognisable rather than identical.

InputOne or more character descriptions
OutputOne row per character, plus one image per view
CeilingEight views per character, and no cap on how many characters
Account neededYour own OpenAI API key
Price$0.15 per character, flat on every plan

🎭 What AI Character Reference Bank does

You give it a character. It writes a character bible out of your description and your style line, then renders that bible once per view you asked for.

Eight views exist: portrait, threequarter, fullbody, side, happy, angry, sad and surprised. Ask for a name that is not on that list and it is dropped without complaint. Ask for nothing but names that are not on it and you get portrait alone.

Characters run in order and views run in order inside them, so a run of five characters at five views each is forty images made one after another. Expect a wait.

aspectRatio sets the shape: 1:1 is 1024x1024, 9:16 is 1024x1536, 16:9 is 1536x1024.

📥 What you give it

{
"characters": [
{ "name": "Milo", "description": "a small brave fox cub with a red scarf and bright green eyes, cartoon style" }
],
"views": ["portrait", "threequarter", "fullbody", "happy", "angry"],
"aspectRatio": "1:1",
"quality": "high"
}
FieldDefaultWhat it is
charactersnonePlain strings, or objects with name and description. The form opens with a fox cub filled in as an example, which is a starting point rather than a default.
viewsportrait, threequarter, fullbodyWhich of the eight to render. The form suggests five, which is a prefill, not the default: leave the field alone in the API and you get three.
styleconsistent character design, clean studio background, highly detailed, soft even lightingThe art direction folded into every prompt. Change this and the whole set changes together.
aspectRatio1:11:1, 9:16 or 16:9.
qualityhighlow, medium or high. This moves your own OpenAI bill, not the charge here.
openaiApiKeynoneYour own OpenAI key. Marked secret.
baseUrlnoneAdvanced. Any OpenAI-compatible host. Empty means https://api.openai.com/v1.

Give each character a different name. The image keys are built from it, so two characters called the same thing write to the same key and the second one overwrites the first.

Run it with no key and you get a labelled demo record in the key-value store rather than pictures. Run it with a key but no usable character and the run stops with an error, because there is nothing to draw.

📤 What you get back

One dataset row per character, with the images themselves in the run's key-value store under keys like milo-portrait-1786411663909.png.

FieldWhat it is
oktrue. Only characters that produced at least one image reach the dataset.
nameWhat you called them, or null if you passed a plain string.
slugThe tidied name used in the file keys. Unnamed characters get character-1, character-2.
descriptionYour description, unchanged.
characterBibleThe reusable prompt text. This is the part worth keeping.
referencesOne entry per view. A rendered view carries view, imageKey and imageUrl. A view that failed carries view and error instead.

No example row is printed here. No run on record has produced one with a working customer key, and a plausible row typed out by hand is worse than none.

🧾 Reading the output

A character is in the dataset when at least one of its views came back. Everything else goes to the SAMPLE_AND_NOTICES record in the run's key-value store.

RecordWhere it landsBilled
A character with one or more imagesA dataset rowyes
The keyless demoKey-value store, SAMPLE_AND_NOTICESno
A character where every view failedKey-value store, SAMPLE_AND_NOTICES, ok: falseno

Read references before you use a row, because a character with one view out of five still counts as one character and is charged as one. The four that failed are sitting in that array with their reason next to them, and image_gen_failed_<status> is the shape those messages take.

If every view of every character fails, the run still ends green with an empty dataset. Look in SAMPLE_AND_NOTICES and at the run log, where each failed view is warned about by name.

The Overview table shows name, slug, description, characterBible and references. The images are not previewed there, since references renders as raw JSON in a table cell. Open the key-value store to actually look at them.

▶️ How to run it

  1. Open AI Character Reference Bank and click Try for free.
  2. Paste your key into OpenAI API key (BYO).
  3. Write your character into Characters. Be specific about age, hair, clothing and colours: that sentence is doing all the work.
  4. Tick the views you want in Reference views.
  5. Click Start, then take the images from the run's Storage tab and copy characterBible out of the row.

💰 How much does it cost?

$0.15 per character. Flat on every Apify plan, no volume tiers. The number of views does not change it: three views or eight, the character is one charge.

You pay per character that produced at least one image. The keyless demo and a character whose views all failed are not charged. OpenAI bills your own key separately for each render, and that side does scale with the number of views, so a long view list is the expensive choice on your bill rather than on this one.

💡 What people use it for

  • Keeping a cast straight across a comic or webtoon, where the same four people appear in every panel.
  • Faceless video series with a recurring narrator or mascot.
  • Game and animation pitches, where a character sheet is the deliverable.
  • Building characterBible strings once and reusing them in other image tools for months.

🚧 What it does not do

  • No reference-image locking. Consistency comes from the written bible, not from a locked face, so expect family resemblance rather than a clone.
  • No retries. A view that fails once fails for good in that run, including a rate-limit refusal. Run it again.
  • Every file is saved as PNG, with a PNG content type, whatever came back.
  • No editing, no upscaling, no posing. It renders the eight views it knows and stops.
  • Partial sets bill in full. One view out of five is still a character and still $0.15.
  • Same name, same file key. Two characters with the same name overwrite each other's images.

🧭 Which AI image actor do you need?

If you wantUse
One character in a set of matching viewsThis one
A run of scene images that tell a storyAI Storyboard Generator
A single thumbnail built to be clickedViral Thumbnail Generator
A finished vertical video, script and voice includedAI Faceless Video Generator
Images you already have turned into a videoStoryboard Video Generator

❓ Questions people ask

Do I need my own key? Yes, for the renders. Without one you get the demo record.

Can I run several characters at once? Yes. Put them all in characters and each becomes its own row and its own charge. They render one after another.

What do I actually do with characterBible? Paste it into the prompt of whatever you draw with next. That is the string that carries the look forward.

Why did one of my views come back empty? Its reason is in that entry of references. Usually the key was refused, or the image model is not available on the host you pointed at.

Can I upload a photo of a character instead? No. It works from text only.

Does asking for more views cost more here? No. Views move your own OpenAI bill, not this charge.

🆘 If something breaks

Open the Issues tab on the actor page. Include the run ID and the error text from the references entry that failed, since that message says what the image call actually answered.