openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > comic

Agent skill by @632657122 on ClawHub.

媒体与内容

Package:632657122/comic

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「comic」。简介:Agent skill by @632657122 on ClawHub.。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/632657122/comic/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

---
name: comic
description: Generate educational or narrative comic pages with structured art, tone, layout, and language decisions and bundled generation tooling. Use when the user asks to create a knowledge comic, tutorial comic, biography comic, educational comic, or a multi-page comic sequence.
metadata: { "pattern": ["generator", "pipeline"], "openclaw": { "emoji": "📖", "primaryEnv": "IMAGE_GEN_API_KEY", "requires": { "env": ["IMAGE_GEN_API_KEY"], "anyBins": ["bun", "npx"], "bins": ["node", "npm", "zip"] } } }
---

# Comic Generation (`comic`)

## Reference Images (Important)

If you use reference images (image-to-image / series reference / consistency refs):

- Reference images must be public URLs.
- **HTTPS is strongly recommended.**
- `http://` may work but is insecure and can be blocked by some networks.
- Local file paths and `data:` URLs are not supported by the WeryAI gateway.


Generate educational or narrative comic pages: a knowledge comic, tutorial comic, biography comic, educational comic, or a multi-page comic sequence — structured art, tone, layout, and language decisions included.

This skill turns source material into a sequence of comic pages.

Maintain the art and tone mapping when the bundled generation runtime updates, and re-check recent runtime behavior if a newer version changes page rendering.

Before the first generation run in a new OpenClaw or local instance, run:

```bash
npm run ensure-ready -- --project . --workflow comic
```

This step is mandatory. It reads the doctor report and automatically runs `bootstrap` when local script dependencies such as `pdf-lib` are still missing.

If the report shows a missing `IMAGE_GEN_API_KEY` and the user approves, run `npm run setup -- --project . --workflow comic --persist-api-key` when the key is already in env, or persist it to `.image-skills/comic/.env` on the user's behalf, then continue the comic workflow without leaving this skill.

When this skill is first connected, tell the user that the default generation model is **Nano Banana 2** (`GEMINI_3_1_FLASH_IMAGE`). Also tell them it can be switched later whenever another model fits the task better.

Script:

- `scripts/scaffold.ts`
- `scripts/build-prompts.ts`
- `scripts/build-batch.ts`
- `scripts/merge-to-pdf.ts`

## Safety & Scope

- **Network**: This skill calls the WeryAI gateway over HTTPS (`https://api.weryai.com`).
- **Auth**: Uses `IMAGE_GEN_API_KEY`. The key is never printed. It may be persisted **only** when you explicitly run `npm run setup -- --persist-api-key`.
- **Reference images**: Must be public URLs (`https://` recommended). `http://` may work but is insecure. Local file paths and `data:` URLs are rejected.
- **No arbitrary shell**: The generation runtime does not execute arbitrary shell commands.
- **Files written**: Output images and optional local config under `.image-skills/comic/` (project) and/or `~/.image-skills/comic/` (home).


## Use Cases

- knowledge comics
- tutorial comics
- biography comics
- multi-page narrative image sequences

Not a good fit for:

- a single cover image
- a dense one-page infographic
- a RedNote card series

## Core Dimensions

1. `art`
2. `tone`
3. `layout`
4. `aspect`

See:

- [references/dimensions.md](references/dimensions.md)
- [references/character-template.md](references/character-template.md)
- [references/storyboard-template.md](references/storyboard-template.md)
- [references/prompt-template.md](references/prompt-template.md)

## Commands

| Script | Purpose |
| --- | --- |
| `scripts/scaffold.ts` | Initialize storyboard, characters, and page prompts |
| `scripts/build-prompts.ts` | Regenerate page prompts from `storyboard.md` |
| `scripts/build-batch.ts` | Generate `batch.json` from page prompts |
| `scripts/merge-to-pdf.ts` | Merge page images into a single PDF |
| `scripts/package-delivery.mjs` | Prepare delivery bundle with manifest and previews |
| `npm run generate` | Generate page images |
| `./scripts/vendor/compression-runtime/scripts/main.ts` | Compress output for delivery |

## Workflow

### Step 1: Initialize Working Files

Create the working directory:

```bash
${BUN_X} {baseDir}/scripts/scaffold.ts 
  --output-dir comic/topic-slug 
  --title "Comic Title" 
  --topic "Topic summary" 
  --art ligne-claire 
  --tone neutral 
  --layout standard 
  --aspect 3:4 
  --scope standard 
  --lang en 
  --panels 3 
  --pages 4
```

