🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install jimliu/baoyu-skills/baoyu-image-gen

💡 提示:需要 Node.js 和 NPM

图像生成 (AI SDK)

基于官方 API 的图像生成。支持 OpenAI、Google、DashScope(阿里通义万象)和 Replicate 提供商。

脚本目录

代理执行流程

  1. {baseDir} = 此 SKILL.md 文件所在的目录
  2. 脚本路径 = {baseDir}/scripts/main.ts
  3. 解析 ${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"]
    }
  ]
}

promptFilesimageref 中的路径相对于批处理文件所在的目录进行解析。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-previewgemini-3.1-flash-image-preview;OpenAI:gpt-image-1.5gpt-image-1
--ar <比例> 宽高比(例如 16:91:14: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

模型解析

模型优先级(从高到低),适用于所有提供商:

  1. CLI 标志:--model <ID>
  2. EXTEND.md:default_model.[provider]
  3. 环境变量:<PROVIDER>_IMAGE_MODEL(例如 GOOGLE_IMAGE_MODEL
  4. 内置默认值

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

提供商选择

  1. 提供了 --ref 且未指定 --provider → 自动选择,首选 Google,然后是 OpenAI,最后是 Replicate
  2. 指定了 --provider → 使用它(如果有 --ref,则必须是 googleopenaireplicate
  3. 只有一个可用的 API 密钥 → 使用该提供商
  4. 多个可用 → 默认使用 Google

质量预设

预设 Google imageSize OpenAI 尺寸 Replicate 分辨率 适用场景
normal 1K 1024px 1K 快速预览
2k(默认) 2K 2048px 2K 封面、插图、信息图

Google imageSize:可使用 --imageSize 1K|2K|4K 覆盖

宽高比

支持的宽高比:1:116:99:164:33:42.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 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。