通过中继进行图像生成
使用该技能文件夹中的 relay.sh 脚本(与这篇 SKILL.md 在同一文件夹中)。它会读取同目录下 relay.env 中的中继 URL 和令牌(如果设置了 IMAGE_RELAY_URL / IMAGE_RELAY_TOKEN 则使用环境变量),调用中继,并将图像保存为文件。使用 bash 并带上完整路径来运行它。
切勿打印、回显或显示令牌或 relay.env 的内容,也切勿将令牌放在命令行中。
生成
bash /path/to/image-gen/relay.sh generate "水彩风格,雪地森林中的狐狸" --aspect 16:9
选项:
--aspect R:可选值 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9--n N:图像数量(1-4)--model M:仅当用户要求特定模型时使用;运行relay.sh models查看允许的模型列表--out DIR:保存位置(默认:如果存在/mnt/user-data/outputs则使用,否则为当前目录)
输出行类似于 saved: /path/abc123.jpg (512345 bytes, relay file: abc123.jpg)。向用户展示或附加保存的文件。保留 relay file 名称以备后续编辑。
等待结果
生成可能需要几分钟,因此中继将其作为后台任务运行。relay.sh generate 会提交任务,并每约 30 秒(中继要求的间隔)检查一次,最多持续 90 秒。如果图像已就绪,您会像往常一样看到 saved: 行。
如果它打印 pending: job <id> ...,表示任务仍在中继上运行,并未丢失。等待指定的秒数(例如 sleep 30),然后运行:
bash /path/to/image-gen/relay.sh result <id>
在等待期间,脚本可能会提示任务“正在被检查”(中继仍在审核请求)或“已接受,正在生成”。重复此过程,直到打印出 saved: 行或出现错误。不要在有任务待处理时重新提交提示:这会产生(并收费)第二张图像。--wait SECONDS 改变一次调用的等待时间(默认 90)。
编辑或使用参考图像
使用 --image 传递用户的图像文件(可重复,最多总共 4 张;支持 PNG、JPEG、WebP 或 GIF,每张最大 10 MB):
bash /path/to/image-gen/relay.sh generate "将天空变为紫色,其余保持不变" --image /path/to/photo.jpg
要精炼对话中先前生成的图像,传递其 relay 文件名作为 --ref(比重新上传更快;relay 文件 24 小时后过期):
bash /path/to/image-gen/relay.sh generate "在右上角添加一个小月亮" --ref abc123.jpg
--ref 也接受 https:// 图像 URL。
提示词编写
编写一个具体的提示词,涵盖主题、风格、构图、光照和颜色。对于编辑任务,说明要更改的内容以及要保留的内容。
错误处理
脚本会打印 error: HTTP <code> <code_name>: <message>:
rate_limited:等待指定的秒数,然后重试一次。model_not_allowed、invalid_aspect_ratio、invalid_n:修正选项后重试。invalid_input_images/ 413:图像类型不支持或体积过大;请转换或缩小尺寸。upstream_error(例如“未及时响应”):中继已在自身一侧重试。告知用户,然后重新提交一次;如果再次失败,停止并报告。request_rejected:中继未接受请求(不说明原因)。告知用户请求被拒绝;不要猜测原因、重写或伪装提示或图像以绕过,也不要重新提交。prompt_rejected:中继的内容策略阻止了该提示。告知用户;不要修改提示词以绕过过滤器。image_rejected:参考图像被内容策略阻止。告知用户;不要使用相同图像重试或试图伪装它。no_image:未生成图像;请重新表述提示词。job_not_found/job_lost:任务 ID 已过期或服务器中止了它;请重新提交提示。could not reach:无法访问中继域名的网络。告知用户在设置 → 功能(网络出口)中允许该域名。unauthorized:令牌缺失、错误或过期。告知用户;不要试图寻找其他令牌。