This creates:

- `analysis.md`
- `storyboard.md`
- `characters/characters.md`
- `prompts/00-cover.md`
- `prompts/01-page.md`
- ...

### Step 2: Understand the Content

Extract:

- the main story arc or knowledge arc
- the characters
- the key scenes
- the target aspect ratio
- the expected total content scope and number of pages
- the target panel density per page
- the user's language, especially if dialogue or captions appear on the page

### Step 3: Choose `art`, `tone`, and `layout`

Default priorities:

- `art`: `ligne-claire`
- `tone`: `neutral`
- `layout`: `standard`
- `aspect`: `3:4`
- `scope`: `standard`
- `panels`: `3`

Recommended rules:

- educational explanation -> `ligne-claire` + `neutral`
- high-energy storytelling -> `manga` + `action`
- warm storytelling -> `ligne-claire` + `warm`
- ink or wuxia-like themes -> `ink-brush` + `dramatic`

### Step 4: Map to the Bundled Runtime

The bundled image runtime does not directly understand comic page grammar, so:

- map `art` to `--style`
- write `tone`, `layout`, camera language, and panel logic into the prompt body
- create one prompt per page
- prefer batch execution for multi-page comics

Recommended mapping:

| comic art | runtime `--style` |
| --- | --- |
| `ligne-claire` | `flat-illustration` |
| `manga` | `manga` |
| `realistic` | `photoreal` |
| `ink-brush` | `ink-brush` |
| `chalk` | `chalk` |

### Step 5: Refine `storyboard.md`, Then Build Prompts

Save at least:

- `analysis.md`
- `storyboard.md`
- `characters/characters.md`
- `characters/characters.png`
- `prompts/00-cover.md`
- `prompts/01-page.md`

When the storyboard is ready, generate prompt files automatically:

```bash
${BUN_X} {baseDir}/scripts/build-prompts.ts 
  --storyboard comic/topic-slug/storyboard.md 
  --output-dir comic/topic-slug/prompts
```

Each page prompt should clearly describe:

- the page goal
- the characters and scene
- the cross-page continuity anchors
- the panel structure
- the intended panel count
- the target language for any text on the page

Character consistency rules:

- default to the strongest continuity strategy: generate one canonical `characters/characters.png` first, then reuse that same reference for every page
- create `characters/characters.md` before generating multi-page comics
- generate `characters/characters.png` as a reference sheet before page generation
- if the chosen model supports `--ref`, pass the same `characters/characters.png` to every page
- if the chosen model does not support `--ref`, copy the key character descriptions into every page prompt
- include page-level continuity anchors in `storyboard.md` so outfit, props, location, and scene progression stay aligned from page to page
- each page prompt should include previous-page context and next-page hook so the sequence reads like one comic, not isolated posters

Recommended sequence:

1. finish `storyboard.md`
2. finish `characters/characters.md`
3. generate `characters/characters.png`
4. make sure every page in `storyboard.md` includes `Continuity Anchors`
5. batch-generate all comic pages

### Step 6: Build `batch.json`

When page prompts are ready, generate a batch file:

```bash
${BUN_X} {baseDir}/scripts/build-batch.ts 
  --prompts comic/topic-slug/prompts 
  --storyboard comic/topic-slug/storyboard.md 
  --ref comic/topic-slug/characters/characters.png 
  --output comic/topic-slug/batch.json 
  --images-dir comic/topic-slug 
  --model "$M" 
  --jobs 4
```

The script:

- reads `00-cover.md`, `01-page.md`, `02-page.md`, and so on
- maps comic `art` from `storyboard.md` into runtime `--style` when possible
- defaults to the same shared character reference sheet for every page from `storyboard.md` when `--ref` is not explicitly overridden

Default best-performing strategy:

1. generate `characters/characters.png` first
2. keep that sheet as the canonical look for faces, outfits, props, and palette
3. reuse the same reference for every cover/page task
4. only fall back to text-only continuity when the chosen model cannot reliably use references

### Step 7: Run Generation

Generate the character sheet first:

```bash
${BUN_X} {baseDir}/npm run generate 
  --promptfiles characters/characters.md 
  --style manga 
  --image comic/topic-slug/characters/characters.png 
  --ar 4:3 
  -m "$M"
```

Single-page example:

