ai-video/skills/character-design-sheet/SKILL.md
Character consistency across AI-generated images with reference sheets and LoRA techniques. Covers turnaround views, expression sheets, color palettes, and style consistency tricks. Use for: character design, game art, illustration, animation, comics, visual novels. Triggers: character design, character sheet, character consistency, character reference, turnaround sheet, expression sheet, character art, consistent character, character concept, reference sheet, character creation, oc design, character bible
npx skillsauth add bernatmv/ai-rules character-design-sheetInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Install the belt CLI skill:
npx skills add belt-sh/cli
Create consistent characters across multiple AI-generated images via inference.sh CLI.
Requires inference.sh CLI (
belt). Install instructions
belt login
# Generate a character concept
belt app run falai/flux-dev-lora --input '{
"prompt": "character design reference sheet, front view of a young woman with short red hair, green eyes, wearing a blue jacket and white t-shirt, full body, white background, clean lines, concept art style, character turnaround",
"width": 1024,
"height": 1024
}'
AI image generation produces different-looking characters every time, even with the same prompt. This is the #1 challenge in AI art for any project requiring the same character across multiple images.
| Technique | Consistency | Effort | Best For | |-----------|-------------|--------|----------| | FLUX LoRA (trained on character) | Very high | High (requires training data) | Ongoing projects, many images | | Detailed description anchor | Medium-high | Low | Quick projects, few images | | Same seed + similar prompt | Medium | Low | Variations of single pose | | Image-to-image refinement | Medium | Medium | Refining existing images | | Reference image in prompt | Varies | Low | When model supports it |
Shows the character from multiple angles:
┌────────┬────────┬────────┬────────┐
│ │ │ │ │
│ FRONT │ 3/4 │ SIDE │ BACK │
│ VIEW │ VIEW │ VIEW │ VIEW │
│ │ │ │ │
└────────┴────────┴────────┴────────┘
# Generate front view
belt app run falai/flux-dev-lora --input '{
"prompt": "character design, front view, young woman with short asymmetric red hair, bright green eyes, wearing navy blue bomber jacket over white graphic tee, dark jeans, red sneakers, standing in neutral pose, full body, clean white background, concept art, sharp details",
"width": 768,
"height": 1024
}' --no-wait
# Generate 3/4 view (same description)
belt app run falai/flux-dev-lora --input '{
"prompt": "character design, three-quarter view, young woman with short asymmetric red hair, bright green eyes, wearing navy blue bomber jacket over white graphic tee, dark jeans, red sneakers, standing, full body, clean white background, concept art, sharp details",
"width": 768,
"height": 1024
}' --no-wait
# Generate side view
belt app run falai/flux-dev-lora --input '{
"prompt": "character design, side profile view, young woman with short asymmetric red hair, bright green eyes, wearing navy blue bomber jacket over white graphic tee, dark jeans, red sneakers, standing, full body, clean white background, concept art, sharp details",
"width": 768,
"height": 1024
}' --no-wait
# Generate back view
belt app run falai/flux-dev-lora --input '{
"prompt": "character design, back view, young woman with short asymmetric red hair, wearing navy blue bomber jacket over white graphic tee, dark jeans, red sneakers, standing, full body, clean white background, concept art, sharp details",
"width": 768,
"height": 1024
}' --no-wait
# Stitch into reference sheet
belt app run infsh/stitch-images --input '{
"images": ["front.png", "three-quarter.png", "side.png", "back.png"],
"direction": "horizontal"
}'
Shows the character's face with different emotions:
┌────────┬────────┬────────┐
│NEUTRAL │ HAPPY │ ANGRY │
│ │ │ │
├────────┼────────┼────────┤
│ SAD │SURPRISE│THINKING│
│ │ │ │
└────────┴────────┴────────┘
Minimum 6 expressions: neutral, happy, angry, sad, surprised, thinking.
# Neutral
belt app run falai/flux-dev-lora --input '{
"prompt": "character portrait, close-up face, young woman with short red hair and green eyes, neutral calm expression, clean white background, concept art, consistent character design",
"width": 512,
"height": 512
}' --no-wait
# Happy
belt app run falai/flux-dev-lora --input '{
"prompt": "character portrait, close-up face, young woman with short red hair and green eyes, warm genuine smile, happy expression, clean white background, concept art, consistent character design",
"width": 512,
"height": 512
}' --no-wait
# Angry
belt app run falai/flux-dev-lora --input '{
"prompt": "character portrait, close-up face, young woman with short red hair and green eyes, furrowed brows, angry determined expression, clean white background, concept art, consistent character design",
"width": 512,
"height": 512
}' --no-wait
# (Continue for sad, surprised, thinking...)
Multiple outfits for the same character:
| Outfit | Description | |--------|-------------| | Casual | Bomber jacket, t-shirt, jeans | | Work | Blazer, button-down, slacks | | Athletic | Sports bra, leggings, running shoes | | Formal | Evening dress, heels |
Document exact colors for consistency:
CHARACTER: Maya Chen
Skin: ████ #F5D0A9 (warm beige)
Hair: ████ #C0392B (auburn red)
Eyes: ████ #27AE60 (emerald green)
Jacket: ████ #2C3E50 (navy blue)
T-shirt: ████ #ECF0F1 (off-white)
Jeans: ████ #34495E (dark slate)
Shoes: ████ #E74C3C (bright red)
The most practical consistency technique: write a 50+ word detailed description and reuse it exactly in every prompt.
[age] [gender] with [hair: color, length, style], [eye color] eyes,
[skin tone], [facial features: any distinctive marks],
wearing [top: specific color and style], [bottom: specific color and style],
[shoes: specific color and style], [accessories: specific items]
young woman in her mid-twenties with short asymmetric auburn red hair
swept to the right side, bright emerald green eyes, light warm skin
with a small beauty mark below her left eye, wearing a fitted navy
blue bomber jacket with silver zipper over a white crew-neck t-shirt,
dark slate slim jeans, and bright red canvas sneakers, small silver
stud earrings
Use this exact block in EVERY prompt for this character, only changing the action/pose/scene.
| Style | Head-to-Body Ratio | Best For | |-------|-------------------|----------| | Realistic | 7.5 : 1 | Film, photorealistic | | Heroic | 8 : 1 | Superheroes, action | | Anime/Manga | 5-6 : 1 | Japanese animation style | | Stylized | 4-5 : 1 | Western animation | | Chibi/Super-deformed | 2-3 : 1 | Cute, comedic, mascots |
Include proportion style in your prompts: "realistic proportions" vs "anime style proportions" vs "chibi proportions"
For projects requiring many images of the same character, train a LoRA:
# Use FLUX with a character LoRA
belt app run falai/flux-dev-lora --input '{
"prompt": "maya_chen character, sitting at a cafe reading a book, warm afternoon light, candid photography style",
"loras": [{"path": "path/to/maya-chen-lora.safetensors", "scale": 0.8}]
}'
LoRA Training Tips:
| Issue | Why It Happens | Mitigation | |-------|---------------|------------| | Hair color drift | Model interprets "red hair" differently each time | Use specific shade: "auburn red #C0392B" | | Eye color change | Low priority in generation | Mention eye color early in prompt | | Outfit inconsistency | Model fills in details creatively | Describe every clothing item explicitly | | Age shift | Vague age description | Use "mid-twenties" not "young" | | Face structure change | Different generations = different faces | Use LoRA or same seed base | | Proportion shift | Style interpretation varies | Specify "7.5 head proportions" |
For ongoing projects, maintain a character bible document:
# Character: Maya Chen
## Visual Description (use in all prompts)
young woman in her mid-twenties with short asymmetric auburn red hair...
[full 50+ word anchor description]
## Color Palette
- Skin: #F5D0A9
- Hair: #C0392B
- Eyes: #27AE60
- Primary outfit: Navy #2C3E50
- Accent: Red #E74C3C
## Personality Notes (for expression/pose choices)
- Confident but approachable
- Default expression: slight curious smile
- Gestures: talks with hands, leans forward when interested
## Style Keywords
concept art, clean lines, sharp details, [art style reference]
## LoRA (if trained)
Path: ./loras/maya-chen-v2.safetensors
Trigger: maya_chen
Recommended scale: 0.8
| Mistake | Problem | Fix | |---------|---------|-----| | Vague descriptions | Different character every time | 50+ word detailed anchor | | Inconsistent prompt structure | Varying emphasis = varying results | Same structure, only change action/scene | | Generating one view only | Can't use character in different contexts | Create full turnaround reference | | No color documentation | Colors drift across generations | Record exact hex codes | | Skipping expression sheet | Character feels one-dimensional | Generate 6+ expressions | | Not using LoRA for big projects | Inconsistency compounds | Train LoRA for 10+ image projects |
npx skills add inference-sh/skills@ai-image-generation
npx skills add inference-sh/skills@flux-image
npx skills add inference-sh/skills@prompt-engineering
Browse all apps: belt app store
development
Keyword research and validation with real search-demand data — never ship keywords from intuition alone. Probes Google Autocomplete per language (free, no account) to prove demand and discover the exact phrasing people type, checks SERPs for winnability, and uses Keyword Planner/Ahrefs/Semrush exports when the user has access. Activates when: choosing or reviewing SEO keywords, meta keywords, page titles, article topics or slugs, landing page copy targeting search, App Store/ASO keyword fields, multilingual keyword sets, 'what should we rank for', 'keyword analysis', or auditing why a page doesn't rank. Also invoke it as a validation pass whenever another skill or task produces a keyword list.
development
Automate YooAsset hot-update and asset bundles — build bundles, run Editor simulate builds, manage Collector groups, analyze BuildReport, and validate runtime. Use when building or simulating YooAsset bundles, configuring collectors, or validating hot-update assets, even if the user just says "热更" or "打AB包". 自动化 YooAsset 热更新与资源包(构建 bundle、编辑器模拟构建、管理 Collector 分组、分析 BuildReport、运行时校验);当用户要构建或模拟 YooAsset 资源包、配置 collector、或校验热更资源时使用。
development
Source-anchored design rules for YooAsset v2.3.18 — initialization, default-package shortcuts, play modes, asset handles, loading, updates, filesystem, build, and pitfalls. Use when writing or reviewing YooAsset code, initializing packages, loading assets via handles, setting up hot-update/download, or choosing a play mode, even if the user just says "热更" or "资源包". 为 YooAsset v2.3.18 提供源码锚定的设计规则(初始化、默认包快捷方式、运行模式、资源句柄、加载、更新、文件系统、构建、陷阱);当用户要编写或审查 YooAsset 代码、初始化 package、用句柄加载资源、配置热更/下载、或选择运行模式时使用。
data-ai
Last-resort guidance for safely hand-editing Unity serialized YAML (.unity/.prefab/.asset/.meta/ProjectSettings) — reference/fileID repair, GUID safety, and merge-conflict fixes. Use when REST cannot reach the change and YAML must be hand-edited — fixing m_Script GUIDs, broken fileID references, .meta files, or merge conflicts, even if the user just says "场景文件打不开" or "引用丢了". 安全手编 Unity 序列化 YAML(.unity/.prefab/.asset/.meta/ProjectSettings)的最后手段(引用/fileID 修复、GUID 安全、合并冲突修复);当 REST 无法触达、必须手编 YAML 时使用——修复 m_Script GUID、断裂 fileID 引用、.meta 文件或合并冲突。