diff --git a/skills/creative/baoyu-comic/SKILL.md b/skills/creative/baoyu-comic/SKILL.md new file mode 100644 index 000000000..c525e0176 --- /dev/null +++ b/skills/creative/baoyu-comic/SKILL.md @@ -0,0 +1,297 @@ +--- +name: baoyu-comic +description: Knowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts and sequential image generation. Use when user asks to create "知识漫画", "教育漫画", "biography comic", "tutorial comic", or "Logicomix-style comic". +version: 1.56.1 +metadata: + openclaw: + homepage: https://github.com/JimLiu/baoyu-skills#baoyu-comic + requires: + anyBins: + - bun + - npx +--- + +# Knowledge Comic Creator + +Create original knowledge comics with flexible art style × tone combinations. + +## User Input Tools + +When this skill prompts the user, follow this tool-selection rule (priority order): + +1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent. +2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question. +3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order. + +Concrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes. + +## Image Generation Tools + +When this skill needs to render an image: + +- **Use whatever image-generation tool or skill is available** in the current runtime — e.g., Codex `imagegen`, Hermes `image_generate`, `baoyu-imagine`, or any equivalent the user has installed. +- **If multiple are available**, ask the user **once** at the start which to use (batch with any other initial questions). +- **If none are available**, tell the user and ask how to proceed. + +**Prompt file requirement (hard)**: write each image's full, final prompt to a standalone file under `prompts/` (naming: `NN-{type}-[slug].md`) BEFORE invoking any backend. The backend receives the prompt file (or its content); the file is the reproducibility record and lets you switch backends without regenerating prompts. + +Concrete tool names (`imagegen`, `image_generate`, `baoyu-imagine`) above are examples — substitute the local equivalents under the same rule. + +## Reference Images + +Users may supply reference images to guide art style, palette, scene composition, or subject. This is **separate from** the auto-generated character sheet (Step 7.1) — both can coexist: user refs guide the look, the character sheet anchors recurring character identity. + +**Intake**: Accept via `--ref ` or when the user provides file paths / pastes images in conversation. +- File path(s) → copy to `refs/NN-ref-{slug}.{ext}` alongside the comic output +- Pasted image with no path → ask the user for the path (per the User Input Tools rule above), or extract style traits verbally as a text fallback +- No reference → skip this section + +**Usage modes** (per reference): + +| Usage | Effect | +|-------|--------| +| `direct` | Pass the file to the backend as a reference image on every page (or selected pages) | +| `style` | Extract style traits (line treatment, texture, mood) and append to every page's prompt body | +| `palette` | Extract hex colors and append to every page's prompt body | + +**Record in each page's prompt frontmatter** when refs exist: + +```yaml +references: + - ref_id: 01 + filename: 01-ref-scene.png + usage: direct +``` + +**At generation time**: +- Verify each referenced file exists on disk +- If `usage: direct` AND the chosen backend accepts multiple reference images → pass both the character sheet (Step 7.2) and the user refs via the backend's ref parameter; compress images first per Step 7.1's guidance to avoid payload failures +- If the backend accepts only one ref → prefer the character sheet for pages with recurring characters; embed user-ref traits in the prompt body instead +- For `style`/`palette` usage → embed extracted traits in every page's prompt text (applies regardless of backend capability) + +## Options + +### Visual Dimensions + +| Option | Values | Description | +|--------|--------|-------------| +| `--art` | ligne-claire (default), manga, realistic, ink-brush, chalk, minimalist | Art style / rendering technique | +| `--tone` | neutral (default), warm, dramatic, romantic, energetic, vintage, action | Mood / atmosphere | +| `--layout` | standard (default), cinematic, dense, splash, mixed, webtoon, four-panel | Panel arrangement | +| `--aspect` | 3:4 (default, portrait), 4:3 (landscape), 16:9 (widescreen) | Page aspect ratio | +| `--lang` | auto (default), zh, en, ja, etc. | Output language | +| `--ref ` | File paths | Reference images applied to every page for style / palette / scene guidance. See [Reference Images](#reference-images) above. | + +### Partial Workflow Options + +| Option | Description | +|--------|-------------| +| `--storyboard-only` | Generate storyboard only, skip prompts and images | +| `--prompts-only` | Generate storyboard + prompts, skip images | +| `--images-only` | Generate images from existing prompts directory | +| `--regenerate N` | Regenerate specific page(s) only (e.g., `3` or `2,5,8`) | + +Details: [references/partial-workflows.md](references/partial-workflows.md) + +### Art, Tone & Preset Catalogue + +- **Art styles** (6): `ligne-claire`, `manga`, `realistic`, `ink-brush`, `chalk`, `minimalist`. Full definitions at `references/art-styles/