```bash
${BUN_X} {baseDir}/npm run generate 
  --promptfiles prompts/02-page.md 
  --style manga 
  --ref comic/topic-slug/characters/characters.png 
  --image comic/topic-slug/02-page.png 
  --ar 3:4 
  -m "$M"
```

Batch example:

```bash
${BUN_X} {baseDir}/npm run generate 
  --batchfile comic/topic-slug/batch.json 
  --jobs 4
```

### Step 8: Merge Pages into PDF

After page images are ready:

If this skill was distributed as a slim package without `node_modules`, run `npm run bootstrap` from this skill directory once before this step so the local PDF dependency is installed. If you forget, `merge-to-pdf.ts` now prints that exact recovery hint.

```bash
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts comic/topic-slug
```

To choose a specific output path:

```bash
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts comic/topic-slug -o comic/topic-slug/final.pdf
```

The script merges page files in the order `00-cover-*`, `01-page-*`, `02-page-*`, and so on, across `png`, `jpg`, and `jpeg`.

### Step 9: Prepare Delivery Files

When you need a cleaner handoff than a raw table of URLs, prepare a delivery bundle:

```bash
${BUN_X} {baseDir}/scripts/package-delivery.mjs comic/topic-slug
```

This creates:

- `delivery/preview.md` with inline preview entries for small batches
- `delivery/manifest.json` with ordered file metadata
- `delivery/pages/` with copied page images
- `delivery/<topic-slug>-delivery.zip` automatically when the page count is large enough

Delivery rules:

- **Few pages (≤ 5)**: show each page image directly in order (cover → pages). Do not just list file paths.
- **Many pages (> 5)**: show the first 2–3 pages as preview, then provide the PDF and/or zip bundle.
- Always offer the merged PDF as the primary deliverable.
- Ask if any pages need changes before finalizing.
- **Auto-compress**: once confirmed, run the bundled compression runtime on the output directory before packaging.

```bash
${BUN_X} {baseDir}/./scripts/vendor/compression-runtime/scripts/main.ts comic/topic-slug/ -r -f webp -q 80
```

Internal checklist (for agent): `art / tone / layout / aspect`, page count, character reference used, model, PDF generated, compression done.

## Output Convention

Suggested output directory:

```text
comic/<topic-slug>/
```

Suggested minimum files:

- `analysis.md`
- `storyboard.md`
- `characters/characters.md`
- `characters/characters.png`
- `prompts/00-cover.md`
- `prompts/NN-page.md`
- `batch.json`
- `00-cover.png`
- `NN-page.png`
- `<topic-slug>.pdf`

## Re-run Behavior

- `scaffold.ts` on an existing directory overwrites `storyboard.md`, `characters/characters.md`, and all prompt files. Back up before re-scaffolding.
- `build-prompts.ts` overwrites prompt files in `prompts/` based on the current `storyboard.md`.
- `build-batch.ts` overwrites `batch.json`.
- Re-running the bundled generator with `--batchfile` regenerates all pages; keep good pages by removing their entries from `batch.json` first.
- `merge-to-pdf.ts` overwrites the existing PDF.

## Definition of Done

- `storyboard.md`, `characters/characters.md`, and per-page prompt files exist in the output directory.
- All pages are generated and shown to the user in reading order.
- A merged PDF is produced via `merge-to-pdf.ts`.
- Art style, page count, and model are stated in the delivery summary.
- A compressed webp set is produced for delivery.

## Iteration

When the user wants changes after seeing generated comic pages:

- **Art style mismatch** ("wrong style", "switch to ink brush") → change `art` in `storyboard.md`, update `--style` mapping, re-generate affected pages. Ask if all pages or specific ones.
- **Character inconsistency** ("characters look different across pages") → regenerate `characters/characters.png` with more explicit descriptions, then re-generate pages using the updated reference sheet.
- **Panel layout issues** ("bad panels", "this page is too crowded") → revise the specific page in `storyboard.md`, rebuild its prompt, re-generate only that page.
- **Story flow issues** ("wrong order", "need an extra page") → revise `storyboard.md` to add/reorder pages, rebuild prompts for changed pages, re-generate.
- **Single page redo** → re-generate only that page with `--promptfiles prompts/NN-page.md`. Keep other pages.

After any page changes, re-run `merge-to-pdf.ts` to update the PDF.

## Current Scope

This version of `comic` focuses on:

- comic-page workflow
- character consistency
- page-level prompt organization
- single-gateway image execution