React Design Draft
根据内容自动生成可编辑的React风格信息图设计稿,支持单图与多图模式。
通过 CLI 实现文本到图像的异步生成,支持批量处理与风格预设。
openclaw skills install @632657122/image-generation-2命令、参数、文件名以原文为准
image-generation)通过单一 CLI 网关,实现图像生成、创建图片、根据文本描述绘图或生成视觉内容——支持异步轮询和自动下载。
该技能采用单一聚合网关后端模式。本地仅需一个 API 密钥,而多个模型在网关后端进行聚合。CLI 封装了完整的异步流程:提交任务 -> 轮询 task_status(小写)-> 获取 data.images。后端平台为固定实现选择,不支持配置为其他提供商。如需使用其他平台,请发布独立的技能。
设计目标是为常见工作流提供流畅自动化支持,包括单图生成、多文件提示词、带参考图的图生图、批量任务、默认参数扩展(EXTEND defaults)以及可复用的风格预设。完整的网关对齐说明详见 [references/weryai-platform.md](references/weryai-platform.md)。
https://api.weryai.com)调用 WeryAI 网关。IMAGE_GEN_API_KEY。密钥不会被打印。仅在用户显式运行 npm run setup -- --persist-api-key 时才可能持久化保存。https://)。http:// 可能可用但存在安全隐患。本地文件路径和 data: URL 均被拒绝。.image-skills/image-generation/(项目目录)和/或 ~/.image-skills/image-generation/(用户主目录)。| 项目 | 协议 |
|---|---|
| 基础地址 | https://api.weryai.com(在 scripts/main.ts 中硬编码) |
| 认证方式 | Authorization: Bearer,通过 **IMAGE_GEN_API_KEY** 实现([获取密钥](https://weryai.com/api/keys)) |
| 文本生成图像 | POST /v1/generation/text-to-image;需包含 model、prompt、aspect_ratio |
| 图像生成图像 | POST /v1/generation/image-to-image;还需提供 images[] |
| 状态查询 | GET /v1/generation/{taskId}/status;task_status 可能值为 waiting、processing、succeed 或 failed |
| 业务成功标志 | **success: true**(或 status: 200);失败返回业务码如 1001、1002、1003 |
| 文本长度限制 | 脚本在提交请求前会验证 prompt 和 negative_prompt 的长度 |
| 结果下载 | 任务状态为 succeed 后,通过 URL 下载图像;脚本使用超时、重试、退避机制、可选的 Bearer 重试以及最小有效负载校验 |
更多字段映射、模型查找指引及故障排查流程请参见 [references/weryai-platform.md](references/weryai-platform.md)。
当此技能在项目或环境中首次被触发时,代理不应直接进入模型选择或生成阶段。必须首先完成以下步骤:
npm run ensure-ready -- --project . --workflow <workflow>IMAGE_GEN_API_KEY 缺失**:告知用户图像生成需要 API 密钥,并提供机会立即配置访问令牌:仅使用 **IMAGE_GEN_API_KEY**。该密钥也可存放在 .image-skills/image-generation/.env 文件中,格式为 IMAGE_GEN_API_KEY=...。用户授权后,代理可通过运行以下命令将其持久化保存:
npm run setup -- --project . --workflow <workflow> --persist-api-key(若密钥已在环境变量中,或由代理代为写入本地文件,而非要求用户手动编辑文件)
首次使用就绪检查:在新的 OpenClaw 或本地实例中首次运行生成任务前,代理必须执行:
npm run ensure-ready -- --project . --workflow <workflow>此就绪步骤不可跳过。它会检查本地工具链,读取本地诊断报告,并在缺少本地脚本依赖时自动执行 bootstrap。
首次触发用户行为:
IMAGE_GEN_API_KEY 缺失:告知用户图像生成需要 API 密钥,并提供由代理代为写入 .image-skills/image-generation/.env 的选项**EXTEND.md** 为可选文件,可用于存放默认模型、质量、宽高比及批量任务工作线程限制等配置。
test -f .image-skills/image-generation/EXTEND.md && echo project
test -f "$HOME/.image-skills/image-generation/EXTEND.md" && echo user初始化时的默认模型:若尚未配置模型,则初始化该技能时默认使用 Nano Banana 2(GEMINI_3_1_FLASH_IMAGE),并通知用户当前已设为默认。同时提醒用户可随时切换至其他模型。
模型选择逻辑:初始化后,以下任一来源提供活动默认模型:
--model 参数EXTEND.md 中的 default_modelIMAGE_GEN_DEFAULT_MODEL若以上均未设置,代理应先将本地默认模型初始化为 Nano Banana 2,告知用户当前工作区已默认使用该模型,并提醒用户可根据需要随时更换。详情请参见 [references/config/first-time-setup.md](references/config/first-time-setup.md)、[references/config/preferences-schema.md](references/config/preferences-schema.md) 及 [references/config/model-registry-schema.md](references/config/model-registry-schema.md)。
风格预设:[references/style-presets.md](references/style-presets.md)
模型优先级:
name: Image Generation
version: 1.0.5
description: 生成图像的技能,支持多种模型、风格和批量处理。
summary: 通过命令行工具生成高质量图像,支持提示词构建、风格选择、图像参考、批量任务及本地默认模型管理。
--model → EXTEND.md default_model → IMAGE_GEN_DEFAULT_MODEL
当用户请求图像生成但未配置任何模型(EXTEND.md、--model 和 IMAGE_GEN_DEFAULT_MODEL 均不存在)时:
不要要求用户阅读文档或手动修改配置文件。 请遵循 [references/config/first-time-setup.md](references/config/first-time-setup.md) § "模型选择 — 代理引导流程" 的指引:
npm run discover-image-models -- --out .image-skills/image-generation/MODELS.json
GEMINI_3_1_FLASH_IMAGE)初始化本地默认设置,并写入 EXTEND.md。 npm run recommend-model -- --workflow <workflow> --role <role> --json
根据返回结果更新 EXTEND.md。
若工作流比通用单图更具体,优先使用角色感知的推荐类型,如 comic-page、comic-character-sheet、infographic-dense 或 article-framework,而非仅传递宽泛的工作流名称。
若用户后续提出更换模型,直接在 EXTEND.md 中更新,不得要求用户手动编辑。
若网关返回“模型不存在”或类似模型键错误,代理必须先从 WeryAI 文档中刷新模型信息,重新尝试推荐,再向用户询问平台侧信息。
当用户仅提供模糊想法,视觉描述仍较薄弱时,不要直接进入提示词编写阶段。应优先使用本地简报助手:
npm run build-visual-brief -- --workflow cover --topic "Habit systems"通过其交互式问题菜单,至少询问以下内容:
将用户回答整合为最终提示词或工作流文件。
不要让用户独自去查阅文档。 若 CLI 因模型缺失失败,代理应完成此选择流程并重试。
IMAGE_GEN_API_KEY 存在。EXTEND.md 或环境变量),否则进入引导式模型选择流程。--prompt)或从多个文件组装(--promptfiles)。--style)。--batchfile),支持并行任务。{baseDir} 是包含此文件的目录。${BUN_X} 为 bun 或 npx -y bun。
| 路径 | 用途 |
|---|---|
{baseDir}/scripts/main.ts | 唯一的执行入口点 |
# 示例;M 应由用户选择或由代理解析
M=<选定的模型键>
# 单图生成
${BUN_X} {baseDir}/scripts/main.ts --prompt "a cat" --image cat.png --ar 1:1 -m "$M"
# 多文件拼接提示词
${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md user.md --image out.png --ar 16:9 -m "$M"
# 使用风格预设
${BUN_X} {baseDir}/scripts/main.ts --prompt "city nightscape" --style cinematic --image out.png --ar 16:9 -m "$M"
# 图像到图像转换(参考图)
${BUN_X} {baseDir}/scripts/main.ts --prompt "turn it into cyberpunk" --image out.png --ref src.png --ar 1:1 -m "$M"
# 设置质量 / 分辨率
${BUN_X} {baseDir}/scripts/main.ts --prompt "poster" --image poster.png --ar 16:9 --quality 2k -m "$M"
${BUN_X} {baseDir}/scripts/main.ts --prompt "poster" --image poster.png --ar 16:9 --imageSize 2K -m "$M"
# 当未指定 --ar 时,根据 --size 推断纵横比
${BUN_X} {baseDir}/scripts/main.ts --prompt "scene" --image scene.png --size 1280x720 -m "$M"
# 批量模式
${BUN_X} {baseDir}/scripts/main.ts --batchfile batch.json --jobs 4 --json
# 不保存下载的图像到磁盘
${BUN_X} {baseDir}/scripts/main.ts --prompt "abstract" --image dummy.png --ar 1:1 --no-download -m "$M"
# 干运行:预览请求;--image 可选
${BUN_X} {baseDir}/scripts/main.ts --prompt "test" --ar 1:1 -m "$M" --dry-run{
"jobs": 4,
"tasks": [
{
"id": "hero",
"promptFiles": ["prompts/hero.md"],
"image": "out/hero.png",
"model": "<来自网关文档的模型键>",
"style": "editorial",
"ar": "16:9",
"quality": "2k",
"use_web_search": false
},
{
"id": "edit",
"prompt": "turn it into watercolor",
"image": "out/edit.png",
"ref": ["assets/in.png"],
"negative_prompt": "blurry",
"webhook_url": "https://example.com/hook"
}
]
}路径相对于 批处理文件所在目录 解析。若存在 provider 字段,在单网关模式下会被忽略。任务级别可选字段包括:style、webhook_url、negative_prompt、resolution、use_web_search 和 caller_id。
| 参数 | 说明 |
|---|---|
--prompt / -p | 提示文本 |
--promptfiles | 将多个文件内容合并为提示文本 |
--image / -o / --output | 单任务模式下的输出路径;若未指定扩展名,默认使用 .png |
--batchfile | 批量处理的 JSON 文件 |
--jobs | 工作线程数量 |
--model / -m | 模型标识符;必须提供,可选值见 CLI / EXTEND.md / IMAGE_GEN_DEFAULT_MODEL |
--style | 风格预设,详见 [style-presets.md](references/style-presets.md) |
--ar / --aspect-ratio | 宽高比;默认值为 EXTEND.md 或 1:1 |
--size | 宽度x高度;若未指定 --ar,可自动推断宽高比 |
--quality | normal 或 2k,映射到网关分辨率 |
--imageSize | 1K、2K 或 4K |
--resolution | 直接传递分辨率给 API |
--negative-prompt | 负面提示词 |
--ref / --reference | 参考图像,支持 URL 或本地文件路径 |
--n | 生成图像数量(默认:1) |
--webhook-url | 网关的 webhook_url |
--use-web-search | 设置 use_web_search: true |
--caller-id | 网关的 caller_id |
--poll-interval-ms / --poll-timeout-ms | 轮询控制参数 |
--no-download | 跳过文件写入操作 |
--dry-run | 不调用 API,仅打印最终请求体内容 |
--json | 输出 JSON 格式的摘要或批量报告 |
--jobs 实现受控并发,支持环境变量覆盖,如 BASE_IMAGE_GEN_CONCURRENCY 和 BASE_IMAGE_GEN_START_INTERVAL_MS。EXTEND.md 中的 batch.max_workers 或 BASE_IMAGE_MAX_WORKERS。| 变量 | 说明 |
|---|---|
IMAGE_GEN_API_KEY | 唯一的 API 密钥变量 |
IMAGE_GEN_DEFAULT_MODEL | 默认模型标识符 |
BASE_IMAGE_MAX_WORKERS | 覆盖批量任务的工作线程上限 |
BASE_IMAGE_GEN_CONCURRENCY | 批量任务并发数 |
BASE_IMAGE_GEN_START_INTERVAL_MS | 批量任务启动之间的最小延迟时间(毫秒) |
支持的 .env 文件位置:
<cwd>/.image-skills/.env$HOME/.image-skills/.env已存在的环境变量不会被覆盖。
npm run ensure-ready -- --project . --workflow <workflow>,即使直接调用 API 似乎正常也不可跳过。IMAGE_GEN_API_KEY 可用,可通过环境变量或 .image-skills/.env 提供。--image,但 --dry-run 可省略。若存在 --ref,脚本将使用图像到图像接口。waiting / processing 时持续轮询;状态为 succeed 时使用 images 字段;状态为 failed 时检查 msg 字段。以上规则适用于所有用户交互,非可选建议,必须遵守。
技能:图像生成
版本:1.0.5
分块:4/4
EXTEND.md、MODELS.json 等配置文件。output.png 这类裸文件名是不可接受的交付方式。GEMINI_3_1_FLASH_IMAGE(即 Nano Banana 2),告知用户该模型已设为本技能的默认值,并明确提醒其可随时切换至其他更适合的模型。IMAGE_GEN_API_KEY 的状态。IMAGE_GEN_API_KEY 的选项,避免要求用户在普通聊天中粘贴密钥,且绝不重复或引用密钥内容。--image 路径运行 main.ts 会覆盖原有输出文件。--batchfile 会重新处理批次中的所有任务;已完成的图像将被覆盖。--dry-run 不论先前状态如何,均不写入文件。taskId 会返回缓存结果,不会重新生成。IMAGE_GEN_API_KEY 已配置,且默认模型已在 EXTEND.md 中设定。--dry-run 请求体)。--json 输出每项任务的状态。若当前环境同时无法使用 bun 和 npx:
npm install -g bun 或平台对应的安装程序。以通俗语言报告安装成功或失败。参见 [references/weryai-platform.md](references/weryai-platform.md)。对于调用失败的情况,请将请求与响应与 [调用历史记录](https://weryai.com/api/history) 进行比对。
已收录 2 个 Skill