编辑图片 (Edit Image)
使用通义千问模型编辑图片,支持单图编辑和多图融合。
计费说明
按成功生成的图像张数计费(单次请求如果返回n张图片,则当次费用为 n×单价)
请求
POST https://www.realmrouter.cn/v1/images/edits
请求头
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | Bearer Token 认证。格式: Authorization: Bearer sk-xxxxxx |
| Content-Type | string | 是 | 请求内容类型,固定为 application/json |
请求体 (application/json)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,可选值: qwen-image-edit-plus | qwen-image-edit-plus-2025-12-15 | qwen-image-edit-plus-2025-10-30 | qwen-image-edit |
| input | object | 是 | 输入参数对象 |
| input.messages | array | 是 | 消息数组 |
| input.messages[].role | string | 是 | 消息角色,固定为 "user" |
| input.messages[].content | array | 是 | 内容数组 |
| input.messages[].content[].image | string | 否 | 图片URL地址或Base64编码数据,支持传入1-3张图像 |
| input.messages[].content[].text | string | 否 | 图像编辑指令,即正向提示词,长度上限800个字符 |
| parameters | object | 否 | 生成参数对象 |
| parameters.n | integer | 否 | 输出图像数量,默认值: 1。qwen-image-edit-plus系列支持1-6张,qwen-image-edit仅支持1张 |
| parameters.negative_prompt | string | 否 | 反向提示词,长度上限500个字符 |
| parameters.size | string | 否 | 输出图像分辨率,格式为宽*高,例如 "1024*2048",取值范围[512, 2048] |
| parameters.prompt_extend | boolean | 否 | 是否开启prompt智能改写,默认值: true |
| parameters.seed | integer | 否 | 随机数种子,取值范围[0, 2147483647] |
参数说明
model
模型名称,可选以下模型:
- qwen-image-edit-plus系列模型:包括
qwen-image-edit-plus、qwen-image-edit-plus-2025-12-15、qwen-image-edit-plus-2025-10-30,支持输出1-6张图片 - qwen-image-edit:仅支持输出1张图片
image
输入图像的 URL 或 Base64 编码数据。支持传入1-3张图像。
多图输入时,按照数组顺序定义图像顺序,输出图像的比例以最后一张为准。
图像要求:
- 图像格式:JPG、JPEG、PNG、BMP、TIFF、WEBP和GIF
- 输出图像为PNG格式,对于GIF动图,仅处理其第一帧
- 图像分辨率:为获得最佳效果,建议图像的宽和高均在384像素至3072像素之间。分辨率过低可能导致生成效果模糊,过高则会增加处理时长
- 图像大小:不超过10MB
text
图像编辑指令,即正向提示词,用来描述生成图像中期望包含的元素和视觉特点。
进行多图像编辑时,编辑指令中需要使用"图1"、"图2"、"图3"等描述来指代相应的图片,否则会出现不符合预期的编辑结果。
支持中英文,长度上限800个字符,每个汉字/字母占一个字符,超过部分会自动截断。
示例值: 图1中的女生穿着图2中的黑色裙子按图3的姿势坐下,保持其服装、发型和表情不变,动作自然流畅。
n
输出图像的数量,默认值为1。
- 对于qwen-image-edit-plus系列模型,可选择输出1-6张图片
- 对于qwen-image-edit,仅支持输出1张图片
negative_prompt
反向提示词,用来描述不希望在画面中看到的内容,可以对画面进行限制。
支持中英文,长度上限500个字符,每个汉字/字母占一个字符,超过部分会自动截断。
示例值: 低分辨率、错误、最差质量、低质量、残缺、多余的手指、比例不良等。
size
设置输出图像的分辨率,格式为宽*高,例如 "1024*2048"。宽和高的取值范围均为[512, 2048]像素。
默认行为: 若不设置,输出图像将保持与输入图像(多图输入时为最后一张)相似的长宽比,接近1024*1024分辨率。
支持模型: 仅qwen-image-edit-plus系列模型支持。
prompt_extend
是否开启prompt智能改写。开启后,将使用大模型优化正向提示词,对描述性不足、较为简单的prompt提升效果较明显。
true:默认值,开启智能改写false:不开启智能改写
支持模型: 仅qwen-image-edit-plus系列模型支持。
seed
随机数种子,取值范围[0, 2147483647]。
使用相同的seed参数值可使生成内容保持相对稳定。若不提供,算法将自动使用随机数种子。
注意: 模型生成过程具有概率性,即使使用相同的seed,也不能保证每次生成结果完全一致。
请求示例
cURL - 单图编辑
curl -X POST "https://www.realmrouter.cn/v1/images/edits" \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image.jpg"
},
{
"text": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}
]
},
"parameters": {
"n": 2,
"negative_prompt": "",
"prompt_extend": true,
"watermark": false
}
}'cURL - 多图融合
curl -X POST "https://www.realmrouter.cn/v1/images/edits" \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image1.jpg"
},
{
"image": "http://example.com/image2.jpg"
},
{
"text": "将两张图的小猫融合到一张图里一起在户外过圣诞节谢谢,原图的猫咪别做任何改动这非常重要不需要对原图的猫咪做任何改动"
}
]
}
]
},
"parameters": {
"n": 6,
"negative_prompt": "blurry, bad quality, text",
"prompt_extend": true,
"watermark": false
}
}'JavaScript
const body = JSON.stringify({
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image.jpg"
},
{
"text": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}
]
},
"parameters": {
"n": 2,
"negative_prompt": "",
"prompt_extend": true,
"watermark": false
}
})
fetch("https://www.realmrouter.cn/v1/images/edits", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer "
},
body
})Go
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://www.realmrouter.cn/v1/images/edits"
body := strings.NewReader(`{
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image.jpg"
},
{
"text": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}
]
},
"parameters": {
"n": 2,
"negative_prompt": "",
"prompt_extend": true,
"watermark": false
}
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", "Bearer ")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}Python
import requests
url = "https://www.realmrouter.cn/v1/images/edits"
body = """{
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image.jpg"
},
{
"text": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}
]
},
"parameters": {
"n": 2,
"negative_prompt": "",
"prompt_extend": true,
"watermark": false
}
}"""
response = requests.request("POST", url, data = body, headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "
})
print(response.text)Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image.jpg"
},
{
"text": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}
]
},
"parameters": {
"n": 2,
"negative_prompt": "",
"prompt_extend": true,
"watermark": false
}
}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://www.realmrouter.cn/v1/images/edits"))
.header("Authorization", "Bearer ")
.header("Content-Type", "application/json")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}C#
using System;
using System.Net.Http;
using System.Text;
var body = new StringContent("""
{
"model": "qwen-image-edit-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"image": "http://example.com/image.jpg"
},
{
"text": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}
]
},
"parameters": {
"n": 2,
"negative_prompt": "",
"prompt_extend": true,
"watermark": false
}
}
""", Encoding.UTF8, "application/json");
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer ");
var response = await client.PostAsync("https://www.realmrouter.cn/v1/images/edits", body);
var responseBody = await response.Content.ReadAsStringAsync();响应
响应体 (application/json)
| 参数 | 类型 | 说明 |
|---|---|---|
| created | integer | 创建时间戳 |
| data | array | 编辑后的图片数据数组 |
| data[].url | string | 图片URL |
| data[].revised_prompt | string | 修订后的提示词 |
响应示例
{
"created": 1234567890,
"data": [
{
"url": "https://example.com/edited-image.png",
"revised_prompt": "保持小猫咪姿势不动,给她的背景换成圣诞节的背景,希望在户外且下雪的场景"
}
]
}状态码
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 认证失败 |
| 429 | 请求过于频繁 |
| 500 | 服务器错误 |
常见问题
Q:qwen-image-edit 支持多轮对话式编辑吗?
A:不支持。模型仅支持单轮执行。每次调用均为独立、无状态的任务。如需连续编辑,须将生成的图片作为新输入再次调用。
Q:qwen-image-edit 和 qwen-image-edit-plus 系列模型支持哪些语言?
A:目前正式支持简体中文和英文;其他语言可自行尝试,但效果未经充分验证,可能存在不确定性。
Q:上传多张不同比例的参考图时,输出图像的比例以哪张为准?
A:输出图像会以最后一张上传的参考图的比例为准。
注意事项
model参数支持多个模型:qwen-image-edit-plus、qwen-image-edit-plus-2025-12-15、qwen-image-edit-plus-2025-10-30:支持输出1-6张图片qwen-image-edit:仅支持输出1张图片
input.messages[].content数组支持两种格式:- 单图编辑: 包含一个
image字段和一个text字段 - 多图融合: 包含多个
image字段和一个text字段
- 单图编辑: 包含一个
image字段支持图片URL或Base64编码数据,支持传入1-3张图像- 多图输入时,按照数组顺序定义图像顺序,输出图像的比例以最后一张为准
text字段用于指定编辑指令或融合要求,长度上限800个字符- 进行多图像编辑时,编辑指令中需要使用"图1"、"图2"、"图3"等描述来指代相应的图片
parameters.n参数控制生成图片的数量:- qwen-image-edit-plus系列支持1-6张
- qwen-image-edit仅支持1张
parameters.negative_prompt参数用于指定不希望出现的内容,长度上限500个字符parameters.size参数控制输出图像分辨率,格式为宽*高,取值范围[512, 2048]parameters.prompt_extend参数控制是否自动扩展提示词:true: 自动扩展提示词以获得更好的效果false: 使用原始提示词
parameters.seed参数用于控制生成结果的稳定性,取值范围[0, 2147483647]- 每次请求的token消耗会计入您的配额
- 生成的图片URL有时效性,请及时保存
- 图片编辑可能需要较长时间,请耐心等待响应
- 支持的图片格式包括 JPG、JPEG、PNG、BMP、TIFF、WEBP和GIF
- 输出图像为PNG格式,对于GIF动图,仅处理其第一帧
- 原始图片大小建议不超过10MB
- 建议图像的宽和高均在384像素至3072像素之间
- 多图融合时,建议图片主题相关,融合效果会更好
- 在提示词中明确说明需要保留或修改的内容,可以获得更精确的编辑效果