From c3cbce9ce3ee633c0f8ace57d147a5c90748372f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jim=20Liu=20=E5=AE=9D=E7=8E=89?= Date: Sun, 24 May 2026 18:35:05 -0500 Subject: [PATCH] =?UTF-8?q?feat\!:=20rename=20baoyu-imagine=E2=86=92baoyu-?= =?UTF-8?q?image-gen,=20baoyu-image-cards=E2=86=92baoyu-xhs-images=20(v2.0?= =?UTF-8?q?.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: removed `baoyu-imagine` and `baoyu-image-cards`. All functionality now lives under `baoyu-image-gen` and `baoyu-xhs-images` respectively. Cross-skill `## Image Generation Tools` examples updated across baoyu-article-illustrator, baoyu-comic, baoyu-cover-image, baoyu-infographic, and baoyu-slide-deck. Migration: existing `~/.baoyu-skills/baoyu-imagine/EXTEND.md` configs are auto-renamed to `…/baoyu-image-gen/EXTEND.md` on first run via the legacy-path resolver in `scripts/main.ts`. --- .claude-plugin/marketplace.json | 10 +- CHANGELOG.md | 11 + CHANGELOG.zh.md | 11 + CLAUDE.md | 13 +- README.md | 46 +- README.zh.md | 46 +- docs/codex-imagegen-backend.md | 2 +- docs/creating-skills.md | 4 +- docs/image-generation-tools.md | 12 +- docs/image-generation.md | 2 +- skills/baoyu-article-illustrator/SKILL.md | 12 +- .../references/config/preferences-schema.md | 2 +- .../references/workflow.md | 2 +- skills/baoyu-comic/SKILL.md | 12 +- .../references/config/preferences-schema.md | 2 +- skills/baoyu-comic/references/workflow.md | 2 +- skills/baoyu-cover-image/SKILL.md | 12 +- .../references/config/preferences-schema.md | 2 +- skills/baoyu-image-cards/SKILL.md | 480 ------- .../references/config/first-time-setup.md | 125 -- .../references/config/preferences-schema.md | 128 -- .../references/config/watermark-guide.md | 62 - .../references/confirmation.md | 156 --- .../references/elements/canvas.md | 122 -- .../references/elements/decorations.md | 152 -- .../references/elements/image-effects.md | 92 -- .../references/elements/typography.md | 96 -- .../references/palettes/macaron.md | 33 - .../references/palettes/neon.md | 32 - .../references/palettes/warm.md | 32 - .../references/presets/bold.md | 72 - .../references/presets/chalkboard.md | 97 -- .../references/presets/cute.md | 72 - .../references/presets/fresh.md | 72 - .../references/presets/minimal.md | 72 - .../references/presets/notion.md | 73 - .../references/presets/pop.md | 72 - .../references/presets/retro.md | 72 - .../references/presets/screen-print.md | 92 -- .../references/presets/sketch-notes.md | 100 -- .../references/presets/study-notes.md | 115 -- .../references/presets/warm.md | 72 - .../references/style-presets.md | 43 - .../workflows/analysis-framework.md | 198 --- .../references/workflows/outline-template.md | 247 ---- .../references/workflows/prompt-assembly.md | 378 ----- skills/baoyu-image-gen/SKILL.md | 38 +- .../references/codex-image2-fallback.md | 14 +- .../codex-oauth-vs-openai-api-key.md | 14 +- .../references/config/first-time-setup.md | 99 +- .../references/config/preferences-schema.md | 35 +- .../references/providers/dashscope.md | 23 +- .../references/providers/minimax.md | 2 +- .../references/providers/replicate.md | 4 +- .../references/providers/zai.md | 4 +- .../references/usage-examples.md | 13 +- .../scripts/build-batch.test.ts | 6 +- .../scripts/build-batch.ts | 4 +- skills/baoyu-image-gen/scripts/main.test.ts | 225 ++- skills/baoyu-image-gen/scripts/main.ts | 212 ++- .../scripts/providers/azure.test.ts | 1 + .../scripts/providers/azure.ts | 2 +- .../scripts/providers/dashscope.test.ts | 246 +++- .../scripts/providers/dashscope.ts | 174 ++- .../scripts/providers/google.test.ts | 1 + .../scripts/providers/jimeng.test.ts | 1 + .../scripts/providers/minimax.test.ts | 1 + .../scripts/providers/openai.test.ts | 123 ++ .../scripts/providers/openai.ts | 253 +++- .../scripts/providers/openrouter.test.ts | 1 + .../scripts/providers/replicate.test.ts | 231 ++- .../scripts/providers/replicate.ts | 445 +++++- .../scripts/providers/seedream.test.ts | 1 + .../scripts/providers/zai.test.ts | 1 + skills/baoyu-image-gen/scripts/types.ts | 12 +- skills/baoyu-imagine/SKILL.md | 275 ---- .../references/codex-image2-fallback.md | 35 - .../codex-oauth-vs-openai-api-key.md | 18 - .../references/config/first-time-setup.md | 370 ----- .../references/config/preferences-schema.md | 135 -- .../references/providers/dashscope.md | 69 - .../references/providers/minimax.md | 29 - .../references/providers/openrouter.md | 19 - .../references/providers/replicate.md | 50 - .../baoyu-imagine/references/providers/zai.md | 27 - .../references/usage-examples.md | 117 -- skills/baoyu-imagine/scripts/main.test.ts | 623 --------- skills/baoyu-imagine/scripts/main.ts | 1235 ----------------- .../scripts/providers/azure.test.ts | 189 --- .../baoyu-imagine/scripts/providers/azure.ts | 192 --- .../scripts/providers/dashscope.test.ts | 392 ------ .../scripts/providers/dashscope.ts | 625 --------- .../scripts/providers/google.test.ts | 127 -- .../baoyu-imagine/scripts/providers/google.ts | 349 ----- .../scripts/providers/jimeng.test.ts | 115 -- .../baoyu-imagine/scripts/providers/jimeng.ts | 467 ------- .../scripts/providers/minimax.test.ts | 175 --- .../scripts/providers/minimax.ts | 220 --- .../scripts/providers/openai.test.ts | 179 --- .../baoyu-imagine/scripts/providers/openai.ts | 444 ------ .../scripts/providers/openrouter.test.ts | 169 --- .../scripts/providers/openrouter.ts | 369 ----- .../scripts/providers/replicate.test.ts | 310 ----- .../scripts/providers/replicate.ts | 616 -------- .../scripts/providers/seedream.test.ts | 245 ---- .../scripts/providers/seedream.ts | 341 ----- .../scripts/providers/zai.test.ts | 181 --- skills/baoyu-imagine/scripts/providers/zai.ts | 306 ---- skills/baoyu-imagine/scripts/types.ts | 90 -- skills/baoyu-infographic/SKILL.md | 12 +- .../references/config/first-time-setup.md | 2 +- .../references/config/preferences-schema.md | 4 +- skills/baoyu-slide-deck/SKILL.md | 12 +- .../references/config/preferences-schema.md | 2 +- skills/baoyu-xhs-images/SKILL.md | 23 +- .../references/config/preferences-schema.md | 2 +- 116 files changed, 2117 insertions(+), 12789 deletions(-) delete mode 100644 skills/baoyu-image-cards/SKILL.md delete mode 100644 skills/baoyu-image-cards/references/config/first-time-setup.md delete mode 100644 skills/baoyu-image-cards/references/config/preferences-schema.md delete mode 100644 skills/baoyu-image-cards/references/config/watermark-guide.md delete mode 100644 skills/baoyu-image-cards/references/confirmation.md delete mode 100644 skills/baoyu-image-cards/references/elements/canvas.md delete mode 100644 skills/baoyu-image-cards/references/elements/decorations.md delete mode 100644 skills/baoyu-image-cards/references/elements/image-effects.md delete mode 100644 skills/baoyu-image-cards/references/elements/typography.md delete mode 100644 skills/baoyu-image-cards/references/palettes/macaron.md delete mode 100644 skills/baoyu-image-cards/references/palettes/neon.md delete mode 100644 skills/baoyu-image-cards/references/palettes/warm.md delete mode 100644 skills/baoyu-image-cards/references/presets/bold.md delete mode 100644 skills/baoyu-image-cards/references/presets/chalkboard.md delete mode 100644 skills/baoyu-image-cards/references/presets/cute.md delete mode 100644 skills/baoyu-image-cards/references/presets/fresh.md delete mode 100644 skills/baoyu-image-cards/references/presets/minimal.md delete mode 100644 skills/baoyu-image-cards/references/presets/notion.md delete mode 100644 skills/baoyu-image-cards/references/presets/pop.md delete mode 100644 skills/baoyu-image-cards/references/presets/retro.md delete mode 100644 skills/baoyu-image-cards/references/presets/screen-print.md delete mode 100644 skills/baoyu-image-cards/references/presets/sketch-notes.md delete mode 100644 skills/baoyu-image-cards/references/presets/study-notes.md delete mode 100644 skills/baoyu-image-cards/references/presets/warm.md delete mode 100644 skills/baoyu-image-cards/references/style-presets.md delete mode 100644 skills/baoyu-image-cards/references/workflows/analysis-framework.md delete mode 100644 skills/baoyu-image-cards/references/workflows/outline-template.md delete mode 100644 skills/baoyu-image-cards/references/workflows/prompt-assembly.md rename skills/{baoyu-imagine => baoyu-image-gen}/scripts/build-batch.test.ts (94%) rename skills/{baoyu-imagine => baoyu-image-gen}/scripts/build-batch.ts (97%) delete mode 100644 skills/baoyu-imagine/SKILL.md delete mode 100644 skills/baoyu-imagine/references/codex-image2-fallback.md delete mode 100644 skills/baoyu-imagine/references/codex-oauth-vs-openai-api-key.md delete mode 100644 skills/baoyu-imagine/references/config/first-time-setup.md delete mode 100644 skills/baoyu-imagine/references/config/preferences-schema.md delete mode 100644 skills/baoyu-imagine/references/providers/dashscope.md delete mode 100644 skills/baoyu-imagine/references/providers/minimax.md delete mode 100644 skills/baoyu-imagine/references/providers/openrouter.md delete mode 100644 skills/baoyu-imagine/references/providers/replicate.md delete mode 100644 skills/baoyu-imagine/references/providers/zai.md delete mode 100644 skills/baoyu-imagine/references/usage-examples.md delete mode 100644 skills/baoyu-imagine/scripts/main.test.ts delete mode 100644 skills/baoyu-imagine/scripts/main.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/azure.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/azure.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/dashscope.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/dashscope.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/google.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/google.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/jimeng.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/jimeng.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/minimax.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/minimax.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/openai.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/openai.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/openrouter.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/openrouter.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/replicate.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/replicate.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/seedream.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/seedream.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/zai.test.ts delete mode 100644 skills/baoyu-imagine/scripts/providers/zai.ts delete mode 100644 skills/baoyu-imagine/scripts/types.ts diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 45d2800..63c10e1 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,7 +6,7 @@ }, "metadata": { "description": "Skills shared by Baoyu for improving daily work efficiency", - "version": "1.119.0" + "version": "2.0.0" }, "plugins": [ { @@ -24,7 +24,7 @@ "./skills/baoyu-diagram", "./skills/baoyu-electron-extract", "./skills/baoyu-format-markdown", - "./skills/baoyu-imagine", + "./skills/baoyu-image-gen", "./skills/baoyu-infographic", "./skills/baoyu-markdown-to-html", "./skills/baoyu-post-to-weibo", @@ -33,9 +33,9 @@ "./skills/baoyu-slide-deck", "./skills/baoyu-translate", "./skills/baoyu-url-to-markdown", - "./skills/baoyu-image-cards", - "./skills/baoyu-youtube-transcript", - "./skills/baoyu-wechat-summary" + "./skills/baoyu-wechat-summary", + "./skills/baoyu-xhs-images", + "./skills/baoyu-youtube-transcript" ] } ] diff --git a/CHANGELOG.md b/CHANGELOG.md index c86790c..9f10420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ English | [中文](./CHANGELOG.zh.md) +## 2.0.0 - 2026-05-24 + +### Breaking +- Removed `baoyu-imagine` skill. All functionality (providers, scripts, references) now lives under `baoyu-image-gen`. The skill is registered in `marketplace.json` under the new name and its `homepage` URL has changed to `#baoyu-image-gen`. +- Removed `baoyu-image-cards` skill. All functionality (styles, layouts, palettes, presets) now lives under `baoyu-xhs-images`. The skill is registered in `marketplace.json` under the new name. +- Cross-skill `## Image Generation Tools` examples in `baoyu-article-illustrator`, `baoyu-comic`, `baoyu-cover-image`, `baoyu-infographic`, and `baoyu-slide-deck` now reference `baoyu-image-gen` instead of `baoyu-imagine`. + +### Migration +- Existing `~/.baoyu-skills/baoyu-imagine/EXTEND.md` and `.baoyu-skills/baoyu-imagine/EXTEND.md` configs are auto-renamed to `…/baoyu-image-gen/EXTEND.md` on first run via the legacy-path resolver in `scripts/main.ts`. +- Users invoking the skill via slash command should switch from `/baoyu-imagine ...` to `/baoyu-image-gen ...` and from any `baoyu-image-cards` reference to `baoyu-xhs-images`. + ## 1.119.0 - 2026-05-24 ### Features diff --git a/CHANGELOG.zh.md b/CHANGELOG.zh.md index 3e0c664..a12671b 100644 --- a/CHANGELOG.zh.md +++ b/CHANGELOG.zh.md @@ -2,6 +2,17 @@ [English](./CHANGELOG.md) | 中文 +## 2.0.0 - 2026-05-24 + +### 破坏性变更 +- 移除 `baoyu-imagine` skill。所有功能(providers、脚本、references)合并入 `baoyu-image-gen`,`marketplace.json` 改用新名称注册,`homepage` 链接更新为 `#baoyu-image-gen` +- 移除 `baoyu-image-cards` skill。所有功能(样式、布局、配色、预设)合并入 `baoyu-xhs-images`,`marketplace.json` 改用新名称注册 +- 其它 skill(`baoyu-article-illustrator`、`baoyu-comic`、`baoyu-cover-image`、`baoyu-infographic`、`baoyu-slide-deck`)中 `## Image Generation Tools` 示例统一改用 `baoyu-image-gen`,不再引用 `baoyu-imagine` + +### 迁移说明 +- 旧的 `~/.baoyu-skills/baoyu-imagine/EXTEND.md` 与 `.baoyu-skills/baoyu-imagine/EXTEND.md` 配置文件会被 `scripts/main.ts` 中的 legacy-path 解析器自动重命名到 `…/baoyu-image-gen/EXTEND.md`,首次运行时迁移 +- 通过斜杠命令调用时,请将 `/baoyu-imagine ...` 改为 `/baoyu-image-gen ...`;将所有 `baoyu-image-cards` 改为 `baoyu-xhs-images` + ## 1.119.0 - 2026-05-24 ### 新功能 diff --git a/CLAUDE.md b/CLAUDE.md index 6ed8c86..fb7f606 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,6 @@ # CLAUDE.md -Claude Code marketplace plugin providing AI-powered content generation skills. Version: **1.107.0**. +Claude Code marketplace plugin providing AI-powered content generation skills. Version: **2.0.0**. ## Architecture @@ -31,7 +31,7 @@ Execute: `${BUN_X} skills//scripts/main.ts [options]` - **Bun**: TypeScript runtime (`bun` preferred, fallback `npx -y bun`) - **Chrome**: Required for CDP-based skills (gemini-web, post-to-x/wechat/weibo, url-to-markdown). All CDP skills share a single profile, override via `BAOYU_CHROME_PROFILE_DIR` env var. Platform paths: [docs/chrome-profile.md](docs/chrome-profile.md) -- **Image generation APIs**: `baoyu-imagine` requires API key (OpenAI, Azure OpenAI, Google, OpenRouter, DashScope, or Replicate) configured in EXTEND.md +- **Image generation APIs**: `baoyu-image-gen` requires API key (OpenAI, Azure OpenAI, Google, OpenRouter, DashScope, or Replicate) configured in EXTEND.md - **Gemini Web auth**: Browser cookies (first run opens Chrome for login, `--login` to refresh) ## Security @@ -64,7 +64,7 @@ Skills that prompt users for choices MUST declare the tool-selection convention ## Image Generation Tools -Skills that render images MUST declare the backend-selection convention **inline** in exactly one place per `SKILL.md` — a `## Image Generation Tools` section near the top (after `## User Input Tools`). Do NOT link out to [docs/image-generation-tools.md](docs/image-generation-tools.md); that doc is the author-side canonical source — copy its body into each SKILL.md. Concrete tool names (`imagegen`, `image_generate`, `baoyu-imagine`) elsewhere in a skill are treated as examples — other runtimes substitute their local equivalent under the rule. The rule is stateless: use whatever backend is available; if multiple, ask the user once; if none, ask how to proceed. Every rendered image's full prompt must be written to a standalone `prompts/NN-*.md` file before any backend is invoked. Backend skills (`baoyu-imagine`, `baoyu-image-gen`, `baoyu-danger-gemini-web`) are exempt — they render directly rather than selecting a backend. +Skills that render images MUST declare the backend-selection convention **inline** in exactly one place per `SKILL.md` — a `## Image Generation Tools` section near the top (after `## User Input Tools`). Do NOT link out to [docs/image-generation-tools.md](docs/image-generation-tools.md); that doc is the author-side canonical source — copy its body into each SKILL.md. Concrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) elsewhere in a skill are treated as examples — other runtimes substitute their local equivalent under the rule. The rule is stateless: use whatever backend is available; if multiple, ask the user once; if none, ask how to proceed. Every rendered image's full prompt must be written to a standalone `prompts/NN-*.md` file before any backend is invoked. Backend skills (`baoyu-image-gen`, `baoyu-danger-gemini-web`) are exempt — they render directly rather than selecting a backend. ### `codex-imagegen` Backend @@ -82,13 +82,6 @@ Invoke via: Stdout emits a single JSON line: `{"status":"ok","path":...,"bytes":N,...}`. On failure, `{"status":"error","error_kind":...}`. Skills route here by setting `preferred_image_backend: codex-imagegen` in EXTEND.md. Full reference: [docs/codex-imagegen-backend.md](docs/codex-imagegen-backend.md). -## Deprecated Skills - -| Skill | Note | -|-------|------| -| `baoyu-image-gen` | Superseded by `baoyu-imagine`. Not in `.claude-plugin/marketplace.json`. Kept functional — sync any cross-cutting changes with `baoyu-imagine`. | -| `baoyu-xhs-images` | Superseded by `baoyu-image-cards`. Not in `.claude-plugin/marketplace.json`. Kept functional — sync any cross-cutting changes with `baoyu-image-cards`. Do NOT update README for this skill. | - ## Release Process Use `/release-skills` workflow. Never skip: diff --git a/README.md b/README.md index 78a5d5b..687e4bc 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ This repository now supports publishing each `skills/baoyu-*` directory as an in ClawHub installs skills individually, not as one marketplace bundle. After publishing, users can install specific skills such as: ```bash -clawhub install baoyu-imagine +clawhub install baoyu-image-gen clawhub install baoyu-markdown-to-html ``` @@ -726,67 +726,67 @@ Post content to Weibo (微博). Supports regular posts with text, images, and vi AI-powered generation backends. -#### baoyu-imagine +#### baoyu-image-gen AI SDK-based image generation using OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope (Aliyun Tongyi Wanxiang), MiniMax, Jimeng (即梦), Seedream (豆包), and Replicate APIs. Supports text-to-image, reference images, aspect ratios, custom sizes, batch generation, and quality presets. ```bash # Basic generation (auto-detect provider) -/baoyu-imagine --prompt "A cute cat" --image cat.png +/baoyu-image-gen --prompt "A cute cat" --image cat.png # With aspect ratio -/baoyu-imagine --prompt "A landscape" --image landscape.png --ar 16:9 +/baoyu-image-gen --prompt "A landscape" --image landscape.png --ar 16:9 # High quality (2k) -/baoyu-imagine --prompt "A banner" --image banner.png --quality 2k +/baoyu-image-gen --prompt "A banner" --image banner.png --quality 2k # Specific provider -/baoyu-imagine --prompt "A cat" --image cat.png --provider openai --model gpt-image-2 +/baoyu-image-gen --prompt "A cat" --image cat.png --provider openai --model gpt-image-2 # Azure OpenAI (model = deployment name) -/baoyu-imagine --prompt "A cat" --image cat.png --provider azure --model gpt-image-2 +/baoyu-image-gen --prompt "A cat" --image cat.png --provider azure --model gpt-image-2 # OpenRouter -/baoyu-imagine --prompt "A cat" --image cat.png --provider openrouter +/baoyu-image-gen --prompt "A cat" --image cat.png --provider openrouter # OpenRouter with reference images -/baoyu-imagine --prompt "Make it blue" --image out.png --provider openrouter --model google/gemini-3.1-flash-image-preview --ref source.png +/baoyu-image-gen --prompt "Make it blue" --image out.png --provider openrouter --model google/gemini-3.1-flash-image-preview --ref source.png # DashScope (Aliyun Tongyi Wanxiang) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider dashscope +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider dashscope # DashScope with custom size -/baoyu-imagine --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image banner.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872 +/baoyu-image-gen --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image banner.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872 # Z.AI GLM-Image -/baoyu-imagine --prompt "一张带清晰中文标题的科技海报" --image out.png --provider zai +/baoyu-image-gen --prompt "一张带清晰中文标题的科技海报" --image out.png --provider zai # MiniMax -/baoyu-imagine --prompt "A fashion editorial portrait by a bright studio window" --image out.jpg --provider minimax +/baoyu-image-gen --prompt "A fashion editorial portrait by a bright studio window" --image out.jpg --provider minimax # MiniMax with subject reference -/baoyu-imagine --prompt "A girl stands by the library window, cinematic lighting" --image out.jpg --provider minimax --model image-01 --ref portrait.png --ar 16:9 +/baoyu-image-gen --prompt "A girl stands by the library window, cinematic lighting" --image out.jpg --provider minimax --model image-01 --ref portrait.png --ar 16:9 # Replicate (default: google/nano-banana-2) -/baoyu-imagine --prompt "A cat" --image cat.png --provider replicate +/baoyu-image-gen --prompt "A cat" --image cat.png --provider replicate # Replicate Seedream 4.5 -/baoyu-imagine --prompt "A studio portrait" --image portrait.png --provider replicate --model bytedance/seedream-4.5 --ar 3:2 +/baoyu-image-gen --prompt "A studio portrait" --image portrait.png --provider replicate --model bytedance/seedream-4.5 --ar 3:2 # Replicate Wan 2.7 Image Pro -/baoyu-imagine --prompt "A concept frame" --image frame.png --provider replicate --model wan-video/wan-2.7-image-pro --size 2048x1152 +/baoyu-image-gen --prompt "A concept frame" --image frame.png --provider replicate --model wan-video/wan-2.7-image-pro --size 2048x1152 # Jimeng (即梦) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider jimeng +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider jimeng # Seedream (豆包) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider seedream +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider seedream # With reference images (Google, OpenAI, Azure OpenAI, OpenRouter, Replicate, MiniMax, or Seedream 5.0/4.5/4.0) -/baoyu-imagine --prompt "Make it blue" --image out.png --ref source.png +/baoyu-image-gen --prompt "Make it blue" --image out.png --ref source.png # Batch mode -/baoyu-imagine --batchfile batch.json --jobs 4 --json +/baoyu-image-gen --batchfile batch.json --jobs 4 --json ``` **Options**: @@ -865,7 +865,7 @@ AI SDK-based image generation using OpenAI GPT Image 2, Azure OpenAI, Google, Op - MiniMax reference images are sent as `subject_reference`; the current API is specialized toward character / portrait consistency. - Jimeng does not support reference images. - Seedream reference images are supported by Seedream 5.0 / 4.5 / 4.0, not Seedream 3.0. -- Replicate defaults to `google/nano-banana-2`. `baoyu-imagine` only enables Replicate advanced options for `google/nano-banana*`, `bytedance/seedream-4.5`, `bytedance/seedream-5-lite`, `wan-video/wan-2.7-image`, and `wan-video/wan-2.7-image-pro`. +- Replicate defaults to `google/nano-banana-2`. `baoyu-image-gen` only enables Replicate advanced options for `google/nano-banana*`, `bytedance/seedream-4.5`, `bytedance/seedream-5-lite`, `wan-video/wan-2.7-image`, and `wan-video/wan-2.7-image-pro`. - Replicate currently saves exactly one output image per request. `--n > 1` is blocked locally instead of silently dropping extra results. - Replicate model behavior is family-specific: nano-banana uses `--quality` / `--ar`, Seedream uses validated `--size` / `--ar`, and Wan uses validated `--size` (with `--ar` converted locally to a concrete size). @@ -1198,7 +1198,7 @@ Extract resources and JavaScript from any installed Electron app's `app.asar`. W Some skills require API keys or custom configuration. Environment variables can be set in `.env` files: **Load Priority** (higher priority overrides lower): -1. CLI environment variables (e.g., `OPENAI_API_KEY=xxx /baoyu-imagine ...`) +1. CLI environment variables (e.g., `OPENAI_API_KEY=xxx /baoyu-image-gen ...`) 2. `process.env` (system environment) 3. `/.baoyu-skills/.env` (project-level) 4. `~/.baoyu-skills/.env` (user-level) diff --git a/README.zh.md b/README.zh.md index 45bda87..05c2b5c 100644 --- a/README.zh.md +++ b/README.zh.md @@ -34,7 +34,7 @@ npx skills add jimliu/baoyu-skills ClawHub 按“单个 skill”安装,不是把整个 marketplace 一次性装进去。发布后,用户可以按需安装: ```bash -clawhub install baoyu-imagine +clawhub install baoyu-image-gen clawhub install baoyu-markdown-to-html ``` @@ -717,67 +717,67 @@ accounts: AI 驱动的生成后端。 -#### baoyu-imagine +#### baoyu-image-gen 基于 AI SDK 的图像生成,支持 OpenAI GPT Image 2、Azure OpenAI、Google、OpenRouter、DashScope(阿里通义万相)、MiniMax、即梦(Jimeng)、豆包(Seedream)和 Replicate API。支持文生图、参考图、宽高比、自定义尺寸、批量生成和质量预设。 ```bash # 基础生成(自动检测服务商) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png # 指定宽高比 -/baoyu-imagine --prompt "风景图" --image landscape.png --ar 16:9 +/baoyu-image-gen --prompt "风景图" --image landscape.png --ar 16:9 # 高质量(2k 分辨率) -/baoyu-imagine --prompt "横幅图" --image banner.png --quality 2k +/baoyu-image-gen --prompt "横幅图" --image banner.png --quality 2k # 指定服务商 -/baoyu-imagine --prompt "一只猫" --image cat.png --provider openai --model gpt-image-2 +/baoyu-image-gen --prompt "一只猫" --image cat.png --provider openai --model gpt-image-2 # Azure OpenAI(model 为部署名称) -/baoyu-imagine --prompt "一只猫" --image cat.png --provider azure --model gpt-image-2 +/baoyu-image-gen --prompt "一只猫" --image cat.png --provider azure --model gpt-image-2 # OpenRouter -/baoyu-imagine --prompt "一只猫" --image cat.png --provider openrouter +/baoyu-image-gen --prompt "一只猫" --image cat.png --provider openrouter # OpenRouter + 参考图 -/baoyu-imagine --prompt "把它变成蓝色" --image out.png --provider openrouter --model google/gemini-3.1-flash-image-preview --ref source.png +/baoyu-image-gen --prompt "把它变成蓝色" --image out.png --provider openrouter --model google/gemini-3.1-flash-image-preview --ref source.png # DashScope(阿里通义万相) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider dashscope +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider dashscope # DashScope 自定义尺寸 -/baoyu-imagine --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image banner.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872 +/baoyu-image-gen --prompt "为咖啡品牌设计一张 21:9 横幅海报,包含清晰中文标题" --image banner.png --provider dashscope --model qwen-image-2.0-pro --size 2048x872 # Z.AI GLM-Image -/baoyu-imagine --prompt "一张带清晰中文标题的科技海报" --image out.png --provider zai +/baoyu-image-gen --prompt "一张带清晰中文标题的科技海报" --image out.png --provider zai # MiniMax -/baoyu-imagine --prompt "A fashion editorial portrait by a bright studio window" --image out.jpg --provider minimax +/baoyu-image-gen --prompt "A fashion editorial portrait by a bright studio window" --image out.jpg --provider minimax # MiniMax + 角色参考图 -/baoyu-imagine --prompt "A girl stands by the library window, cinematic lighting" --image out.jpg --provider minimax --model image-01 --ref portrait.png --ar 16:9 +/baoyu-image-gen --prompt "A girl stands by the library window, cinematic lighting" --image out.jpg --provider minimax --model image-01 --ref portrait.png --ar 16:9 # Replicate(默认:google/nano-banana-2) -/baoyu-imagine --prompt "一只猫" --image cat.png --provider replicate +/baoyu-image-gen --prompt "一只猫" --image cat.png --provider replicate # Replicate Seedream 4.5 -/baoyu-imagine --prompt "一张影棚人像" --image portrait.png --provider replicate --model bytedance/seedream-4.5 --ar 3:2 +/baoyu-image-gen --prompt "一张影棚人像" --image portrait.png --provider replicate --model bytedance/seedream-4.5 --ar 3:2 # Replicate Wan 2.7 Image Pro -/baoyu-imagine --prompt "一张概念分镜" --image frame.png --provider replicate --model wan-video/wan-2.7-image-pro --size 2048x1152 +/baoyu-image-gen --prompt "一张概念分镜" --image frame.png --provider replicate --model wan-video/wan-2.7-image-pro --size 2048x1152 # 即梦(Jimeng) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider jimeng +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider jimeng # 豆包(Seedream) -/baoyu-imagine --prompt "一只可爱的猫" --image cat.png --provider seedream +/baoyu-image-gen --prompt "一只可爱的猫" --image cat.png --provider seedream # 带参考图(Google、OpenAI、Azure OpenAI、OpenRouter、Replicate、MiniMax 或 Seedream 5.0/4.5/4.0) -/baoyu-imagine --prompt "把它变成蓝色" --image out.png --ref source.png +/baoyu-image-gen --prompt "把它变成蓝色" --image out.png --ref source.png # 批量模式 -/baoyu-imagine --batchfile batch.json --jobs 4 --json +/baoyu-image-gen --batchfile batch.json --jobs 4 --json ``` **选项**: @@ -856,7 +856,7 @@ AI 驱动的生成后端。 - MiniMax 参考图会走 `subject_reference`,当前能力更偏角色 / 人像一致性。 - 即梦不支持参考图。 - 豆包参考图能力仅适用于 Seedream 5.0 / 4.5 / 4.0,不适用于 Seedream 3.0。 -- Replicate 默认模型改为 `google/nano-banana-2`。`baoyu-imagine` 目前只对 `google/nano-banana*`、`bytedance/seedream-4.5`、`bytedance/seedream-5-lite`、`wan-video/wan-2.7-image` 和 `wan-video/wan-2.7-image-pro` 开启本地能力识别与校验。 +- Replicate 默认模型改为 `google/nano-banana-2`。`baoyu-image-gen` 目前只对 `google/nano-banana*`、`bytedance/seedream-4.5`、`bytedance/seedream-5-lite`、`wan-video/wan-2.7-image` 和 `wan-video/wan-2.7-image-pro` 开启本地能力识别与校验。 - Replicate 当前只保存单张输出图,`--n > 1` 会在本地直接报错,避免多图结果被静默丢弃。 - Replicate 的参数能力按模型家族区分:nano-banana 走 `--quality` / `--ar`,Seedream 走校验后的 `--size` / `--ar`,Wan 走校验后的 `--size`(`--ar` 会先在本地换算成具体尺寸)。 @@ -1189,7 +1189,7 @@ AI 驱动的生成后端。 部分技能需要 API 密钥或自定义配置。环境变量可以在 `.env` 文件中设置: **加载优先级**(高优先级覆盖低优先级): -1. 命令行环境变量(如 `OPENAI_API_KEY=xxx /baoyu-imagine ...`) +1. 命令行环境变量(如 `OPENAI_API_KEY=xxx /baoyu-image-gen ...`) 2. `process.env`(系统环境变量) 3. `/.baoyu-skills/.env`(项目级) 4. `~/.baoyu-skills/.env`(用户级) diff --git a/docs/codex-imagegen-backend.md b/docs/codex-imagegen-backend.md index d29bc8d..fc18da0 100644 --- a/docs/codex-imagegen-backend.md +++ b/docs/codex-imagegen-backend.md @@ -24,7 +24,7 @@ This backend implements the `preferred_image_backend: codex-imagegen` config key | Scenario | Conventional backend | This backend | |----------|---------------------|--------------| | You have a Codex subscription | OpenAI Images API costs add up per image | Subscription already covers it — zero marginal API cost | -| No `OPENAI_API_KEY` available | `baoyu-imagine` needs an API key | `codex login` is enough | +| No `OPENAI_API_KEY` available | `baoyu-image-gen` needs an API key | `codex login` is enough | | Want to use GPT Image 2 | Only via OpenAI API | Codex's `image_gen` *is* GPT Image 2 | ## Prerequisites diff --git a/docs/creating-skills.md b/docs/creating-skills.md index f1b06ea..c21b3e1 100644 --- a/docs/creating-skills.md +++ b/docs/creating-skills.md @@ -165,11 +165,11 @@ Standard snippet (copy verbatim): 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. +- **Use whatever image-generation tool or skill is available** in the current runtime — e.g., Codex `imagegen`, Hermes `image_generate`, `baoyu-image-gen`, 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. +Concrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) above are examples — substitute the local equivalents under the same rule. ``` diff --git a/docs/image-generation-tools.md b/docs/image-generation-tools.md index 2d67166..3bd4e2b 100644 --- a/docs/image-generation-tools.md +++ b/docs/image-generation-tools.md @@ -1,6 +1,6 @@ # Image Generation Tools -Skills in this repo are loaded by multiple agent runtimes (Claude Code, Codex, Hermes, other agents, bare CLI). Each runtime exposes a different image-generation capability — some have a runtime-native tool (Codex `imagegen`, Hermes `image_generate`), others rely on an installed skill (`baoyu-imagine`, or user-defined). This document defines the canonical **backend-selection rule** every skill that renders images follows so skills stay portable. +Skills in this repo are loaded by multiple agent runtimes (Claude Code, Codex, Hermes, other agents, bare CLI). Each runtime exposes a different image-generation capability — some have a runtime-native tool (Codex `imagegen`, Hermes `image_generate`), others rely on an installed skill (`baoyu-image-gen`, or user-defined). This document defines the canonical **backend-selection rule** every skill that renders images follows so skills stay portable. ## The Rule @@ -9,9 +9,9 @@ When a skill needs to render an image, resolve the backend in this order: 1. **Current-request override** — if the user names a specific backend in the current message, use it. 2. **Saved preference** — if the skill's `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it. 3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available): - - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-imagine`) unless the user has explicitly pinned a different `preferred_image_backend`. + - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`. - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way. - - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it. + - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it. - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions. 4. **If none are available**, tell the user and ask how to proceed. @@ -27,7 +27,7 @@ Each image-consuming skill's `EXTEND.md` carries a single `preferred_image_backe |---|---| | `auto` (default) | Apply the auto-select rule — runtime-native preferred, fall back to only installed backend, ask if multiple non-native. | | `ask` | Always confirm the backend on every run, even when a runtime-native tool exists. | -| `` (e.g., `codex-imagegen`, `baoyu-imagine`, `image_generate`) | Pin this backend when available; fall back to `auto` if it isn't. | +| `` (e.g., `codex-imagegen`, `baoyu-image-gen`, `image_generate`) | Pin this backend when available; fall back to `auto` if it isn't. | The field is **absent-equals-auto**: older `EXTEND.md` files without this field behave exactly as if `preferred_image_backend: auto` were set. No schema version bump is needed to introduce it. @@ -41,8 +41,8 @@ Each `SKILL.md` that renders images includes **exactly one** `## Image Generatio Each skill's `references/config/preferences-schema.md` (and its `EXTEND.md` template in `first-time-setup.md`) lists `preferred_image_backend` alongside other preference fields. First-time setup does NOT ask the user about the backend — `auto` is set silently. Users who want to pin a specific backend edit `EXTEND.md` later, and each skill's `## Changing Preferences` section documents the common one-line edits. -Concrete tool names (`imagegen`, `image_generate`, `baoyu-imagine`) in this document and in SKILL.md are **examples** — agents in other runtimes apply the rule above and substitute the local equivalent. Skill-specific parameters for these backends are illustrative; runtimes without those knobs can omit them. +Concrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) in this document and in SKILL.md are **examples** — agents in other runtimes apply the rule above and substitute the local equivalent. Skill-specific parameters for these backends are illustrative; runtimes without those knobs can omit them. ## Backend Skills Are Exempt -Skills that **are themselves** image-generation backends — currently `baoyu-imagine`, `baoyu-image-gen` (deprecated), and `baoyu-danger-gemini-web` — do NOT include a `## Image Generation Tools` section. They render directly via their own provider integrations and have no need to "select a backend." The rule applies only to consumer skills that delegate rendering to whatever backend the runtime exposes. +Skills that **are themselves** image-generation backends — currently `baoyu-image-gen`, `baoyu-image-gen` (deprecated), and `baoyu-danger-gemini-web` — do NOT include a `## Image Generation Tools` section. They render directly via their own provider integrations and have no need to "select a backend." The rule applies only to consumer skills that delegate rendering to whatever backend the runtime exposes. diff --git a/docs/image-generation.md b/docs/image-generation.md index 91551f2..07a8604 100644 --- a/docs/image-generation.md +++ b/docs/image-generation.md @@ -28,7 +28,7 @@ Skills that require image generation MUST delegate to available image generation 5. On failure, auto-retry once before reporting error ``` -**Batch Parallel** (`baoyu-imagine` only): concurrent workers with per-provider throttling via `batch.max_workers` in EXTEND.md. +**Batch Parallel** (`baoyu-image-gen` only): concurrent workers with per-provider throttling via `batch.max_workers` in EXTEND.md. ## Output Path Convention diff --git a/skills/baoyu-article-illustrator/SKILL.md b/skills/baoyu-article-illustrator/SKILL.md index 4b525e0..161be65 100644 --- a/skills/baoyu-article-illustrator/SKILL.md +++ b/skills/baoyu-article-illustrator/SKILL.md @@ -1,7 +1,7 @@ --- name: baoyu-article-illustrator description: Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach. Use when user asks to "illustrate article", "add images", "generate images for article", or "为文章配图". -version: 1.59.0 +version: 1.59.1 metadata: openclaw: homepage: https://github.com/JimLiu/baoyu-skills#baoyu-article-illustrator @@ -28,9 +28,9 @@ When this skill needs to render an image, resolve the backend in this order: 1. **Current-request override** — if the user names a specific backend in the current message, use it. 2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it. 3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available): - - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-imagine`) unless the user has explicitly pinned a different `preferred_image_backend`. + - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`. - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way. - - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it. + - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it. - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions. 4. **If none are available**, tell the user and ask how to proceed. @@ -42,7 +42,7 @@ Setting `preferred_image_backend: ask` forces the step-3 prompt every run regard **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. +Concrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) above are examples — substitute the local equivalents under the same rule. ## Batch Generation Policy @@ -73,7 +73,7 @@ Default behavior: **confirm before generation**. Users may supply reference images via `--ref ` or by providing file paths / pasting images in conversation. Refs guide style, palette, composition, or subject for specific illustrations. -Full detection, storage, and processing rules are in [references/workflow.md](references/workflow.md) (Step 1.0 saves to `references/NN-ref-{slug}.{ext}`; Step 5.3 processes per-illustration usage `direct | style | palette`). When the chosen backend supports batch input, `direct`-usage entries in each prompt file's `references:` frontmatter should be propagated into its batch payload so backends can pass them through (e.g. `baoyu-imagine` accepts `ref` per task). +Full detection, storage, and processing rules are in [references/workflow.md](references/workflow.md) (Step 1.0 saves to `references/NN-ref-{slug}.{ext}`; Step 5.3 processes per-illustration usage `direct | style | palette`). When the chosen backend supports batch input, `direct`-usage entries in each prompt file's `references:` frontmatter should be propagated into its batch payload so backends can pass them through (e.g. `baoyu-image-gen` accepts `ref` per task). ## Three Dimensions @@ -261,7 +261,7 @@ EXTEND.md lives at the first matching path listed in Step 1.5. Three ways to cha - **Common one-line edits**: - `preferred_image_backend: auto` — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present. - `preferred_image_backend: codex-imagegen` — pin to Codex's built-in. - - `preferred_image_backend: baoyu-imagine` — pin to the baoyu-imagine skill. + - `preferred_image_backend: baoyu-image-gen` — pin to the baoyu-image-gen skill. - `preferred_image_backend: ask` — confirm backend every run. - `generation_batch_size: 4` — default number of images to render concurrently when the runtime supports parallel generation calls. - `preferred_type: infographic`, `preferred_style: notion`, `preferred_palette: macaron`, `language: zh`. diff --git a/skills/baoyu-article-illustrator/references/config/preferences-schema.md b/skills/baoyu-article-illustrator/references/config/preferences-schema.md index 9157f1f..001d061 100644 --- a/skills/baoyu-article-illustrator/references/config/preferences-schema.md +++ b/skills/baoyu-article-illustrator/references/config/preferences-schema.md @@ -56,7 +56,7 @@ custom_styles: | `preferred_palette` | string | null | Palette override (macaron, warm, neon, or null) | | `language` | string | null | Output language (null = auto-detect) | | `default_output_dir` | enum | null | Output directory preference (null = ask each time) | -| `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. `` (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. | +| `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. `` (e.g., `codex-imagegen`, `baoyu-image-gen`, `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. | | `generation_batch_size` | int | 4 | Number of images to dispatch per batch when the backend has native batch support or the runtime can issue parallel generation calls. Clamp invalid values to 1-8. Current user request overrides this value. | | `custom_styles` | array | [] | User-defined styles | diff --git a/skills/baoyu-article-illustrator/references/workflow.md b/skills/baoyu-article-illustrator/references/workflow.md index 9969a4b..1c95f3e 100644 --- a/skills/baoyu-article-illustrator/references/workflow.md +++ b/skills/baoyu-article-illustrator/references/workflow.md @@ -381,7 +381,7 @@ Follow the `## Image Generation Tools` rule at the top of `SKILL.md`. Concretely | Skill Supports `--ref` | Action | |------------------------|--------| -| Yes (e.g., baoyu-imagine with Google) | Pass reference images via `--ref` | +| Yes (e.g., baoyu-image-gen with Google) | Pass reference images via `--ref` | | No | Convert to text description, append to prompt | **Verification**: Before generating, confirm reference processing: diff --git a/skills/baoyu-comic/SKILL.md b/skills/baoyu-comic/SKILL.md index 84fcd8a..a743b35 100644 --- a/skills/baoyu-comic/SKILL.md +++ b/skills/baoyu-comic/SKILL.md @@ -1,7 +1,7 @@ --- name: baoyu-comic description: Knowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts and batch-capable image generation. Use when user asks to create "知识漫画", "教育漫画", "biography comic", "tutorial comic", or "Logicomix-style comic". -version: 1.57.0 +version: 1.57.1 metadata: openclaw: homepage: https://github.com/JimLiu/baoyu-skills#baoyu-comic @@ -32,9 +32,9 @@ When this skill needs to render an image, resolve the backend in this order: 1. **Current-request override** — if the user names a specific backend in the current message, use it. 2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it. 3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available): - - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-imagine`) unless the user has explicitly pinned a different `preferred_image_backend`. + - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`. - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way. - - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it. + - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it. - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions. 4. **If none are available**, tell the user and ask how to proceed. @@ -46,7 +46,7 @@ Setting `preferred_image_backend: ask` forces the step-3 prompt every run regard **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. +Concrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) above are examples — substitute the local equivalents under the same rule. ## Batch Generation Policy @@ -245,7 +245,7 @@ Analyze → [Check Existing?] → [Confirm: Style + Reviews] → Storyboard → ### Step 7: Image Generation -**Pick a backend once per session** using the `## Image Generation Tools` rule at the top. If the backend is a repo skill (e.g., `baoyu-imagine`), read its `SKILL.md` and use its documented interface rather than its scripts. +**Pick a backend once per session** using the `## Image Generation Tools` rule at the top. If the backend is a repo skill (e.g., `baoyu-image-gen`), read its `SKILL.md` and use its documented interface rather than its scripts. **7.1 Character sheet** — generate it (to `characters/characters.png`, aspect `4:3`) when the comic is multi-page with recurring characters. Skip for simple presets (e.g., four-panel minimalist) or single-page comics. Compress to JPEG before use-as-`--ref` (`sips -s format jpeg -s formatOptions 80 …` on macOS, `pngquant --quality=65-80 …` elsewhere) to avoid payload failures. The prompt file at `characters/characters.md` must exist before invoking the backend. @@ -342,7 +342,7 @@ EXTEND.md lives at `.baoyu-skills/baoyu-comic/EXTEND.md` (project) or `~/.baoyu- - **Common one-line edits**: - `preferred_image_backend: auto` — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present. - `preferred_image_backend: codex-imagegen` — pin to Codex's built-in. - - `preferred_image_backend: baoyu-imagine` — pin to the baoyu-imagine skill. + - `preferred_image_backend: baoyu-image-gen` — pin to the baoyu-image-gen skill. - `preferred_image_backend: ask` — confirm backend every run. - `generation_batch_size: 4` — default number of page images to render concurrently when the backend/runtime supports batch or parallel generation. - `watermark.enabled: true`, `preferred_art`, `preferred_tone`, `preferred_layout`, `language` — shift the auto-selection defaults and cosmetic choices. diff --git a/skills/baoyu-comic/references/config/preferences-schema.md b/skills/baoyu-comic/references/config/preferences-schema.md index 5a1323f..8c6ff67 100644 --- a/skills/baoyu-comic/references/config/preferences-schema.md +++ b/skills/baoyu-comic/references/config/preferences-schema.md @@ -50,7 +50,7 @@ character_presets: | `preferred_layout` | string | null | Layout preference or null | | `preferred_aspect` | string | null | Aspect ratio (3:4, 4:3, 16:9) | | `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. `` (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. | +| `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. `` (e.g., `codex-imagegen`, `baoyu-image-gen`, `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. | | `generation_batch_size` | int | 4 | Number of page images to dispatch per batch when the backend has native batch support or the runtime can issue parallel generation calls. Clamp invalid values to 1-8. Current user request overrides this value. | | `character_presets` | array | [] | Preset character roles for styles like ohmsha | diff --git a/skills/baoyu-comic/references/workflow.md b/skills/baoyu-comic/references/workflow.md index 4d70707..29a4171 100644 --- a/skills/baoyu-comic/references/workflow.md +++ b/skills/baoyu-comic/references/workflow.md @@ -448,7 +448,7 @@ Character sheet is recommended for multi-page comics with recurring characters, | Exists | No `--ref` support | **B**: Embed character descriptions in every prompt | | Skipped | — | **C**: Prompt file contains all descriptions inline | -**Strategy A: Using `--ref` parameter** (e.g., baoyu-imagine) +**Strategy A: Using `--ref` parameter** (e.g., baoyu-image-gen) - Read the chosen image generation skill's `SKILL.md` - Invoke that installed skill via its documented interface, not by calling its scripts directly diff --git a/skills/baoyu-cover-image/SKILL.md b/skills/baoyu-cover-image/SKILL.md index ff01ffa..1d18aea 100644 --- a/skills/baoyu-cover-image/SKILL.md +++ b/skills/baoyu-cover-image/SKILL.md @@ -1,7 +1,7 @@ --- name: baoyu-cover-image description: Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles. Supports cinematic (2.35:1), widescreen (16:9), and square (1:1) aspects. Use when user asks to "generate cover image", "create article cover", or "make cover". -version: 1.117.3 +version: 1.117.4 metadata: openclaw: homepage: https://github.com/JimLiu/baoyu-skills#baoyu-cover-image @@ -28,7 +28,7 @@ When this skill needs to render an image, resolve the backend in this order: 1. **Current-request override** — if the user names a specific backend in the current message, use it. 2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it. 3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available): - - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-imagine`) unless the user has explicitly pinned a different `preferred_image_backend`. + - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`. - **Codex via `codex exec` (`codex-imagegen`)** — if the current runtime does NOT expose a native `imagegen` skill but the `codex` CLI is on `PATH` and `codex login` is active (e.g., Claude Code with Codex CLI installed), invoke the `codex-imagegen` wrapper. **Path resolution**: `scripts/codex-imagegen.sh` lives at the plugin/repo root, NOT relative to your shell cwd. From this `SKILL.md`'s base directory, the wrapper is at `../../scripts/codex-imagegen.sh` — resolve to an absolute path before invoking. Command shape: ```bash /scripts/codex-imagegen.sh \ @@ -43,7 +43,7 @@ When this skill needs to render an image, resolve the backend in this order: `--timeout` defaults to 300000 (5 min) per codex exec attempt; raise it (e.g. `--timeout 600000` for 10 min) on slow networks or large prompts. All input paths to the wrapper are auto-resolved against the wrapper's `process.cwd()` if you pass relative ones, but agents should pass absolute paths to be robust against cwd drift. Parse the single-line JSON on stdout. On `{"status":"ok",...}` proceed to Step 5. On `{"status":"error","error_kind":...}` report the `error_kind` to the user and (if retryable) ask whether to retry or fall back to another backend. The wrapper uses the user's Codex subscription — no `OPENAI_API_KEY` needed. - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way. - - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it. + - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it. - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions. 4. **If none are available**, tell the user and ask how to proceed. @@ -55,7 +55,7 @@ Setting `preferred_image_backend: ask` forces the step-3 prompt every run regard **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. +Concrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) above are examples — substitute the local equivalents under the same rule. ## Confirmation Policy @@ -229,7 +229,7 @@ Save to `prompts/cover.md`. Template: [references/workflow/prompt-template.md](r - `style`/`palette` → extract traits, append to prompt 5. **Generate**: Call the chosen backend with the prompt file, output path, aspect ratio. - **`codex-imagegen`**: invoke `/scripts/codex-imagegen.sh` (NOT a cwd-relative `./scripts/...` — resolve the absolute path from this skill's base directory: `../../scripts/codex-imagegen.sh`) with `--image ` `--prompt-file ` `--aspect ` (add `--ref ` per reference, `--cache-dir ~/.cache/baoyu-codex-imagegen` to enable the idempotency cache, `--timeout ` to override the default 300000 / 5-min per-attempt limit on slow networks). All input paths to the wrapper are auto-resolved against its `process.cwd()` if relative, but passing absolutes is more robust. Read the stdout JSON; act on `status` and `error_kind`. - - **Codex `imagegen` (native)** or other runtime-native tools / `baoyu-imagine` skill: per the rule in `## Image Generation Tools` above. + - **Codex `imagegen` (native)** or other runtime-native tools / `baoyu-image-gen` skill: per the rule in `## Image Generation Tools` above. 6. On failure: auto-retry once ### Step 5: Completion Report @@ -280,7 +280,7 @@ EXTEND.md lives at the path noted in **Step 0**. Three ways to change it: - **Common one-line edits**: - `preferred_image_backend: auto` — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present. - `preferred_image_backend: codex-imagegen` — pin to Codex's built-in. - - `preferred_image_backend: baoyu-imagine` — pin to the baoyu-imagine skill. + - `preferred_image_backend: baoyu-image-gen` — pin to the baoyu-image-gen skill. - `preferred_image_backend: ask` — confirm backend every run. - `watermark.enabled: true`, `preferred_type`, `preferred_palette`, `preferred_rendering`, `default_aspect`, `quick_mode: true`, `language` — shift the auto-selection defaults and confirmation flow. diff --git a/skills/baoyu-cover-image/references/config/preferences-schema.md b/skills/baoyu-cover-image/references/config/preferences-schema.md index ba69692..2fee1d8 100644 --- a/skills/baoyu-cover-image/references/config/preferences-schema.md +++ b/skills/baoyu-cover-image/references/config/preferences-schema.md @@ -62,7 +62,7 @@ custom_palettes: | `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. `` (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. | +| `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. `` (e.g., `codex-imagegen`, `baoyu-image-gen`, `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 diff --git a/skills/baoyu-image-cards/SKILL.md b/skills/baoyu-image-cards/SKILL.md deleted file mode 100644 index ec4246b..0000000 --- a/skills/baoyu-image-cards/SKILL.md +++ /dev/null @@ -1,480 +0,0 @@ ---- -name: baoyu-image-cards -description: Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes. Breaks content into 1-10 cartoon-style image cards optimized for social media engagement. Use when user mentions "小红书图片", "小红书种草", "小绿书", "微信图文", "微信贴图", "image cards", "图片卡片", or wants social media infographic series. -version: 1.57.0 -metadata: - openclaw: - homepage: https://github.com/JimLiu/baoyu-skills#baoyu-image-cards ---- - -# Image Card Series Generator - -Break down complex content into eye-catching image card series with multiple style options. - -## 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, resolve the backend in this order: - -1. **Current-request override** — if the user names a specific backend in the current message, use it. -2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it. -3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available): - - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: "imagegen"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-imagine`) unless the user has explicitly pinned a different `preferred_image_backend`. - - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way. - - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it. - - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions. -4. **If none are available**, tell the user and ask how to proceed. - -**⛔ Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation.** Codex `imagegen`'s own description says it should be used "when the output should be a bitmap asset rather than repo-native code or vector." If you cannot resolve a raster backend via step 3, fall through to step 4 and ask the user — do **not** silently emit SVG, write inline `` markup, or produce HTML/CSS art as a substitute. This applies even if the article/section seems "diagram-like": the consumer skill calling this rule has already decided that a raster image is what it needs. - -**⛔ Never repair rendered text by painting over a generated bitmap.** Do not use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other programmatic overlay to cover, rewrite, erase, stroke, or replace titles, body copy, tags, or any other text inside an already generated image card. If text is wrong or unclear, regenerate from a corrected prompt, switch to a layout with less on-card text, or ask the user which imperfect candidate to keep. - -Setting `preferred_image_backend: ask` forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the `## Changing Preferences` section below. - -**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 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. - -## Batch Generation Policy - -After every prompt file for the current generation group has been saved and verified, generate images in batches by default. - -Priority order: - -1. Use the chosen backend's native batch / multi-task interface if it exists. Each task must keep its own prompt file, output path, aspect ratio, session ID, and direct reference images. -2. If no native batch interface exists but the runtime can issue parallel tool calls, dispatch up to `generation_batch_size` images at a time. Default: `4`. An explicit user request in the current message, such as `--batch-size 4` or "并行4张一起生成", overrides EXTEND.md. -3. If neither native batch nor parallel tool calls are available, generate sequentially. - -Rules: - -- Honor the image-1 anchor chain: generate image 1 first, then batch images 2+ using image 1 as the reference. -- Never start a batch until every selected prompt file for that batch exists on disk. -- Retry failed items once without regenerating successful items. -- Do not use subagents merely to parallelize image rendering. Use subagents only for separate prompt iteration or creative exploration. - -## Confirmation Policy - -Default behavior: **confirm before generation**. - -- Treat explicit skill invocation, a file path, matched signals/presets, and `EXTEND.md` defaults as **recommendation inputs only**. None of them authorizes skipping confirmation. -- Do **not** start Step 3 until the user completes Step 2. -- Skip confirmation only when the current request explicitly says to do so, for example: `--yes`, "直接生成", "不用确认", "跳过确认", "按默认出图", or equivalent wording. -- If confirmation is skipped explicitly, state the assumed strategy / style / layout / palette / count / backend in the next user-facing update before generating. - -## Language - -Respond in the user's language across questions, progress, errors, and completion summary. Keep technical tokens (style names, file paths, code) in English. - -## Options - -| Option | Description | -|--------|-------------| -| `--style ` | Visual style (see Styles below) | -| `--layout ` | Information layout (see Layouts below) | -| `--palette ` | Color override: macaron / warm / neon | -| `--preset ` | Style + layout + optional palette shorthand (see Presets below; per-preset prompt fragments in `references/style-presets.md`) | -| `--ref ` | Reference images applied to image 1 as the series anchor | -| `--batch-size ` | Temporary generation batch size for this run. Default: `generation_batch_size` from EXTEND.md, otherwise 4. Clamp to 1-8. | -| `--yes` | Non-interactive: skip all confirmations, use EXTEND.md or built-in defaults, auto-confirm recommended plan (Path A) | - -## Dimensions - -Three independent knobs combine freely: - -| Dimension | Controls | Options | -|-----------|----------|---------| -| **Style** | Visual aesthetics (lines, decorations, rendering) | 12 styles (see Styles below) | -| **Layout** | Information structure (density, arrangement) | 8 layouts (see Layouts below) | -| **Palette** (optional) | Color override, replaces the style's default colors | macaron / warm / neon (see Palettes below) | - -Example: `--style notion --layout dense` makes an intellectual knowledge card; add `--palette macaron` to soften the colors without changing notion's rendering rules. A `--preset` is a shorthand for style + layout (+ optional palette). - -**Palette behavior**: no `--palette` → style's built-in colors; `--palette ` → overrides colors only, rendering rules unchanged. Some styles declare a `default_palette` (e.g., sketch-notes defaults to macaron). - -## Styles (12) - -| Style | Description | -|-------|-------------| -| `cute` (Default) | Sweet, adorable, girly aesthetic | -| `fresh` | Clean, refreshing, natural | -| `warm` | Cozy, friendly, approachable | -| `bold` | High impact, attention-grabbing | -| `minimal` | Ultra-clean, sophisticated | -| `retro` | Vintage, nostalgic, trendy | -| `pop` | Vibrant, energetic, eye-catching | -| `notion` | Minimalist hand-drawn line art, intellectual | -| `chalkboard` | Colorful chalk on black board, educational | -| `study-notes` | Realistic handwritten photo style, blue pen + red annotations + yellow highlighter | -| `screen-print` | Bold poster art, halftone textures, limited colors, symbolic storytelling | -| `sketch-notes` | Hand-drawn educational infographic, macaron pastels on warm cream, wobble lines | - -Per-style specifications: `references/presets/