🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx @anthropic-ai/skills install jimliu/baoyu-skills/baoyu-image-gen
💡 提示:需要 Node.js 和 NPM
图像生成 (AI SDK)
基于官方 API 的图像生成。支持 OpenAI、Google、DashScope(阿里通义万象)和 Replicate 提供商。
脚本目录
代理执行流程:
{baseDir}= 此 SKILL.md 文件所在的目录- 脚本路径 =
{baseDir}/scripts/main.ts - 解析
${BUN_X}运行时:如果已安装bun→ 使用bun;如果npx可用 → 使用npx -y bun;否则建议安装 bun
步骤 0:加载偏好设置 ⛔ 阻塞步骤
关键:此步骤必须在任何图像生成之前完成。切勿跳过或延迟。
检查 EXTEND.md 是否存在(优先级:项目 → 用户):
# macOS, Linux, WSL, Git Bash
test -f .baoyu-skills/baoyu-image-gen/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-image-gen/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-image-gen/EXTEND.md" && echo "user"
# PowerShell (Windows)
if (Test-Path .baoyu-skills/baoyu-image-gen/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-image-gen/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-image-gen/EXTEND.md") { "user" }
| 结果 | 操作 |
|---|---|
| 找到 | 加载、解析并应用设置。如果 default_model.[provider] 为 null → 仅询问模型(流程 2) |
| 未找到 | ⛔ 运行首次设置 → 保存 EXTEND.md → 然后继续 |
关键:如果未找到,在生成任何图像之前,必须使用 AskUserQuestion 完成完整的设置(提供商 + 模型 + 质量 + 保存位置)。在创建 EXTEND.md 之前,生成被阻塞。
| 路径 | 位置 |
|---|---|
.baoyu-skills/baoyu-image-gen/EXTEND.md |
项目目录 |
$HOME/.baoyu-skills/baoyu-image-gen/EXTEND.md |
用户主目录 |
EXTEND.md 支持配置:默认提供商 | 默认质量 | 默认宽高比 | 默认图像尺寸 | 默认模型 | 批量工作进程上限 | 提供商特定批量限制
模式:references/config/preferences-schema.md
使用方法
# 基础用法
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image cat.png
# 指定宽高比
${BUN_X} {baseDir}/scripts/main.ts --prompt "风景画" --image out.png --ar 16:9
# 高质量
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image out.png --quality 2k
# 从提示词文件读取
${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md content.md --image out.png
# 带参考图像(Google 多模态或 OpenAI 编辑)
${BUN_X} {baseDir}/scripts/main.ts --prompt "变成蓝色" --image out.png --ref source.png
# 带参考图像(显式指定提供商/模型)
${BUN_X} {baseDir}/scripts/main.ts --prompt "变成蓝色" --image out.png --provider google --model gemini-3-pro-image-preview --ref source.png
# 指定提供商
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image out.png --provider openai
# DashScope (阿里通义万象)
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只可爱的猫" --image out.png --provider dashscope
# Replicate (google/nano-banana-pro)
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image out.png --provider replicate
# Replicate 指定模型
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image out.png --provider replicate --model google/nano-banana
# 批量模式,使用已保存的提示词文件
${BUN_X} {baseDir}/scripts/main.ts --batchfile batch.json
# 批量模式,显式指定工作进程数
${BUN_X} {baseDir}/scripts/main.ts --batchfile batch.json --jobs 4 --json
批量文件格式
{
"jobs": 4,
"tasks": [
{
"id": "主图",
"promptFiles": ["prompts/hero.md"],
"image": "out/hero.png",
"provider": "replicate",
"model": "google/nano-banana-pro",
"ar": "16:9",
"quality": "2k"
},
{
"id": "图表",
"promptFiles": ["prompts/diagram.md"],
"image": "out/diagram.png",
"ref": ["references/original.png"]
}
]
}
promptFiles、image 和 ref 中的路径相对于批处理文件所在的目录进行解析。jobs 是可选的(会被 CLI 的 --jobs 覆盖)。也接受不带 jobs 包装器的顶级数组格式。
选项
| 选项 | 描述 |
|---|---|
--prompt <文本>,-p |
提示词文本 |
--promptfiles <文件...> |
从文件读取提示词(拼接) |
--image <路径> |
输出图像路径(单图像模式下必需) |
--batchfile <路径> |
用于多图像生成的 JSON 批处理文件 |
--jobs <数量> |
批量模式的工作进程数(默认:自动,上限来自配置,内置默认值为 10) |
--provider google|openai|dashscope|replicate |
强制指定提供商(默认:自动检测) |
--model <ID>,-m |
模型 ID(Google:gemini-3-pro-image-preview,gemini-3.1-flash-image-preview;OpenAI:gpt-image-1.5,gpt-image-1) |
--ar <比例> |
宽高比(例如 16:9,1:1,4:3) |
--size <宽x高> |
尺寸(例如 1024x1024) |
--quality normal|2k |
质量预设(默认:2k) |
--imageSize 1K|2K|4K |
Google 的图像尺寸(默认:根据质量预设决定) |
--ref <文件...> |
参考图像。Google 多模态、OpenAI GPT 图像编辑和 Replicate 支持此功能 |
--n <数量> |
生成图像数量 |
--json |
JSON 格式输出 |
环境变量
| 变量名 | 描述 |
|---|---|
OPENAI_API_KEY |
OpenAI API 密钥 |
GOOGLE_API_KEY |
Google API 密钥 |
DASHSCOPE_API_KEY |
DashScope API 密钥 (阿里云) |
REPLICATE_API_TOKEN |
Replicate API 令牌 |
OPENAI_IMAGE_MODEL |
OpenAI 模型覆盖 |
GOOGLE_IMAGE_MODEL |
Google 模型覆盖 |
DASHSCOPE_IMAGE_MODEL |
DashScope 模型覆盖(默认:z-image-turbo) |
REPLICATE_IMAGE_MODEL |
Replicate 模型覆盖(默认:google/nano-banana-pro) |
OPENAI_BASE_URL |
自定义 OpenAI 端点 |
GOOGLE_BASE_URL |
自定义 Google 端点 |
DASHSCOPE_BASE_URL |
自定义 DashScope 端点 |
REPLICATE_BASE_URL |
自定义 Replicate 端点 |
BAOYU_IMAGE_GEN_MAX_WORKERS |
覆盖批量工作进程上限 |
BAOYU_IMAGE_GEN_<PROVIDER>_CONCURRENCY |
覆盖提供商并发数,例如 BAOYU_IMAGE_GEN_REPLICATE_CONCURRENCY |
BAOYU_IMAGE_GEN_<PROVIDER>_START_INTERVAL_MS |
覆盖提供商启动间隔毫秒数,例如 BAOYU_IMAGE_GEN_REPLICATE_START_INTERVAL_MS |
加载优先级:CLI 参数 > EXTEND.md > 环境变量 > <cwd>/.baoyu-skills/.env > ~/.baoyu-skills/.env
模型解析
模型优先级(从高到低),适用于所有提供商:
- CLI 标志:
--model <ID> - EXTEND.md:
default_model.[provider] - 环境变量:
<PROVIDER>_IMAGE_MODEL(例如GOOGLE_IMAGE_MODEL) - 内置默认值
EXTEND.md 会覆盖环境变量。如果同时存在 EXTEND.md 中的 default_model.google: "gemini-3-pro-image-preview" 和环境变量 GOOGLE_IMAGE_MODEL=gemini-3.1-flash-image-preview,则以 EXTEND.md 为准。
代理必须在每次生成前显示模型信息:
- 显示:
正在使用 [提供商] / [模型] - 显示切换提示:
切换模型:--model <ID> | EXTEND.md default_model.[provider] | 环境变量 <PROVIDER>_IMAGE_MODEL
Replicate 模型
支持的模型格式:
所有者/名称(推荐用于官方模型),例如google/nano-banana-pro所有者/名称:版本(社区模型,按版本),例如stability-ai/sdxl:<版本>
示例:
# 使用 Replicate 默认模型
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image out.png --provider replicate
# 显式覆盖模型
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只猫" --image out.png --provider replicate --model google/nano-banana
提供商选择
- 提供了
--ref且未指定--provider→ 自动选择,首选 Google,然后是 OpenAI,最后是 Replicate - 指定了
--provider→ 使用它(如果有--ref,则必须是google、openai或replicate) - 只有一个可用的 API 密钥 → 使用该提供商
- 多个可用 → 默认使用 Google
质量预设
| 预设 | Google imageSize | OpenAI 尺寸 | Replicate 分辨率 | 适用场景 |
|---|---|---|---|---|
normal |
1K | 1024px | 1K | 快速预览 |
2k(默认) |
2K | 2048px | 2K | 封面、插图、信息图 |
Google imageSize:可使用 --imageSize 1K|2K|4K 覆盖
宽高比
支持的宽高比:1:1,16:9,9:16,4:3,3:4,2.35:1
- Google 多模态:使用
imageConfig.aspectRatio - OpenAI:映射到最接近的支持尺寸
- Replicate:将
aspect_ratio传递给模型;当提供了--ref但未指定--ar时,默认为match_input_image
生成模式
默认:顺序生成。
批量并行生成:当 --batchfile 包含 2 个或更多待处理任务时,脚本会自动启用并行生成。
| 模式 | 何时使用 |
|---|---|
| 顺序生成(默认) | 常规使用、单张图片、小型批次 |
| 并行批量 | 批量模式且任务数 2 个以上 |
执行方式选择:
| 情况 | 首选方法 | 原因 |
|---|---|---|
| 一张图片,或 1-2 张简单图片 | 顺序生成 | 协调开销更低,调试更容易 |
| 多张图片已有保存的提示词文件 | 批量 (--batchfile) |
复用已确定的提示词,应用共享的限流/重试机制,吞吐量可预测 |
| 每张图片仍需单独推理、编写提示词或探索风格 | 子代理 | 工作仍处于探索阶段,每张图片在生成前可能需要独立分析 |
输出来自 baoyu-article-illustrator 且包含 outline.md + prompts/ |
批量 (build-batch.ts → --batchfile) |
该工作流已经生成提示词文件,因此直接批量执行是预期路径 |
经验法则:
- 一旦提示词文件已保存,且任务是“生成所有这些图像”,优先使用批量而非子代理
- 仅当生成过程需要结合每张图像的思考、重写或不同的创意探索时,才使用子代理
并行行为:
- 默认工作进程数是自动的,受配置上限限制,内置默认值为 10
- 提供商特定的限流仅在批量模式下应用,内置默认值旨在提高吞吐量,同时避免明显的 RPM 突发
- 您可以使用
--jobs <数量>覆盖工作进程数 - 每张图像最多自动重试 3 次
- 最终输出包括成功数、失败数以及每张图像的失败原因
错误处理
- 缺少 API 密钥 → 显示错误并给出设置说明
- 生成失败 → 每张图像最多自动重试 3 次
- 无效的宽高比 → 发出警告,使用默认值继续
- 不支持的提供商/模型使用参考图像 → 显示错误并给出修复提示
扩展支持
通过 EXTEND.md 进行自定义配置。有关路径和受支持选项,请参阅偏好设置部分。
📄 原始文档
完整文档(英文):
https://skills.sh/jimliu/baoyu-skills/baoyu-image-gen
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

评论(0)