概述

API插图

接口 方法 URL
图片生成 POST https://www.yuntts.com/api/v1/images/generations
图片编辑 POST https://www.yuntts.com/api/v1/images/edits

认证方式

所有请求需在 Header 中携带 Bearer Token:

Authorization: Bearer <YOUR_YUNTTS_API_KEY>


1. 图片生成接口

请求

  • URL: POST https://www.yuntts.com/api/v1/images/generations
  • Content-Type: application/json

请求参数

字段 类型 必填 默认值 说明
model string - 固定为 gpt-image-2
prompt string - 提示词
n int 1 生成图片数量,取值范围 1~10
size string auto 分辨率,规则见下方
quality string - 图片质量:low / medium / high
output_format string png 输出格式:png / jpeg
output_compression int 100 压缩强度,0~100

size 参数规则

  • auto:自动选择
  • WxH 格式(如 1024x1024),需满足:
    • 宽高均为 16 的倍数
    • 单边 ≤ 3840
    • 宽高比 ≤ 3:1
    • 像素总数 655,360 ~ 8,294,400
  • 推荐值:1024x10241024x15361536x10242048x20482048x11522160x3840

请求示例

curl -X POST 'https://www.yuntts.com/api/v1/images/generations' 
  -H 'Authorization: Bearer YOUR_YUNTTS_API_KEY' 
  -H 'Content-Type: application/json' 
  -d '{
    "model": "gpt-image-2",
    "prompt": "a beautiful flower",
    "n": 1,
    "size": "1024x1024",
    "quality": "high",
    "output_format": "png",
    "output_compression": 100
  }'

Python 示例

import os, base64
from openai import OpenAI

client = OpenAI(
    base_url="https://www.yuntts.com/api/v1",
    api_key=os.getenv("YUNTTS_API_KEY", "YOUR_API_KEY")
)

res = client.images.generate(
    model="gpt-image-2",
    prompt="a beautiful flower",
    size="1024x1024",
    quality="high",
)

image_b64 = res.data[0].b64_json
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("image.png", "wb") as f:
    f.write(base64.b64decode(raw))
print("Saved to image.png")

2. 图片编辑接口

请求

  • URL: POST https://www.yuntts.com/api/v1/images/edits
  • Content-Type: multipart/form-data

GPT Image 2 支持局部编辑功能,能够针对特定区域进行修改,同时保持其他区域的构图、色调和人物外观一致,避免整体重绘。

请求参数

字段 类型 必填 默认值 说明
image file - 待编辑图片(PNG/JPEG)
mask file - 蒙版图片,限定编辑区域
model string - 固定为 gpt-image-2
prompt string - 编辑提示词
n int 1 生成图片数量,1~10
size string auto 分辨率,规则同生成接口
quality string - low / medium / high
output_format string png png / jpeg
output_compression int 100 压缩强度,0~100

请求示例

curl -X POST 'https://www.yuntts.com/api/v1/images/edits' 
  -H 'Authorization: Bearer YOUR_YUNTTS_API_KEY' 
  -F 'image=@/path/to/your/image.png' 
  -F 'mask=@/path/to/your/mask.png' 
  -F 'model=gpt-image-2' 
  -F 'prompt=Add a beach ball in the center' 
  -F 'size=1024x1024' 
  -F 'n=1' 
  -F 'quality=high' 
  -F 'output_format=png' 
  -F 'output_compression=100'

Python 示例

import os, base64, requests

url = "https://www.yuntts.com/api/v1/images/edits"
headers = {"Authorization": f"Bearer {os.getenv('YUNTTS_API_KEY', 'YOUR_API_KEY')}"}

files = {
    "image": ("beach.png", open("beach.png", "rb"), "image/png"),
    # 可选:提供 mask 来限定编辑区域
    # "mask": ("mask.png", open("mask.png", "rb"), "image/png"),
}

data = {
    "model": "gpt-image-2",
    "prompt": "Add a beach ball in the center",
    "size": "1024x1024",
    "n": "1",
    "quality": "high",
    "output_format": "png",
    "output_compression": "100",
}

r = requests.post(url, headers=headers, files=files, data=data)
r.raise_for_status()
resp = r.json()

image_b64 = resp["data"][0]["b64_json"]
raw = image_b64.split(",")[-1] if image_b64.startswith("data:") else image_b64
with open("edit.png", "wb") as f:
    f.write(base64.b64decode(raw))
print("Saved to edit.png")

响应格式

成功响应

{
  "created": 1750667997,
  "data": [
    {
      "b64_json": "{image_base64_string}"
    }
  ],
  "usage": {
    "total_tokens": 4169,
    "input_tokens": 9,
    "output_tokens": 4160,
    "input_tokens_details": {
      "text_tokens": 9
    }
  }
}
字段 类型 说明
created int 创建时间 Unix 时间戳(秒)
data[].b64_json string Base64 编码的图片数据
usage.total_tokens int 总 tokens
usage.input_tokens int 输入 tokens
usage.output_tokens int 输出 tokens
usage.input_tokens_details.text_tokens int 文本输入 tokens
usage.input_tokens_details.image_tokens int 图像输入 tokens
usage.output_tokens_details.text_tokens int 文本输出 tokens
usage.output_tokens_details.image_tokens int 图像输出 tokens

注意:返回的图像数据为 Base64 编码,请及时解码保存。链接将在生成后 7 天内失效。

错误响应

{
  "error": {
    "message": "error_message",
    "type": "error_type",
    "param": "request_id",
    "code": "error_code"
  }
}
字段 类型 说明
error.message string 错误提示信息
error.type string 错误类型
error.param string 请求 id
error.code string 错误码

错误码

HTTP 状态码 code 说明
400 missing_param 缺少必需参数
400 invalid_model model 必须为 gpt-image-2
400 invalid_n n 取值范围 1~10
400 invalid_size size 格式或范围错误
400 invalid_quality quality 仅支持 low/medium/high
400 invalid_output_format output_format 仅支持 png/jpeg
400 invalid_output_compression output_compression 取值范围 0~100
401 invalid_token API Key 无效
502 upstream_error 服务暂不可用
502 invalid_config 服务端配置异常
502 upstream_request_failed 请求失败,请重试
502 upstream_invalid_response 响应解析失败

计费规则

计费公式

成本 = (文本输入tokens × 35.6 + 图像输入tokens × 56.96 
     + 文本输出tokens × 71.2 + 图像输出tokens × 213.6) / 1,000,000

售价 = max(最低扣费 0.2元, 成本 × 利润倍率 1.5)

计费项价格(元/百万 Tokens)

计费项 价格
文本输入 35.6
图像输入 56.96
文本输出 71.2
图像输出 213.6

VIP 折扣

用户类型 折扣
普通用户 1.0
VIP 0.9
SVIP 0.8

折扣后金额若低于最低扣费(0.2 元),则按最低扣费收取。

计费示例

1024x1024 + high 质量生成 1 张图为例:

"usage": {
  "total_tokens": 4169,
  "input_tokens": 9,
  "output_tokens": 4160,
  "input_tokens_details": { "text_tokens": 9 }
}
  • 成本 = (9×35.6 + 0 + 4160×71.2 + 0) / 1,000,000 = 0.2965 元
  • 售价 = max(0.2, 0.2965 × 1.5) = 0.44 元
  • VIP 用户 = 0.44 × 0.9 = 0.40 元

联系与支持

如有对接问题,请联系 Yuntts 技术支持。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。