Character design with genmedia
Use this skill when the user wants to create, refine, or preserve a character.
Load the reference files when needed:
references/anchor-system.md
references/prompt-patterns.md
references/examples.md
Load model-routing alongside this skill for default endpoint choices.
The main objective is consistency. Keep the character anchor stable and change
only the requested scene, expression, outfit, camera, or action.
Inputs to collect
Only ask for missing inputs that affect identity or model routing.
- Character type: realistic human, stylized, anime, mascot, fantasy, sci-fi.
- Identity anchor: age range, face shape, hair, eyes, build, posture, marks.
- Style: photographic, 3D, illustration, manga, comic, game concept art.
- Needed outputs: portrait, full body, turnaround, expression sheet, outfit
set, action still, video shot, edit of an existing character.
- References: source image, approved design, costume, pose, style board.
- Consistency level: exploratory, pitch-ready, production continuity.
- Model preference: use
model-routing defaults unless the user names a model
or the job needs a quality/cost tradeoff decision.
Genmedia workflow
Start from routed endpoint IDs.
genmedia models --endpoint_id openai/gpt-image-2 --json
genmedia models --endpoint_id fal-ai/nano-banana-pro/edit --json
genmedia models --endpoint_id bytedance/seedance-2.0/image-to-video --json
genmedia models --endpoint_id veed/fabric-1.0 --json
Use text search only as fallback discovery for an unsupported role:
genmedia docs "consistent character generation" --json
genmedia models "image editing character consistency" --json
Inspect schema before each endpoint run.
genmedia schema <endpoint_id> --json
genmedia pricing <endpoint_id> --json
Upload references.
genmedia upload ./character-reference.png --json
genmedia upload ./costume-reference.png --json
Run stills or sheets with download.
genmedia run <endpoint_id> \
--prompt "<anchor + variable prompt>" \
--image_url "<reference url if supported>" \
--download "./outputs/characters/{request_id}_{index}.{ext}" \
--json
Run video async.
genmedia run <endpoint_id> \
--prompt "<anchor + shot action>" \
--image_url "<approved character frame if supported>" \
--async \
--json
genmedia status <endpoint_id> <request_id> \
--download "./outputs/characters/{request_id}_{index}.{ext}" \
--json
Use only schema-supported fields. If the model supports seed, reference image,
image strength, multiple image inputs, or negative prompt, use them deliberately
and record what was used.
Character anchor
Create a short immutable anchor before generating.
CHARACTER ANCHOR:
[name or codename], [age range], [face shape], [eye shape and color],
[nose and lips], [skin tone and distinguishing marks], [hair color, texture,
style], [body build and posture], [signature clothing or silhouette],
[style target]
Then add a variable block for the current shot.
SHOT VARIABLE:
[expression], [pose/action], [outfit changes if allowed], [environment],
[camera/framing], [lighting], [mood]
Never rewrite the anchor casually. If a result changes identity, strengthen the
anchor or switch to a reference/edit workflow instead of adding more style
words.
Model routing
- New character concept with maximum consistency: use
openai/gpt-image-2.
- Premium but cheaper image option: use
fal-ai/nano-banana-pro or
fal-ai/nano-banana-2.
- Fast exploratory drafts: use
fal-ai/flux-2/klein/9b.
- Consistent sheet from an approved character: use
openai/gpt-image-2 first;
if editing an existing image, inspect openai/gpt-image-2/edit.
- Outfit variations and character edits: use
fal-ai/nano-banana-pro/edit,
then openai/gpt-image-2/edit, then
fal-ai/bytedance/seedream/v5/lite/edit.
- Expression sheet: one approved face reference, multiple controlled
expression prompts.
- Character video: approved still frame first, then
bytedance/seedance-2.0/image-to-video for final quality.
- Fast video drafts: use
xai/grok-imagine-video/image-to-video.
- Talking avatar or lip-sync: use
veed/fabric-1.0,
veed/fabric-1.0/text, or fal-ai/creatify/aurora.
Quality bar
Reject or retry when:
- Face shape, eye spacing, hairstyle, marks, or body build drift.
- Outfit changes when the prompt says only expression or pose should change.
- The sheet mixes styles across panels.
- Hands or props distract from the requested design task.
- Video motion changes age, face, costume, or silhouette.
Return downloaded paths and include the anchor used so future prompts can reuse
the same identity.
1---2name: character-design3description: Build consistent character designs and character media with genmedia. Use this for original characters, reference sheets, expression sheets, outfit variations, identity-preserving edits, and character-to-video workflows.4---5
6# Character design with genmedia
7
8Use this skill when the user wants to create, refine, or preserve a character.
9Load the reference files when needed:
10
11- `references/anchor-system.md`
12- `references/prompt-patterns.md`
13- `references/examples.md`
14
15Load `model-routing` alongside this skill for default endpoint choices.
16
17The main objective is consistency. Keep the character anchor stable and change
18only the requested scene, expression, outfit, camera, or action.
19
20## Inputs to collect
21
22Only ask for missing inputs that affect identity or model routing.
23
24- Character type: realistic human, stylized, anime, mascot, fantasy, sci-fi.
25- Identity anchor: age range, face shape, hair, eyes, build, posture, marks.
26- Style: photographic, 3D, illustration, manga, comic, game concept art.
27- Needed outputs: portrait, full body, turnaround, expression sheet, outfit
28 set, action still, video shot, edit of an existing character.
29- References: source image, approved design, costume, pose, style board.
30- Consistency level: exploratory, pitch-ready, production continuity.
31- Model preference: use `model-routing` defaults unless the user names a model
32 or the job needs a quality/cost tradeoff decision.
33
34## Genmedia workflow
35
361. Start from routed endpoint IDs.
37
38 ```bash
39 genmedia models --endpoint_id openai/gpt-image-2 --json
40 genmedia models --endpoint_id fal-ai/nano-banana-pro/edit --json
41 genmedia models --endpoint_id bytedance/seedance-2.0/image-to-video --json
42 genmedia models --endpoint_id veed/fabric-1.0 --json
43 ```
44
45 Use text search only as fallback discovery for an unsupported role:
46
47 ```bash
48 genmedia docs "consistent character generation" --json
49 genmedia models "image editing character consistency" --json
50 ```
51
522. Inspect schema before each endpoint run.
53
54 ```bash
55 genmedia schema <endpoint_id> --json
56 genmedia pricing <endpoint_id> --json
57 ```
58
593. Upload references.
60
61 ```bash
62 genmedia upload ./character-reference.png --json
63 genmedia upload ./costume-reference.png --json
64 ```
65
664. Run stills or sheets with download.
67
68 ```bash
69 genmedia run <endpoint_id> \
70 --prompt "<anchor + variable prompt>" \
71 --image_url "<reference url if supported>" \
72 --download "./outputs/characters/{request_id}_{index}.{ext}" \
73 --json
74 ```
75
765. Run video async.
77
78 ```bash
79 genmedia run <endpoint_id> \
80 --prompt "<anchor + shot action>" \
81 --image_url "<approved character frame if supported>" \
82 --async \
83 --json
84
85 genmedia status <endpoint_id> <request_id> \
86 --download "./outputs/characters/{request_id}_{index}.{ext}" \
87 --json
88 ```
89
90Use only schema-supported fields. If the model supports seed, reference image,
91image strength, multiple image inputs, or negative prompt, use them deliberately
92and record what was used.
93
94## Character anchor
95
96Create a short immutable anchor before generating.
97
98```text
99CHARACTER ANCHOR:
100[name or codename], [age range], [face shape], [eye shape and color],
101[nose and lips], [skin tone and distinguishing marks], [hair color, texture,
102style], [body build and posture], [signature clothing or silhouette],
103[style target]
104```
105
106Then add a variable block for the current shot.
107
108```text
109SHOT VARIABLE:
110[expression], [pose/action], [outfit changes if allowed], [environment],
111[camera/framing], [lighting], [mood]
112```
113
114Never rewrite the anchor casually. If a result changes identity, strengthen the
115anchor or switch to a reference/edit workflow instead of adding more style
116words.
117
118## Model routing
119
120- New character concept with maximum consistency: use `openai/gpt-image-2`.
121- Premium but cheaper image option: use `fal-ai/nano-banana-pro` or
122 `fal-ai/nano-banana-2`.
123- Fast exploratory drafts: use `fal-ai/flux-2/klein/9b`.
124- Consistent sheet from an approved character: use `openai/gpt-image-2` first;
125 if editing an existing image, inspect `openai/gpt-image-2/edit`.
126- Outfit variations and character edits: use `fal-ai/nano-banana-pro/edit`,
127 then `openai/gpt-image-2/edit`, then
128 `fal-ai/bytedance/seedream/v5/lite/edit`.
129- Expression sheet: one approved face reference, multiple controlled
130 expression prompts.
131- Character video: approved still frame first, then
132 `bytedance/seedance-2.0/image-to-video` for final quality.
133- Fast video drafts: use `xai/grok-imagine-video/image-to-video`.
134- Talking avatar or lip-sync: use `veed/fabric-1.0`,
135 `veed/fabric-1.0/text`, or `fal-ai/creatify/aurora`.
136
137## Quality bar
138
139Reject or retry when:
140
141- Face shape, eye spacing, hairstyle, marks, or body build drift.
142- Outfit changes when the prompt says only expression or pose should change.
143- The sheet mixes styles across panels.
144- Hands or props distract from the requested design task.
145- Video motion changes age, face, costume, or silhouette.
146
147Return downloaded paths and include the anchor used so future prompts can reuse
148the same identity.