跳转到主要内容
图像编辑

图像编辑

通过文本指令修改图片

快速开始

以下示例展示如何使用 qwen-image-2.0-pro,根据三张输入图片和一段提示词生成两张编辑后的图片。
输入提示词:图 1 中的女孩穿上图 2 中的黑色连衣裙,摆出图 3 中的坐姿。
输入图片 1输入图片 2输入图片 3输出图片(多张)
image99
image98
image89
image100
imageout2
调用前,请先获取 API Key 并将其配置为环境变量。 如需通过 SDK 调用,请先安装 DashScope SDK。SDK 支持 Python 和 Java。 Qwen 图片编辑模型支持一至三张输入图片。qwen-image-2.0qwen-image-edit-maxqwen-image-edit-plus 系列可生成一至六张图片,qwen-image-edit 仅可生成一张图片。生成图片的 URL 有效期为 24 小时,请及时下载至本地。
  • Python
  • Java
  • curl
import json
import os
import dashscope
from dashscope import MultiModalConversation

dashscope.base_http_api_url = 'https://dashscope.aliyuncs.com/api/v1'

# 模型支持一至三张输入图片
messages = [
  {
    "role": "user",
    "content": [
      {"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/thtclx/input1.png"},
      {"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/iclsnx/input2.png"},
      {"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250925/gborgw/input3.png"},
      {"text": "Make the girl from Image 1 wear the black dress from Image 2 and sit in the pose from Image 3."}
    ]
  }
]

# 如未配置环境变量,请替换为您的 API Key:api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY")

# qwen-image-2.0、qwen-image-edit-max 和 qwen-image-edit-plus 系列支持输出 1 至 6 张图片。本示例输出 2 张。
response = MultiModalConversation.call(
  api_key=api_key,
  model="qwen-image-2.0-pro",
  messages=messages,
  stream=False,
  n=2,
  watermark=False,
  negative_prompt=" ",
  prompt_extend=True,
  size="1024*1536",
)

if response.status_code == 200:
  # 如需查看完整响应,请取消注释以下行
  # print(json.dumps(response, ensure_ascii=False))
  for i, content in enumerate(response.output.choices[0].message.content):
    print(f"输出图片 {i+1} 的 URL:{content['image']}")
else:
  print(f"HTTP 状态码:{response.status_code}")
  print(f"错误码:{response.code}")
  print(f"错误信息:{response.message}")
{
  "status_code": 200,
  "request_id": "fa41f9f9-3cb6-434d-a95d-4ae6b9xxxxxx",
  "code": "",
  "message": "",
  "output": {
    "text": null,
    "finish_reason": null,
    "choices": [
      {
        "finish_reason": "stop",
        "message": {
          "role": "assistant",
          "content": [
            {
              "image": "https://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/xxx.png?Expires=xxx"
            },
            {
              "image": "https://dashscope-result-hz.oss-cn-hangzhou.aliyuncs.com/xxx.png?Expires=xxx"
            }
          ]
        }
      }
    ],
    "audio": null
  },
  "usage": {
    "input_tokens": 0,
    "output_tokens": 0,
    "characters": 0,
    "height": 1536,
    "image_count": 2,
    "width": 1024
  }
}
  • Python
  • Java
import requests


def download_image(image_url, save_path='output.png'):
  try:
    response = requests.get(image_url, stream=True, timeout=300)  # 设置超时时间
    response.raise_for_status()  # 如果 HTTP 状态码不是 200,则抛出异常
    with open(save_path, 'wb') as f:
      for chunk in response.iter_content(chunk_size=8192):
        f.write(chunk)
    print(f"图片已成功下载至:{save_path}")

  except requests.exceptions.RequestException as e:
    print(f"图片下载失败:{e}")


image_url = "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxx"
download_image(image_url, save_path='output.png')

输入说明

输入图片(messages)

messages 参数为数组,必须包含一个对象。该对象须包含 rolecontent 属性。role 属性必须设为 usercontent 属性须同时包含 image(一至三张图片)和 text(一条编辑指令)。 输入图片须满足以下要求:
  • 支持的图片格式为 JPG、JPEG、PNG、BMP、TIFF、WEBP 和 GIF。
    输出图片为 PNG 格式。动态 GIF 仅处理第一帧。
  • 为获得最佳效果,图片分辨率的宽度和高度应在 384 至 3072 像素之间。分辨率过低可能导致输出模糊,过高则会增加处理时间。
  • 单张图片文件大小不超过 10 MB。
