Skip to main content
POST
生成图片
使用 multipart/form-data 提交 prompt,可附带参考图。接口是异步的:立即返回 queued 状态、ID 以 img_ 开头的 Image 对象,之后用查询图片轮询,直到 status 为 ready 或 failed。不带参考图时为文生图,带至少一张参考图时由参考图引导生成。
计费(1 积分 = $0.01):1K 每张 1 积分($0.01),2K 每张 2 积分($0.02)。一个任务共 n × 单价,例如 2K、n=3 为 6 积分。创建时一次性预扣,任务失败全额退回。aspect_ratio、seed 和参考图不影响价格。详见计费与保留期限。

请求参数

使用 multipart/form-data。 两种参考图可任意混用,合计最多 8 张。模型先收到上传的文件,再收到 URL,各自保持发送顺序。只要带了参考图,2K 就会变成较小的一档,见下一节。

参考图限制

  • 单张不超过 24 MiB,长边与短边之比不超过 8。
  • 支持 JPEG、PNG、WebP、GIF、BMP、TIFF、HEIC。
  • 长边 ≥ 3840 或短边 ≥ 2160 的图会先等比缩小到 1920 × 1080 以内(竖图为 1080 × 1920)。
  • reference_image_url 必须可公开访问,在创建请求处理期间下载。

输出尺寸

输出尺寸由 aspect_ratio 和 resolution 唯一确定,都是模型的固定尺寸档,请求什么就得到什么。单位:像素(宽 × 高)。 带参考图时 1K 与文生图相同;2K 文生图约为 2048² 像素面积,带参考图约为 1536²,价格不变。响应里每张图的 width / height 就是实际尺寸。

响应参数

返回 200 OK 和 queued 状态的 Image 对象,结构与查询图片相同。此时 progress 为 0,images 为空,completed_at 和 error 为 null。

常见错误

HTTP 错误使用统一结构 {"error": {"code", "message", "retryable", "request_id", "details", "remediation"}},详见错误与恢复。任务受理后再失败时,失败原因在 Image 对象的 error 字段中,见查询图片。
请带上自己的 User-Agent。实测 Python urllib 的默认 User-Agent 会被 apis.viggle.ai 前端拦截,返回非 JSON 的错误页。即使不带参考图,请求体也必须是 multipart/form-data,application/x-www-form-urlencoded 会返回 400。使用 Python requests 时,请像下方示例一样通过 files= 传字段,不要只用 data=。

示例

带参考图

上传文件和给 URL 可以混用,两个字段都可以重复:

@viggle/sdk

需使用包含 images 资源的 @viggle/sdk 版本。

下一步

使用返回的 id 调用查询图片轮询结果。

快速入门:Viggle Image

完整的创建、轮询和下载流程。

查询图片

查看任务状态、图片链接、尺寸和 seed。

授权

Authorization
string
header
必填

服务端 SDK 使用项目 API 密钥,Remote MCP 使用 OAuth 访问令牌。不要在浏览器代码中暴露项目密钥。

请求头

X-Request-Id
string

可选的调用者自定义关联 ID,最长 128 字符。服务会在响应头返回实际使用的值,便于追踪和支持排查。

Required string length: 1 - 128
X-Viggle-Source
string

可选来源标签,最长 128 字符,用于识别 SDK、集成、产品入口或内部工作流。

Required string length: 1 - 128

请求体

multipart/form-data

POST /v1/images 的请求体,仅支持 multipart/form-data。不带参考图时为文生图,带至少一张参考图时为参考图生成。aspect_ratio 与 resolution 共同选定模型的一个固定输出尺寸(宽 × 高,单位像素);带参考图时,2K 会变成较小的一档:

reference_image 上传与 reference_image_url 地址可任意混用,合计最多 8 张。模型先收到上传的文件,再收到 URL,各自保持发送顺序。

prompt
string
必填

描述文字,最多 4000 个字符(按 Unicode 字符计,中文一字算一个),不能全是空白。

Required string length: 1 - 4000
model
enum<string>
默认值:qwen

图片模型,目前只支持 qwen。

可用选项:
qwen
aspect_ratio
enum<string>
默认值:1:1

输出宽高比,与 resolution 一起决定输出尺寸。

可用选项:
1:1,
16:9,
9:16,
4:3,
3:4,
3:2,
2:3
resolution
enum<string>
默认值:1K

输出尺寸档位,不区分大小写;同时决定单价,1K 每张 1 积分,2K 每张 2 积分。带参考图时 2K 约为 1536² 像素面积,文生图约为 2048²。

可用选项:
1K,
2K
n
integer
默认值:1

生成张数。任务预扣 n × 单价。

必填范围: 1 <= x <= 6
seed
integer<int64>

第 i 张(从 0 计)使用 (seed + i) mod 2147483648。不传则服务端随机选择,每张图都会返回实际使用的 seed。

必填范围: 0 <= x <= 2147483647
reference_image
file[]

参考图上传,可重复该字段。单张不超过 24 MiB,长边与短边之比不超过 8;支持 JPEG、PNG、WebP、GIF、BMP、TIFF、HEIC。与 reference_image_url 合计最多 8 张。

Maximum array length: 8
reference_image_url
string<uri>[]

可公开访问的 http(s) 参考图地址,在创建请求处理期间下载,可重复该字段。限制与 reference_image 相同,并计入同一个 8 张上限。

Maximum array length: 8

响应

图片生成任务已受理并进入排队。

图片生成任务(img_ 前缀),创建接口与查询接口返回同一结构。状态只会向前推进:queued → processing → ready 或 failed,不会出现 cancelled。ready 前 images 始终为空,ready 后按请求顺序列出全部 n 张。一个任务要么 n 张全部生成,要么整体失败,不会只返回部分图片。

id
string
必填

图片任务公开 ID,以 img_ 开头。

Minimum string length: 1
status
enum<string>
必填

任务状态,ready 和 failed 为终态。

可用选项:
queued,
processing,
ready,
failed
model
string
必填

使用的模型,目前为 qwen。

progress
integer | null
必填

已完成张数占比:queued 为 0,processing 为 0–99,ready 为 100,failed 为 null。

必填范围: 0 <= x <= 100
images
object[]
必填

ready 前为空;ready 后按请求顺序列出全部 n 张。

created_at
string<date-time> | null
必填

创建时间,RFC 3339。

completed_at
string<date-time> | null
必填

结束时间,ready 或 failed 时有值,之前为 null。

error
object | null
必填

失败原因,只在 status 为 failed 时有值。code 为 SERVICE_BUSY(可重试:生成服务繁忙或暂时不可用,或任务 15 分钟内未完成)、TASK_FAILED(可重试:其他生成或上传失败)或 INVALID_REQUEST(不可重试:模型拒绝了请求,例如参考图无法使用)。