Install
openclaw skills install @flyelepai/flyelep-generate-poster通过 Flyelep API 生成电商产品主图、详情图海报和白底主图。 当用户要求生成产品图、电商海报、Amazon 商品图、详情页图片、白底图、白底主图、纯白背景产品图时使用此技能。
openclaw skills install @flyelepai/flyelep-generate-poster通过 Flyelep AI API 异步生成电商产品主图、详情图海报和白底主图。
重要:这是一个 HTTP API 调用技能。必须通过 HTTP POST 请求调用 API 接口,禁止通过浏览器访问 Flyelep 网站。
POST https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsyncapplication/jsongenerateType=100/200(产品单图/详情图):secretKey 仅在请求 Body 中传递generateType=101(白底主图):secretKey 同时在 Header 和 Body 中传递POST https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResultapplication/jsonsecretKeygenerateType=100/200(产品单图/详情图):在请求 JSON body 的 secretKey 字段中传入 API 密钥generateType=101(白底主图):secretKey 同时在 Header 和 Body 中传递查询结果时,secretKey 统一在 Header 中传递。用户需在 Flyelep 平台(https://www.flyelep.cn)获取密钥。
安全说明:API 密钥仅在请求时传递给 Flyelep 服务器,不存储在技能代码中。请勿将真实的密钥直接写在示例代码中,运行时由用户动态提供。
{
"query": "生图需求描述,最多1000个字符",
"generateType": 200,
"posterType": 5,
"platformType": "amazon",
"languageType": "英文",
"detailPictureNumber": 10,
"modelEdition": 3,
"needText": true,
"secretKey": "用户提供的API密钥",
"fileUrlList": ["https://example.com/product.png"],
"aspectRatio": "1:1"
}
注意:白底主图不需要
platformType、languageType、needText参数,且secretKey需要同时在 Header 和 Body 中传递。
{
"query": "生成白底主图的需求描述,最多1000个字符",
"generateType": 101,
"posterType": 5,
"detailPictureNumber": 1,
"modelEdition": 3,
"secretKey": "用户提供的API密钥",
"fileUrlList": ["https://example.com/product.png"],
"aspectRatio": "1:1"
}
{
"code": 200,
"data": "20374084144913*****"
}
data 为异步任务 ID,用于后续轮询获取结果。
{
"code": 200,
"data": {
"taskList": [
{
"taskStatus": 2,
"executeResult": "https://xxx.com/image1.png"
},
{
"taskStatus": 2,
"executeResult": "https://xxx.com/image2.png"
}
]
}
}
taskStatus: 0-待生成,1-生成中,2-生成成功,3-生成失败executeResult 为生成的图片 URL重要:以下必传参数必须通过询问用户获取,agent 不可自行填写。调用本技能时,应先向用户列出必传参数与可选参数表格,由用户确认或提供后再执行。
| 字段 | 默认值 | 说明 |
|---|---|---|
| query | - | 生图需求描述,最多1000个字符 |
| generateType | 200 | 100=产品单图,101=白底主图,200=产品详情图 |
| posterType | 5 | 5=跨境电商,6=中文电商 |
| platformType | amazon | 电商平台(见下方映射表)。generateType=101 时不需要 |
| languageType | 英文 | 生成图片上的文案语种。generateType=101 时不需要 |
| detailPictureNumber | 10 | 产品单图限1张;详情图可选5、10、15张 |
| modelEdition | 3 | 2=Flyelep 2.0,3=Flyelep 3.0,9=Flyelep Image 2 |
| needText | true | 图片上是否包含文案。generateType=101 时不需要 |
| secretKey | - | API 密钥(generateType=101 时同时在 Header 和 Body 中传递) |
| 字段 | 默认值 | 说明 |
|---|---|---|
| fileUrlList | - | 参考图片 URL 数组,最多6张 |
| aspectRatio | 随机 | 图片比例:1:1、3:2、2:3、3:4、4:3、4:5、5:4、9:16、16:9、21:9 |
amazon、Temu、Shopee、TikTok Shop、AliExpress、OZON淘宝、京东、拼多多、1688、小红书根据市场区域选择,再搭配 modelEdition:
posterType=5posterType=61:13:2、4:3、16:9、21:92:3、3:4、4:5、5:4、9:16generateType=100):固定为 1generateType=101):白底单图固定为 1,白底详情图可选 5、10 或 15generateType=200):5、10 或 15生成图片为异步流程,需要:
generateAsync 提交任务,获取任务 IDqueryTaskResult 查询任务状态(建议每 10 秒查询一次)taskStatus=2 时,表示生成成功,获取结果图片 URLPOST https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResultsecretKey: 用户提供的API密钥{
"agentGenerateTaskId": "任务ID"
}
Content-Type: application/json; charset=utf-8 请求头。以下分平台说明:payload_temp.json,再通过 Shell 工具调用 curl.exe --data-binary @payload_temp.json 发送请求。这是因为 PowerShell 使用 GBK 编码,而服务端使用 UTF-8 解析,直接在命令行中嵌入中文 JSON 会导致乱码。curl.exe(而非 curl,后者在 PowerShell 中是 Invoke-WebRequest 的别名)。必须在 curl.exe 后加 --% 停止 PowerShell 解析,否则 @ 会被误判为 splatting 操作符导致报错。payload_temp.jsonSet-Content -Encoding UTF8 会带 BOM,不可用)curl(无需 .exe,无需 --%)。curl -X POST URL -H "..." -H "..." --data-binary 'JSON单行内容',一步完成。curl --data-binary @payload_temp.json。payload_temp.json 临时文件(如使用了临时文件)。步骤 1:创建 payload_temp.json,内容如下:
{
"query": "为这个蓝牙耳机生成一张白底产品主图",
"generateType": 100,
"posterType": 5,
"platformType": "Amazon",
"languageType": "英文",
"detailPictureNumber": 1,
"modelEdition": 3,
"needText": true,
"secretKey": "你的密钥"
}
方式 B(无 Write 工具):
powershell $json = '{"query":"为这个蓝牙耳机生成一张白底产品主图","generateType":100,"posterType":5,"platformType":"Amazon","languageType":"英文","detailPictureNumber":1,"modelEdition":3,"needText":true,"secretKey":"你的密钥"}' [System.IO.File]::WriteAllText("payload_temp.json", $json, [System.Text.UTF8Encoding]::new($false))
步骤 2:使用 Shell 工具执行:
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" --max-time 120 --data-binary @payload_temp.json
macOS/Linux 内联写法(无需临时文件):
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" --max-time 120 --data-binary '{"query":"为这个蓝牙耳机生成一张白底产品主图","generateType":100,"posterType":5,"platformType":"Amazon","languageType":"英文","detailPictureNumber":1,"modelEdition":3,"needText":true,"secretKey":"你的密钥"}'
步骤 3:清理临时文件:
rm payload_temp.json
步骤 1:创建 payload_temp.json,内容如下:
{
"agentGenerateTaskId": "上一步返回的任务ID"
}
步骤 2:使用 Shell 工具执行:
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary @payload_temp.json
macOS/Linux 内联写法:
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary '{"agentGenerateTaskId":"上一步返回的任务ID"}'
步骤 3:清理临时文件:
rm payload_temp.json
轮询查询直到 taskStatus=2(生成成功),提取 executeResult 中的图片 URL 展示给用户。
步骤 1:创建 payload_temp.json,内容如下:
{
"query": "根据上传的图片生成对应的产品图",
"generateType": 200,
"posterType": 5,
"platformType": "Amazon",
"languageType": "英文",
"detailPictureNumber": 5,
"modelEdition": 3,
"needText": true,
"secretKey": "你的密钥",
"fileUrlList": ["https://example.com/product1.png", "https://example.com/product2.png"],
"aspectRatio": "1:1"
}
方式 B(无 Write 工具):
powershell $json = '{"query":"根据上传的图片生成对应的产品图","generateType":200,"posterType":5,"platformType":"Amazon","languageType":"英文","detailPictureNumber":5,"modelEdition":3,"needText":true,"secretKey":"你的密钥","fileUrlList":["https://example.com/product1.png","https://example.com/product2.png"],"aspectRatio":"1:1"}' [System.IO.File]::WriteAllText("payload_temp.json", $json, [System.Text.UTF8Encoding]::new($false))
步骤 2:使用 Shell 工具执行:
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" --max-time 120 --data-binary @payload_temp.json
macOS/Linux 内联写法(无需临时文件):
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" --max-time 120 --data-binary '{"query":"根据上传的图片生成对应的产品图","generateType":200,"posterType":5,"platformType":"Amazon","languageType":"英文","detailPictureNumber":5,"modelEdition":3,"needText":true,"secretKey":"你的密钥","fileUrlList":["https://example.com/product1.png","https://example.com/product2.png"],"aspectRatio":"1:1"}'
步骤 3:清理临时文件:
rm payload_temp.json
步骤 1:创建 payload_temp.json,内容如下:
{
"agentGenerateTaskId": "上一步返回的任务ID"
}
步骤 2:使用 Shell 工具执行:
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary @payload_temp.json
macOS/Linux 内联写法:
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary '{"agentGenerateTaskId":"上一步返回的任务ID"}'
步骤 3:清理临时文件:
rm payload_temp.json
步骤 1:创建 payload_temp.json,内容如下:
{
"query": "为这款智能手表生成一张电商主图,突出科技感",
"generateType": 100,
"posterType": 6,
"platformType": "淘宝",
"languageType": "中文简体",
"detailPictureNumber": 1,
"modelEdition": 3,
"needText": true,
"secretKey": "你的密钥",
"aspectRatio": "1:1"
}
方式 B(无 Write 工具):
powershell $json = '{"query":"为这款智能手表生成一张电商主图,突出科技感","generateType":100,"posterType":6,"platformType":"淘宝","languageType":"中文简体","detailPictureNumber":1,"modelEdition":3,"needText":true,"secretKey":"你的密钥","aspectRatio":"1:1"}' [System.IO.File]::WriteAllText("payload_temp.json", $json, [System.Text.UTF8Encoding]::new($false))
步骤 2:使用 Shell 工具执行:
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" --max-time 120 --data-binary @payload_temp.json
macOS/Linux 内联写法(无需临时文件):
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" --max-time 120 --data-binary '{"query":"为这款智能手表生成一张电商主图,突出科技感","generateType":100,"posterType":6,"platformType":"淘宝","languageType":"中文简体","detailPictureNumber":1,"modelEdition":3,"needText":true,"secretKey":"你的密钥","aspectRatio":"1:1"}'
步骤 3:清理临时文件:
rm payload_temp.json
步骤 1:创建 payload_temp.json,内容如下:
{
"agentGenerateTaskId": "上一步返回的任务ID"
}
步骤 2:使用 Shell 工具执行:
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary @payload_temp.json
macOS/Linux 内联写法:
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary '{"agentGenerateTaskId":"上一步返回的任务ID"}'
步骤 3:清理临时文件:
rm payload_temp.json
注意:白底主图不需要
platformType、languageType、needText参数,且secretKey需要同时在 Header 和 Body 中传递。
步骤 1:创建 payload_temp.json,内容如下(Body 中包含 secretKey,无 platformType/languageType/needText):
{
"query": "生成一张蓝牙耳机白底产品主图,产品居中,背景纯白",
"generateType": 101,
"posterType": 5,
"detailPictureNumber": 1,
"modelEdition": 3,
"secretKey": "你的密钥",
"aspectRatio": "1:1"
}
方式 B(无 Write 工具):
powershell $json = '{"query":"生成一张蓝牙耳机白底产品主图,产品居中,背景纯白","generateType":101,"posterType":5,"detailPictureNumber":1,"modelEdition":3,"secretKey":"你的密钥","aspectRatio":"1:1"}' [System.IO.File]::WriteAllText("payload_temp.json", $json, [System.Text.UTF8Encoding]::new($false))
步骤 2:使用 Shell 工具执行(secretKey 同时在 Header 和 Body 中):
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 120 --data-binary @payload_temp.json
macOS/Linux 内联写法(secretKey 同时在 Header 和 Body 中):
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/generateAsync" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 120 --data-binary '{"query":"生成一张蓝牙耳机白底产品主图,产品居中,背景纯白","generateType":101,"posterType":5,"detailPictureNumber":1,"modelEdition":3,"secretKey":"你的密钥","aspectRatio":"1:1"}'
步骤 3:清理临时文件:
rm payload_temp.json
步骤 1:创建 payload_temp.json,内容如下:
{
"agentGenerateTaskId": "上一步返回的任务ID"
}
步骤 2:使用 Shell 工具执行(secretKey 在 Header 中):
curl.exe --% -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary @payload_temp.json
macOS/Linux 内联写法:
bash curl -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/poster/queryTaskResult" -H "Content-Type: application/json; charset=utf-8" -H "secretKey: 你的密钥" --max-time 30 --data-binary '{"agentGenerateTaskId":"上一步返回的任务ID"}'
步骤 3:清理临时文件:
rm payload_temp.json
轮询查询直到 taskStatus=2(生成成功),提取 executeResult 中的图片 URL 展示给用户。
| 错误 | 原因与解决 |
|---|---|
| HTTP 405 Not Allowed | URL 路径错误,确保包含 /prod-api 前缀 |
| code 500 "当前并发请求过多" | 服务繁忙,稍后重试 |
| HTTP 401 | 密钥无效或已过期,在 Flyelep 平台重新生成 |
| 查询结果 taskStatus 一直为 1 | 生图任务仍在进行中,继续轮询或稍后重试 |
| 查询结果 taskStatus 为 3 | 生图失败,检查参数是否正确或稍后重试 |
| 描述超过1000字符 | 缩短 query 内容 |
基于参考图生成: 将用户的产品描述传入 query,通过 fileUrlList 附上参考图片 URL。仅在描述明显不足时才优化。
无参考图生成: 在 query 中描述产品、风格和构图。
保留用户的创意意图。当用户描述模糊时,根据上下文(平台、语言等)推断合理的默认值。