"messages": [
  {
    "role": "user",
    "content": [
      { "image": "图片 1 的公开 URL 或 Base64 数据" },
      { "image": "图片 2 的公开 URL 或 Base64 数据" },
      { "image": "图片 3 的公开 URL 或 Base64 数据" },
      { "text": "编辑指令,例如:'图 1 中的女孩穿上图 2 中的黑色连衣裙,摆出图 3 中的坐姿'" }
    ]
  }
]

图片输入顺序

当您提供多张输入图片时,图片的顺序由其在数组中的位置决定。因此,提示词引用的图片编号需要与图片数组中的顺序一一对应,例如:数组中的第一张图片为"图 1",第二张为"图 2",或者使用标记形式如"[图 1]"、"[图 2]"。
{
  "content": [
    {"text": "编辑指令,如:将图 1 中的闹钟放置到图 2 的餐桌的花瓶旁边位置"},
    {"image": "https://example.com/image1.png"},
    {"image": "https://example.com/image2.png"}
  ]
}
输入图片 1输入图片 2输出图片
image (19)-转换自-png
图 1
image (20)-转换自-png
图 2
04e0fc39-转换自-png
提示词:把图 1 移动到图 2 上
36ed450d-转换自-png
提示词:把图 2 移动到图 1 上

图片输入方式

公开 URL
  • 您可以提供支持 HTTP 或 HTTPS 协议的公开图片 URL。
  • 示例值:https://xxxx/img.png
Base64 编码 将图片文件转换为 Base64 编码字符串,并按以下格式拼接:data:<mime_type>;base64,<base64_data>
  • <mime_type>:图片的媒体类型,须与文件格式对应。
  • <base64_data>:文件的 Base64 编码字符串。
  • 示例值:data:image/jpeg;base64,GDU7MtCZz...(示例已截断)

更多参数

通过以下可选参数调整生成效果:
  • n:生成图片数量,默认值为 1。qwen-image-2.0、qwen-image-edit-max 和 qwen-image-edit-plus 系列模型支持生成一至六张图片,qwen-image-edit 模型仅支持生成一张图片。
  • negative_prompt:描述需要排除的内容,例如"模糊"或"多余的手指"。该参数有助于优化生成图片的质量。
  • watermark:是否在图片右下角添加"Qwen-Image"水印。默认值为 false
  • seed:随机数种子,取值范围为 [0, 2147483647] 的整数。未指定时,算法将随机生成种子值。使用相同的种子值有助于保持生成结果的一致性。
以下可选参数仅适用于 qwen-image-2.0、qwen-image-edit-max 和 qwen-image-edit-plus 系列模型:
  • size:输出图片的分辨率,格式为 宽*高,例如 "1024*2048"。对于 qwen-image-2.0 系列模型,可以自由设置宽度和高度,输出图片的总像素须在 512 x 512 至 2048 x 2048 之间。默认分辨率与输入图片相同(多张图片时取最后一张)。对于 qwen-image-edit-max 和 qwen-image-edit-plus 系列模型,宽度和高度的取值范围为 512 至 2048 像素。默认输出分辨率接近 1024*1024,且宽高比与原图相近。
  • prompt_extend:是否启用提示词改写功能。默认值为 true。启用后,模型会对提示词进行优化。该功能对简短或描述不够详细的提示词效果尤为显著。
完整参数列表请参见 Qwen-Image-Edit API 参考

功能概览

多图融合

输入图片 1输入图片 2输入图片 3输出图片
image83
image103
1
2
图 1 中的女孩佩戴图 2 中的项链,左肩背着图 3 中的包。

主体一致性

输入图片输出图片 1输出图片 2
image5
image4
将图片改为蓝底证件照。人物穿白衬衫、黑西装,系条纹领带。
image6
人物穿白衬衫、灰西装,系条纹领带。一只手放在领带上,背景为浅色。
image12
image13
将空调放置在客厅中,旁边有一张沙发。
image14
从空调出风口添加雾气,雾气延伸到沙发上方。同时添加绿色叶片。

线稿生图

输入图片输出图片
image42
image43
生成一张与图 1 中详细轮廓匹配的图片,描述如下:一位年轻女性在阳光明媚的日子里微笑。她戴着豹纹框的圆形棕色太阳镜,头发整齐地扎起,佩戴珍珠耳环,围着带紫色星形图案的深蓝色围巾,穿着黑色皮夹克。
image44
生成一张与图 1 中详细轮廓匹配的图片,描述如下:一位老人对着镜头微笑,脸上布满皱纹,头发在风中凌乱,戴着金框老花镜,脖子上围着带星形图案的旧红色围巾,穿着棉袄。

