_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
[ -x "$_ROOT/skill/bin/baiyin-skill-update-check" ] && _UPD=$(bash "$_ROOT/skill/bin/baiyin-skill-update-check" "$_ROOT/skill/baiyin-image-generate-skill" 2>/dev/null || true)
[ -n "${_UPD:-}" ] && echo "$_UPD"
如果输出 UPGRADE_AVAILABLE :
skill/baiyin-skills-upgrade/SKILL.md,执行其中的「内联升级流程」。AskUserQuestion,使用中文四选一:立即更新 / 以后自动更新 / 暂不更新 / 不再提醒。AskUserQuestion(例如 OpenClaw 当前会话),直接询问用户: 检测到百音技能
如果输出 JUST_UPGRADED :
百音技能 已更新到 v,继续处理你的请求。 如果输出 UP_TO_DATE、SNOOZED、CHECK_DISABLED 或 CHECK_FAILED:
图片生成能力,支持通过百音开放平台发起图片生成任务、查询任务状态,并返回最终图片链接。
BAIYIN_API_KEYBASE_URL 固定使用 https://ai.hikoon.comBAIYIN_API_KEY 缺失时,才向用户索要 API Key。POST {BASE_URL}/api/open/v1/file/uploadAuthorization: Bearer ,Content-Type: multipart/form-datafile 必填data.url 取公网地址,填入当前模型真实支持的参考图字段使用 API Key 认证:
Authorization: Bearer <API_KEY>
Content-Type: application/json
POST {BASE_URL}/api/open/v1/image/generateGET {BASE_URL}/api/open/v1/tasks/{taskId}图片生成只使用以下两个固定 modelCode:
nano-banana-2kling_v3_omni_image如果用户未指定 modelCode,只允许在这两个固定值里引导用户选择,不要再去查询模型列表。
nano-banana-2promptmodelCodenano-banana-2resolution1、2、4aspect_ratio1:1、4:3、3:2、16:9、21:9、3:4、9:16、2:3、5:4、4:5、automulti_imagebase64kling_v3_omni_imagepromptmodelCodekling_v3_omni_imageresolution1、2、4aspect_ratio1:1、4:3、3:2、16:9、21:9、3:4、9:16、2:3multi_imagebase64modelCode、prompt、resolution、aspect_ratio、multi_imagemodelCode、prompt、resolution、aspect_ratio 都确认后再创建任务multi_image 只有在用户明确提供参考图时才传resolution 和 aspect_ratio 只允许使用当前固定枚举值;如果用户没有明确指定,必须先让用户选择multi_image 必须是图片 URL 数组,不能传单个字符串,也不能把多个 URL 拼成逗号分隔字符串multi_image 中每个 URL 都必须是公网可访问地址,不允许 base64 和本地图片路径对外使用时,modelCode 只能是 nano-banana-2 或 kling_v3_omni_image。
{
"prompt": "a white cat sitting by the window, warm morning light, cinematic",
"modelCode": "nano-banana-2",
"multi_image": [
"https://example.com/reference-1.jpg",
"https://example.com/reference-2.jpg"
],
"aspect_ratio": "1:1",
"resolution": "2"
}
promptmodelCodenano-banana-2 或 kling_v3_omni_imagemulti_imagebase64aspect_ratioresolution1、2、4当 multi_image 有值时,收到用户回复后按顺序校验:
http:// 或 https:// 开头,跳过上传,直接进入下一步格式校验data.url 取公网地址http:// 或 https:// 开头multi_image 最多允许 3 张参考图prompt 里的核心视觉意图。modelCode,只允许在 nano-banana-2 和 kling_v3_omni_image 之间引导选择。resolution 和 aspect_ratio 都是必填,必须让用户在固定枚举内明确选择。multi_image。multi_image 有值时,先按 URL 校验规则处理;本地路径需要先自动上传,再替换为公网 URL。prompt。modelCode 只能是两个固定值之一。aspect_ratio。"multi_image": ["url1", "url2"],不要传 "multi_image": "url1,url2"。只有在以下情况才追问:
modelCodepromptresolutionaspect_ratiotaskId以下情况不要追问:
modelCode、resolution、aspect_ratio 已明确后,直接进入创建任务modelCode,引导用户在 nano-banana-2 和 kling_v3_omni_image 之间选择。prompt、resolution、aspect_ratio。multi_image。multi_image:本地路径先自动上传,再校验格式与数量。taskId、requestId 和当前 status。imageUrl,有多张时再返回完整 images。{
"success": true,
"message": "操作成功",
"data": {
"requestId": "req_xxx",
"taskId": "task_xxx",
"capability": "image.generate",
"status": "queued"
}
}
图片任务成功后会归一化为如下结构:
{
"success": true,
"message": "操作成功",
"data": {
"requestId": "req_xxx",
"taskId": "task_xxx",
"capability": "image.generate",
"status": "succeeded",
"result": {
"taskId": 1903,
"internalTaskId": "hk_ai_task_001",
"modelId": 701,
"imageUrl": "https://cdn.example.com/image/result-1.jpg",
"images": [
"https://cdn.example.com/image/result-1.jpg",
"https://cdn.example.com/image/result-2.jpg"
],
"progress": 100,
"raw": [
{
"image": "https://cdn.example.com/image/result-1.jpg"
}
]
},
"error": null,
"billing": null
}
}
queued:已受理,等待执行processing:生成中succeeded:生成成功failed:生成失败轮询时回复要简短,优先返回状态。
taskIdstatusstatusprogressimageUrlimages400 时,说明请求参数不合法或当前模型不支持这些参数。401 时,说明 Open API Key 无效或当前环境未配置。404 或 TASK_NOT_FOUND 时,说明任务不存在,或不属于当前 API Key 所属用户。modelId 或 modelCode。failed 时,优先透传后端 error 字段。modelCode。modelCode,只允许在两个固定模型里让用户选。modelCode 确认后,继续收集 resolution 和 aspect_ratio。resolution 和 aspect_ratio 未确认前,不要创建任务。modelCode 缺失时,不要擅自用默认模型继续执行。示例 1:
生成一张日出时白猫坐在窗边的电影感海报请先在两个固定模型里选一个 modelCode:nano-banana-2 或 kling_v3_omni_image。选好后我再继续收集 resolution 和 aspect_ratio。示例 2:
modelCode 用 nano-banana-2,生成一张日出时白猫坐在窗边的电影感海报已确认 modelCode = nano-banana-2。请再确认 resolution(1/2/4)和 aspect_ratio(1:1、4:3、3:2、16:9、21:9、3:4、9:16、2:3、5:4、4:5、auto)。示例 3:
用这张商品图生成一张干净的电商主图请先在两个固定模型里选一个 modelCode:nano-banana-2 或 kling_v3_omni_image。若要带参考图,请提供公网可访问的图片 URL 数组,不要传 base64 或本地路径。示例 4:
modelCode 用 kling_v3_omni_image,用这几张商品图生成一张干净的电商主图已确认 modelCode = kling_v3_omni_image。请再确认 resolution(1/2/4)、aspect_ratio(1:1、4:3、3:2、16:9、21:9、3:4、9:16、2:3),并提供 multi_image 数组。示例 5:
modelCode 用 flux-dev当前图片生成只支持两个固定 modelCode:nano-banana-2 和 kling_v3_omni_image,请改为其中一个。示例 6:
我要生成图片,但是不知道选哪个模型nano-banana-2 和 kling_v3_omni_image示例 7:
modelCode 用 nano-banana-2resolutionaspect_ratio示例 8:
帮我查询 task_123456 的最终图片GET {BASE_URL}/api/open/v1/tasks/task_123456status = succeeded,返回 imageUrl 和 images共 6 个版本