Install
openclaw skills install @jiuwu2495/agnes-image-gen使用 Agnes AI 升级版图像生成模型 agnes-image-2.1-flash 生成图片。同时支持文生图(text-to-image)与图生图(image-to-image)。当用户说「用 Agnes 生成图片」「用 Agnes 画一张」「Agnes 生成」「用这张图生成/改成……」或明确要求使用 Agnes API 进行文生图/图生图时,加载本 skill。不消耗 WorkBuddy 积分,仅消耗 Agnes API 额度(当前图像生成免费)。
openclaw skills install @jiuwu2495/agnes-image-gen调用 Agnes AI 的升级版图像生成模型 agnes-image-2.1-flash(Sapiens AI 出品)。该模型同时支持:
通过 curl 直接调用 HTTP API,不走 WorkBuddy 的对话模型机制,因此不消耗对话积分。当前图像生成定价为 $0 / 张。
当用户提出以下请求时加载本 skill:
1K / 2K / 3K / 4K 档位,配合宽高比脚本自动按以下顺序尝试,前一个访问不了就切到下一个,无需手动干预:
| 优先级 | Endpoint | 说明 |
|---|---|---|
| 1(主) | https://apihub.agnes-ai.com/v1/images/generations | 国际主端点 |
| 2(容灾) | https://apihub.agnes-ai.cn/v1/images/generations | 国内容灾端点:主端点 TCP 不可达时自动切换(国内网络访问 Agnes 更稳) |
注意:文生图与图生图共用同一端点
/v1/images/generations,不再使用/v1/images/edits。
-H "Authorization: Bearer YOUR_API_KEY"
-H "Content-Type: application/json"
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名称,固定为 agnes-image-2.1-flash |
prompt | string | 是 | 图像生成或图像编辑的文本指令 |
size | string | 是 | 输出尺寸档位,推荐 1K / 2K / 3K / 4K;兼容 1024x768 这类历史精确写法(不支持的尺寸可能被标准化) |
ratio | string | 否 | 与档位式 size 配合的宽高比,支持 1:1、3:4、4:3、16:9、9:16、2:3、3:2、21:9,默认 1:1 |
image | string[] | 图生图必填 | 输入图像数组(注意:放在 extra_body.image 中,见下方图生图示例) |
return_base64 | boolean | 否 | 文生图需要以 Base64 返回时设为 true |
extra_body | object | 否 | 高级工作流附加参数(见下) |
extra_body.response_format | string | 否 | 输出格式:url 或 b64_json |
extra_body.image | string[] | 图生图必填 | 输入图像数组,支持公共图像 URL 或 data:image/...;base64,... Data URI |
为获得可预期的输出尺寸,建议将 size 与 ratio 配合使用:
| Ratio | 1K | 2K | 3K | 4K |
|---|---|---|---|---|
1:1 | 1024x1024 | 2048x2048 | 3072x3072 | 4096x4096 |
3:4 | 864x1152 | 1728x2304 | 2592x3456 | 3456x4608 |
4:3 | 1152x864 | 2304x1728 | 3456x2592 | 4608x3456 |
16:9 | 1312x736 | 2624x1472 | 3936x2208 | 5248x2944 |
9:16 | 736x1312 | 1472x2624 | 2208x3936 | 2944x5248 |
2:3 | 832x1248 | 1664x2496 | 2496x3744 | 3328x4992 |
3:2 | 1248x832 | 2496x1664 | 3744x2496 | 4992x3328 |
21:9 | 1568x672 | 3136x1344 | 4704x2016 | 6272x2688 |
若请求
1920x1080/2560x1440这类非原生精确尺寸,服务会自动映射到最接近的档位与宽高比(如 16:9 的1K输出为1312x736)。需要标准显示器素材时建议请求size:"2K"+ratio:"16:9",再下游裁剪。
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3u4aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "<用户描述的图片内容>",
"size": "2K",
"ratio": "1:1",
"extra_body": {
"response_format": "url"
}
}'
size 支持档位式(1K/2K/3K/4K)或兼容精确写法(1024x1024 等)extra_body.response_format 改为 b64_json,或用顶层 return_base64: true图生图同样调用 /v1/images/generations,输入图像通过 extra_body.image 传入(数组,支持 URL 或 Data URI):
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3u4aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "将白天街道场景改为电影级赛博朋克夜景,添加霓虹招牌和湿滑路面倒影,保留原始街道布局与建筑形状",
"size": "2K",
"extra_body": {
"image": ["https://example.com/input-image.png"],
"response_format": "url"
}
}'
data:image/png;base64,...tags: ["img2img"]URL 输出:
{
"created": 1780000000,
"data": [{
"url": "https://storage.googleapis.com/agnes-aigc/xxx.png",
"b64_json": null,
"revised_prompt": null
}]
}
Base64 输出:
{
"created": 1780000000,
"data": [{
"url": null,
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA...",
"revised_prompt": null
}]
}
data[0].url 提取data[0].b64_json 解码保存URL 输出(PowerShell):
Invoke-WebRequest -Uri "<图片URL>" -OutFile "<保存路径>/agnes_output.png"
URL 输出(Python,跨平台,带时间戳):
import urllib.request, os
from datetime import datetime
url = "<图片URL>"
ts = datetime.now().strftime("%Y%m%d_%H%M%S")
save_path = os.path.join("<workspace路径>", f"agnes_{ts}.png")
urllib.request.urlretrieve(url, save_path)
Base64 输出(Python):
import base64, os
from datetime import datetime
b64 = "<data[0].b64_json>"
ts = datetime.now().strftime("%Y%m%d_%H%M%S")
save_path = os.path.join("<workspace路径>", f"agnes_{ts}.png")
with open(save_path, "wb") as f:
f.write(base64.b64decode(b64))
图片 URL 来自 Google Cloud Storage,有访问时效,应尽快下载到本地。若下载失败,可改用 HTML 页面直接引用远程 URL(
<img>加载)再叠加 CSS 文字制成海报。
preview_url 展示图片文件deliver_attachments 交付图片附件用户请求:「用 Agnes 生成一张科技感产品发布会海报,主题 AI 助手」
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3u4aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "科技感产品发布会海报,主题是AI助手,未来主义风格,蓝色调,holographic效果,现代简约设计",
"size": "2K",
"ratio": "1:1",
"extra_body": { "response_format": "url" }
}'
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3u4aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "咖啡店logo设计,简约现代风格,咖啡杯元素,温暖色调",
"size": "1K",
"extra_body": { "response_format": "url" }
}'
需要多张时,部分场景可用
n参数(旧写法);当前档位式请求建议单张循环获取多种方案。
用户请求:「把这张照片改成赛博朋克风格」
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3u4aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "转换为赛博朋克风格,霓虹灯光效,未来科技感,暗色调,高对比度,保留原构图",
"size": "2K",
"extra_body": {
"image": ["https://example.com/photo.jpg"],
"response_format": "url"
}
}'
用户请求:「把图片中的天空改成星空」
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "将天空替换为璀璨星空,银河清晰可见,深蓝色调,保留原主体与构图",
"size": "2K",
"extra_body": {
"image": ["data:image/png;base64,<BASE64_HERE>"],
"response_format": "b64_json"
}
}'
用户请求:「生成一张带『新年快乐』字样的贺卡」
优化后的 prompt:
精美新年贺卡设计,主视觉为"新年快乐"艺术字体,金色书法风格,红色背景,烟花装饰,喜庆氛围,中国传统元素,高清精致
curl -s -X POST "https://apihub.agnes-ai.com/v1/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-8Rzd2yCbFzOi1vxojseH8C5D8w3u4aMdNWsPNzxk0G7339Cz" \
-d '{
"model": "agnes-image-2.1-flash",
"prompt": "精美新年贺卡设计,主视觉为'新年快乐'艺术字体,金色书法风格,红色背景,烟花装饰,喜庆氛围,中国传统元素,高清精致",
"size": "1K",
"extra_body": { "response_format": "url" }
}'
文生图:[主体] + [场景/环境] + [风格] + [光照] + [构图] + [质量要求]
日出时分薄雾峡谷上方的发光浮空城市,电影级写实风格,广角构图,丰富的建筑细节,柔和的金色光线,高视觉密度
图生图:[改变要求] + [新风格/场景] + [添加或移除的元素] + [需要保留的元素]
将白天街道场景改为电影级赛博朋克夜景,添加霓虹招牌和湿滑路面倒影,同时保留原始街道布局、相机角度和主要建筑形状。
高信息密度图像:清晰描述视觉层次结构(主要主体、背景环境、重要次要细节、风格、光照、构图约束)
建在悬崖上的大型奇幻港口城市,数百艘小船,层叠的石桥,发光的窗户,远山,多云的日落天空,电影级奇幻写实风格,广角构图,丰富的建筑细节,高视觉密度
size:"1K"+ratio:"1:1";横幅/封面用 size:"2K"+ratio:"16:9";手机壁纸用 9:16size:"2K"+ratio:"16:9",下游裁剪| 错误 | 原因 | 解决 |
|---|---|---|
model_not_found | 模型名错误 | 确认使用 agnes-image-2.1-flash |
rate_limit_exceeded | 调用频率过高 | 等待后重试,降低并发 |
invalid_image_format | 图片格式/编码错误 | 确保 JPEG/PNG,Base64 编码正确 |
prompt_too_long | 提示词过长 | 精简,保留关键描述 |
| 请求超时 | 生成耗时数秒到数十秒 | 客户端超时设为 60s-360s |
| 输入图像 URL 无法访问 | 私有/需登录 | 改用 Data URI Base64 |
response_format:应放在 extra_body.response_format
{"model":..., "response_format": "url"}{"model":..., "extra_body": {"response_format": "url"}}tags: ["img2img"]:只需在 extra_body.image 提供输入图像extra_body.image 为必填数组model + prompt + size{
"error": {
"message": "错误描述",
"type": "错误类型",
"code": "错误代码"
}
}
Authorization 中的 Bearer 值)/v1/images/generations,输入图像放 extra_body.image$0.003/张,当前免费 $0/张1K/2K/3K/4K + ratio 获得可预期输出