概述
MelodyCloud Studio 提供 OPENAI 兼容的 GPT Image 2 图像生成与编辑接口,支持文生图、图生图、局部编辑等能力,按实际用量计费。

| 接口 |
方法 |
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
- 推荐值:
1024x1024、1024x1536、1536x1024、2048x2048、2048x1152、2160x3840
请求示例
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 技术支持。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)