AI Character Reference Bank
Turn a text description into a consistent character reference set (portrait, 3/4, full-body, expressions) plus a reusable character-bible prompt. No code.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
characters,views,style(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.15 per character bank = $150 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Character bank | One character reference bank + bible. | $0.15 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.0000125 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-08, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
characters | Array of character descriptions — plain strings, or objects { name, description }. | array |
views | Which views/expressions to render: portrait, threequarter, fullbody, side, happy, angry, sad, surprised. | array |
style | Shared art style for the character set. | string |
aspectRatio | Image shape. | string |
quality | gpt-image-1 quality. | string |
openaiApiKey | Your OpenAI key (gpt-image-1). Kept private. | string |
baseUrl | OpenAI-compatible base URL. Default https://api.openai.com/v1. | string |
What you get
A structured dataset — each result includes fields like:
_demo_noticecharacterBibledescriptionnamereferencesslugExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
2 ready-to-run use cases
AI Anime Character Turnaround Sheet: Front, 3/4, Side
Anime model sheet with front, 3/4, and side views plus a row of expressions, generated in one consistent style for animators and visual novel artists.
Generate a Full Character Cast in One Shared Art Style
Need a whole story cast that matches? Pass three characters and get a reference sheet for each, all locked to one art style for comics, games, and VNs.
Related tools in YouTube & Creator Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
YouTube Channel Scraper
Scrape every video from any YouTube channel, no login or API key: views, dates, duration and thumbnails.
YouTube Comments Scraper
Scrape YouTube comments and replies with no login or API key: text, likes, reply counts, authors and timestamps.
YouTube Playlist Scraper
Export every video in a YouTube playlist: title, channel, duration, views, publish date and URL. No API key, OAuth or quota.
YouTube Transcript Scraper
Extract YouTube transcript text, timestamped segments, SRT, VTT, languages and video metadata without an API key.
YouTube Trending Scraper
Scrape trending YouTube videos by topic or keyword, no login or API key. Views, titles, channels, duration, thumbnails.
YouTube Channel Email Scraper
Find business emails publicly listed in YouTube channel descriptions and their linked websites. Built for creator outreach and sponsorships. No login needed.
Where this tool sits
AI Character Reference Bank
Give it a one-line character description and it generates a matching set of reference images (portrait, three-quarter, full body, side profile, and expression sheets) plus a reusable "character bible" prompt you can paste into later jobs. It's built for people who need the same character to show up identically across many shots: comics, faceless videos, game concepts, storyboards.
How it works
For each character it writes a character-bible prompt from your description and shared style, then sends that same bible to OpenAI's gpt-image-1 once per requested view, appending the view instruction (front portrait, 3/4 angle, full body, side, or an expression). Reusing one locked description per view is what keeps the face, hair, clothing, and colors consistent across the set.
Input
You bring your own OpenAI key. Nothing is strictly required by the schema. Run it without a key and it returns one clearly-labeled SAMPLE record showing the output shape instead of real images — that row is billed like any other (see Pricing).
| Field | Required | Notes |
|---|---|---|
characters | yes (in practice) | Array of descriptions. Plain strings, or objects { name, description }. The name becomes the file slug. |
views | no | Which views/expressions to render. Any of portrait, threequarter, fullbody, side, happy, angry, sad, surprised. Defaults to portrait, threequarter, fullbody. |
style | no | Shared art style applied to every character so the whole set matches. Defaults to a clean studio-portrait style. |
aspectRatio | no | 1:1, 9:16, or 16:9. Defaults to 1:1. |
quality | no | gpt-image-1 quality: low, medium, high. Lower is cheaper and faster. Defaults to high. |
openaiApiKey | yes (in practice) | Your OpenAI key with gpt-image-1 access. Stored as a secret. |
baseUrl | no | Override for an OpenAI-compatible endpoint. Defaults to https://api.openai.com/v1. |
Output
Each character is one dataset record. The PNG files land in the run's key-value store, and the record links to them. Key fields per record: name, slug, description, characterBible (the reusable prompt), and references, an array of { view, imageKey, imageUrl }. If a particular view fails, that entry carries an error instead of an image and the rest still run — the character's record is written either way, and the charge is per record.
Example
{
"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"],
"style": "consistent character design, clean studio background, soft even lighting",
"aspectRatio": "1:1",
"quality": "high",
"openaiApiKey": "sk-..."
}
Pricing
$0.15 per dataset row, plus $0.0000125 each time a run starts, charged per GB of run memory — $0.00005 a run at this actor's default 4 GB.
One character is one row, so three characters cost $0.45 no matter how many views you ask for: the view count drives your OpenAI bill, not the Apify one. Two cases are worth knowing, because the charge is per row rather than per usable result:
- a keyless run writes one labelled SAMPLE row and costs $0.15, so the preview is not free;
- a character whose views all failed still gets a row (with
errorentries underreferences) and is still charged $0.15.
Pay per result, no subscription. OpenAI image costs are billed separately to your own key.
Notes
The character bible reduces drift but doesn't eliminate it. Across many views you'll still see small inconsistencies, so treat the set as strong references rather than a guarantee, and reuse the characterBible string verbatim in downstream prompts to stay on model.