创意商品生成

输入图片输出图片
bear
image23
让这只熊坐在月亮下(白色背景上用浅灰色新月轮廓表示),抱着吉他,周围漂浮着小星星和写有"Be Kind"等短语的气泡。
image22
将此图案印在 T 恤和纸质手提袋上。一位女模特正在展示这些物品。她还戴着一顶写有"Be kind"的棒球帽。
image21
一个超写实的 1/7 比例角色模型,设计为商业成品,放置在带有白色键盘的 iMac 旁的桌面上。模型站在一个干净的圆形透明亚克力底座上,底座无标签或文字。专业摄影棚灯光凸显雕刻细节。背景中 iMac 屏幕上显示同一模型的 ZBrush 建模过程。模型旁边放置一个正面带透明窗口的包装盒,窗口内仅展示透明塑料壳。包装盒略高于模型,尺寸合理。
image
这只熊穿着宇航服,手指向远方。
image
这只熊穿着华丽的礼服裙,双臂展开,呈优雅的舞蹈姿势。
image
这只熊穿着运动装,手持篮球,一条腿弯曲。

深度图生图

输入图片输出图片
image36
image37
生成一张与图 1 中深度图匹配的图片,描述如下:一辆蓝色自行车停在小巷旁,背景中石头缝隙里长着几株杂草。
image38
生成一张与图 1 中深度图匹配的图片,描述如下:一辆破旧的红色自行车停在泥泞的小路上,背景是茂密的原始森林。

关键点生图

输入图片输出图片
image40
image41
生成一张与图 1 中人体姿态匹配的图片,描述如下:一位穿着汉服的中国女性在雨中撑着油纸伞,背景是苏州园林。
image39
生成一张与图 1 中人体姿态匹配的图片,描述如下:一个年轻男子站在地铁站台上,戴着棒球帽,穿着 T 恤和牛仔裤,身后有一列列车正在飞驰。

文字编辑

输入图片输出图片输入图片输出图片
image
image
将拼字游戏牌上的"HEALTH INSURANCE"替换为"Tomorrow will be better"。
image
image
将便签上的"Take a Breather"改为"Relax and Recharge"。
输入图片输出图片
image53
image45
将"Qwen-Image"改为黑色墨滴字体。
image46
将"Qwen-Image"改为黑色手写字体。
image49
将"Qwen-Image"改为黑色像素字体。
image54
将"Qwen-Image"改为红色。
image57
将"Qwen-Image"改为蓝紫渐变色。
image59
将"Qwen-Image"改为糖果色。
image63
将"Qwen-Image"的材质改为金属。
image64
将"Qwen-Image"的材质改为云朵。
image67
将"Qwen-Image"的材质改为玻璃。

增删改

输入图片输出图片输入图片输出图片
image
image
在企鹅前面添加一块小木牌,上面写着"Welcome to Penguin Beach"。
image
image
去掉盘子上的头发。

视角变换

输入图片输出图片输入图片输出图片
image
image
获取正面视图。
image
image
朝向左边。
image
image
获取背面视图。
image
image
朝向右边。

旧照处理

输入图片输出图片
image
image
修复旧照片,去除划痕,降低噪点,增强细节,高分辨率,真实图像,自然肤色,清晰的面部特征,无失真。
image31
image32
根据图片内容智能上色,使画面更加生动。

计费与限流

免费额度和计费标准请参见计费说明 限流策略请参见限流 计费详情
  • 成功生成的图片数量计费。模型调用失败或处理错误不产生费用,也不消耗免费额度。
  • 您可以开启"仅免费额度"功能,避免免费额度用完后产生额外费用。详情请参见新用户免费额度

API 参考

API 的输入输出参数请参见 Qwen - image editing

错误码

调用失败时,请参见错误信息

常见问题

Q:Qwen 图片编辑模型支持哪些语言? 官方支持简体中文和英文。其他语言可能可用,但效果不保证。 Q:如何查看模型调用量? 模型调用完成一小时后,您可以前往用量分析页面查看调用次数、成功率等指标。详情请参见账单查询与费用管理 Q:如何获取图片存储域名白名单? 模型生成的图片存储在 OSS 中,API 返回的是临时公开 URL。如需为该下载 URL 配置防火墙白名单,请注意:底层存储可能动态变化。本文不提供固定的 OSS 域名白名单,以免信息过时导致访问异常。如有安全管控需求,请联系您的客户经理获取最新的 OSS 域名列表。 更多问题请参见图片与视频 FAQ