Preferences Schema
Full Schema
---
version: 3
watermark:
enabled: false
content: ""
position: bottom-right # bottom-right|bottom-left|bottom-center|top-right
preferred_type: null # hero|conceptual|typography|metaphor|scene|minimal or null for auto-select
preferred_palette: null # warm|elegant|cool|dark|earth|vivid|pastel|mono|retro|duotone|macaron or null for auto-select
preferred_rendering: null # flat-vector|hand-drawn|painterly|digital|pixel|chalk or null for auto-select
preferred_text: title-only # none|title-only|title-subtitle|text-rich
preferred_mood: balanced # subtle|balanced|bold
default_aspect: "2.35:1" # 2.35:1|16:9|1:1
quick_mode: false # Skip confirmation when true
language: null # zh|en|ja|ko|auto (null = auto-detect)
preferred_image_backend: auto # auto|ask|<backend-id>
custom_palettes:
- name: my-palette
description: "Palette description"
colors:
primary: ["#1E3A5F", "#4A90D9"]
background: "#F5F7FA"
accents: ["#00B4D8"]
decorative_hints: "Clean lines, geometric shapes"
best_for: "Business, tech content"
---
Field Reference
| Field | Type | Default | Description |
|---|
version | int | 3 | Schema version |
watermark.enabled | bool | false | Enable watermark |
watermark.content | string | "" | Watermark text (@username or custom) |
watermark.position | enum | bottom-right | Position on image |
preferred_type | string | null | Type name or null for auto |
preferred_palette | string | null | Palette name or null for auto |
preferred_rendering | string | null | Rendering name or null for auto |
preferred_text | string | title-only | Text density level |
preferred_mood | string | balanced | Mood intensity level |
default_aspect | string | "2.35:1" | Default aspect ratio |
quick_mode | bool | false | Skip confirmation step |
language | string | null | Output language (null = auto-detect) |
preferred_image_backend | string | auto | Image backend selection. auto = prefer runtime-native tool, fall back to the only installed backend, ask if multiple non-native are present. ask = always confirm on every run. <backend-id> (e.g., codex-imagegen, baoyu-imagine, image_generate) = pin this backend when available; fall back to auto when it isn't. Absent = auto. Resolution logic is documented in SKILL.md's ## Image Generation Tools section. |
custom_palettes | array | [] | User-defined palettes |
Type Options
| Value | Description |
|---|
hero | Large visual impact, title overlay |
conceptual | Concept visualization, abstract core ideas |
typography | Text-focused layout, prominent title |
metaphor | Visual metaphor, concrete expressing abstract |
scene | Atmospheric scene, narrative feel |
minimal | Minimalist composition, generous whitespace |
Palette Options
| Value | Description |
|---|
warm | Friendly, approachable — orange, golden yellow, terracotta |
elegant | Sophisticated, refined — soft coral, muted teal, dusty rose |
cool | Technical, professional — engineering blue, navy, cyan |
dark | Cinematic, premium — electric purple, cyan, magenta |
earth | Natural, organic — forest green, sage, earth brown |
vivid | Energetic, bold — bright red, neon green, electric blue |
pastel | Gentle, whimsical — soft pink, mint, lavender |
mono | Clean, focused — black, near-black, white |
retro | Nostalgic, vintage — muted orange, dusty pink, maroon |
Rendering Options
| Value | Description |
|---|
flat-vector | Clean outlines, uniform fills, geometric icons |
hand-drawn | Sketchy, organic, imperfect strokes, paper texture |
painterly | Soft brush strokes, color bleeds, watercolor feel |
digital | Polished, precise edges, subtle gradients, UI components |
pixel | Pixel grid, dithering, chunky 8-bit shapes |
chalk | Chalk strokes, dust effects, blackboard texture |
Text Options
| Value | Description |
|---|
none | Pure visual, no text elements |
title-only | Single headline |
title-subtitle | Title + subtitle |
text-rich | Title + subtitle + keyword tags (2-4) |
Mood Options
| Value | Description |
|---|
subtle | Low contrast, muted colors, calm aesthetic |
balanced | Medium contrast, normal saturation, versatile |
bold | High contrast, vivid colors, dynamic energy |
Position Options
| Value | Description |
|---|
bottom-right | Lower right corner (default, most common) |
bottom-left | Lower left corner |
bottom-center | Bottom center |
top-right | Upper right corner |
Aspect Ratio Options
| Value | Description | Best For |
|---|
2.35:1 | Cinematic widescreen | Article headers, blog covers |
16:9 | Standard widescreen | Presentations, video thumbnails |
1:1 | Square | Social media, profile images |
Custom Palette Fields
| Field | Required | Description |
|---|
name | Yes | Unique palette identifier (kebab-case) |
description | Yes | What the palette conveys |
colors.primary | No | Main colors (array of hex) |
colors.background | No | Background color (hex) |
colors.accents | No | Accent colors (array of hex) |
decorative_hints | No | Decorative elements and patterns |
best_for | No | Recommended content types |
Example: Minimal Preferences
---
version: 3
watermark:
enabled: true
content: "@myhandle"
preferred_type: null
preferred_palette: elegant
preferred_rendering: hand-drawn
preferred_text: title-only
preferred_mood: balanced
quick_mode: false
---
Example: Full Preferences
---
version: 3
watermark:
enabled: true
content: "myblog.com"
position: bottom-right
preferred_type: conceptual
preferred_palette: cool
preferred_rendering: digital
preferred_text: title-subtitle
preferred_mood: subtle
default_aspect: "16:9"
quick_mode: true
language: en
preferred_image_backend: codex-imagegen
custom_palettes:
- name: corporate-tech
description: "Professional B2B tech palette"
colors:
primary: ["#1E3A5F", "#4A90D9"]
background: "#F5F7FA"
accents: ["#00B4D8", "#48CAE4"]
decorative_hints: "Clean lines, subtle gradients, circuit patterns"
best_for: "SaaS, enterprise, technical"
---
Migration from v2
When loading v2 schema, auto-upgrade:
| v2 Field | v3 Field | Migration |
|---|
version: 2 | version: 3 | Update |
preferred_style | preferred_palette + preferred_rendering | Use preset mapping table |
custom_styles | custom_palettes | Rename, restructure fields |
Style → Palette + Rendering mapping:
v2 preferred_style | v3 preferred_palette | v3 preferred_rendering |
|---|
elegant | elegant | hand-drawn |
blueprint | cool | digital |
chalkboard | dark | chalk |
dark-atmospheric | dark | digital |
editorial-infographic | cool | digital |
fantasy-animation | pastel | painterly |
flat-doodle | pastel | flat-vector |
intuition-machine | retro | digital |
minimal | mono | flat-vector |
nature | earth | hand-drawn |
notion | mono | digital |
pixel-art | vivid | pixel |
playful | pastel | hand-drawn |
retro | retro | digital |
sketch-notes | warm | hand-drawn |
vector-illustration | retro | flat-vector |
vintage | retro | hand-drawn |
warm | warm | hand-drawn |
watercolor | earth | painterly |
| null (auto) | null | null |
Custom style migration:
| v2 Field | v3 Field |
|---|
custom_styles[].name | custom_palettes[].name |
custom_styles[].description | custom_palettes[].description |
custom_styles[].color_palette | custom_palettes[].colors |
custom_styles[].visual_elements | custom_palettes[].decorative_hints |
custom_styles[].typography | (removed — determined by rendering) |
custom_styles[].best_for | custom_palettes[].best_for |
Migration from v1
When loading v1 schema, auto-upgrade to v3:
| v1 Field | v3 Field | Default Value |
|---|
| (missing) | version | 3 |
| (missing) | preferred_palette | null |
| (missing) | preferred_rendering | null |
| (missing) | preferred_text | title-only |
| (missing) | preferred_mood | balanced |
| (missing) | quick_mode | false |
v1 --no-title flag maps to preferred_text: none.