今天,通义千问团队开源发布了 Qwen-Image-Edit,Qwen-Image的图像编辑版本!

 

模型链接:

https://www.modelscope.cn/models/Qwen/Qwen-Image-Edit
 

Qwen-Image-Edit基于20B的Qwen-Image模型进一步训练,成功将Qwen-Image的文本渲染特色能力拓展到编辑任务上,以支持精准的文字编辑。此外,Qwen-Image-Edit将输入图像同时输入到Qwen2.5-VL(获取视觉语义控制)和VAE Encoder(获得视觉外观控制),以同时获得语义/外观双重编辑能力。
 

主要特性包括:

  • 语义/外观 双重编辑: Qwen-Image-Edit不仅支持low-level的视觉外观编辑(例如增删改等,需要保持图片部分区域完全不变),也支持high-level的视觉语义编辑(例如IP制作,物体旋转,风格迁移等,整体像素值可以变化,但需要保持语义不变)
  • 精准文字编辑: Qwen-Image-Edit支持中英双语文字编辑,可以在保留文字大小/字体/风格的前提下,直接编辑图片中文字,进行增删改。
  • 强大的跨基准性能表现: 在多个公开基准测试中的评估表明,Qwen-Image-Edit 在编辑任务中均获得SOTA,是一个强大的图像生成基础模型。

01.示例效果

Qwen-Image-Edit的突出能力之一是能够语义/外观双重编辑。其中,语义编辑指的是,要保持原有图像的视觉语义不变的情况下,进行图像编辑,比如从Qwen的吉祥物——卡皮巴拉开始:

Image Editing in IP Creation(原创IP编辑)

可以看到,虽然编辑后的图像每个像素值和输入图像(最左边的图)都不一样,但是依然保持了卡皮巴拉角色的一致性。Qwen-Image的这种语义编辑能力使其能够轻松的进行原创IP编辑。再比如,通过一系列prompt进行了拓展,完成了MBTI整个表情包的制作:

Image Editing in IP Creation

(原创IP编辑之MBTI)

此外,视角转换也是语义编辑的重要场景。在下面两页图中,可以看到Qwen-Image-Edit不仅可以简单旋转物体(90度),甚至可以旋转180度,直接看到物体的背面:

Image Editing in Novel View Synthesis

(视角转换)

语义编辑的另一个例子是风格迁移。比如输入一张人物头像,Qwen-Image-Edit能够轻松的转换为吉卜力等多种风格,这在制作虚拟形象,人物ID上面非常有用:

Image Editing in Avatar Creator(虚拟形象生成)

除了语义编辑之外,外观编辑是另一类编辑需求。外观编辑指的是在编辑过程中要保持部分区域完全不变。比如一个常见的外观编辑是增删改。下面展示了在图片中增加指示牌。可以看到,Qwen-Image-Edit不仅仅增加了指示牌,而且增加了对应的倒影。

Image Editing in Object Add(AI新增)
 

下面也是一个有趣的例子,展示了在图片中删除头发丝。

Image Editing in Object Removal(AI消除)

  • 下面展示了如何去修改图像中字幕的颜色。把n的颜色修改为蓝色。

Image Editing in Replace(AI重绘)

  • 外观编辑在人物姿势修改、背景修改、服装修改中也有很重要的应用,下面三张图分别展示了这些场景

Image Editing in Portrait Modification

(人像P图)
 

Image Editing in Background Swap(虚拟场景)
 

Image Editing in Virtual Try-On(穿搭模拟)

Qwen-Image-Edit的第二个特色在于,能够进行准确的文字编辑,这得益于Qwen-Image本身在文字渲染上的强大能力。比如,下面两个例子展示了Qwen-Image-Edit在英文文字编辑上的能力:
 


 

Image Editing in Text Editing(文字设计)

Qwen-Image-Edit也可以直接对中文海报进行编辑,不仅可以更改海报中的大字,小字也可以编辑。
 

Image Editing in Poster Editing(海报编辑)

最后,来看一个具体的图像编辑例子,展示如何通过链式编辑来修改Qwen-Image生成错误的一幅书法作品:
 

这幅图中有不少字是生成错误的,可以通过Qwen-Image-Edit来逐步修复它。比如,可以直接在原图中增加方框,要求Qwen-Image-Edit来改对这些部分。这里,希望红框位置能够写对“稽”,蓝色部分能写对“亭”。

Image Editing in Repairing T2I Text

(定点文字修复)

不过事与愿违。“稽”字比较生僻,模型无法直接完成修改,“稽”右下角应该是“旨”,而不是“日”。可以进一步用红色框框住“日”,让Qwen-Image-Edit微调具体的部分,改成“旨”

Image Editing in Repairing T2I Text

(定点文字修复)

神奇吧?按照这种思路,可以逐步地进行错字修改,直到完成最终版本

Image Editing in Repairing T2I Text

(定点文字修复)

最终,我们获得了完全正确的,兰亭集序的书法版本!还顺手装裱了一把( •̀ ω •́ )✧

02.模型推理

环境依赖

pip install git+https://github.com/huggingface/diffusers

推理代码,说明如何使用模型根据文本提示和参考图片生成图像

import os
from PIL import Image
import torch
from diffusers import QwenImageEditPipeline
pipeline = QwenImageEditPipeline.from_pretrained("Qwen/Qwen-Image-Edit")
print("pipeline loaded")
pipeline.to(torch.bfloat16)
pipeline.to("cuda")
pipeline.set_progress_bar_config(disable=None)
image = Image.open("./input.png").convert("RGB")
prompt = "Change the rabbit's color to purple, with a flash light background."
inputs = {
    "image": image,
    "prompt": prompt,
    "generator": torch.manual_seed(0),
    "true_cfg_scale": 4.0,
    "negative_prompt": " ",
    "num_inference_steps": 50,
}
with torch.inference_mode():
    output = pipeline(**inputs)
    output_image = output.images[0]
    output_image.save("output_image_edit.png")
    print("image saved at", os.path.abspath("output_image_edit.png"))

03.模型微调

推荐使用DiffSynth-Studio进行微调

环境依赖:

git clone https://github.com/modelscope/DiffSynth-Studio.git  
cd DiffSynth-Studio
pip install -e .

示例数据集下载:

modelscope download --dataset DiffSynth-Studio/example_image_dataset --local_dir ./data/example_image_dataset

想要微调图像编辑模型,需要准备编辑图像对和输入prompt,示例数据集metadata_edit.csv如下:

image,prompt,edit_image
edit/image2.jpg,"将裙子改为粉色",edit/image1.jpg

待编辑图像 ---- 目标图像


 

LoRA模型微调脚本:

accelerate launch examples/qwen_image/model_training/train.py \
  --dataset_base_path data/example_image_dataset \
  --dataset_metadata_path data/example_image_dataset/metadata_edit.csv \
  --data_file_keys "image,edit_image" \
  --extra_inputs "edit_image" \
  --max_pixels 1048576 \
  --dataset_repeat 50 \
  --model_id_with_origin_paths "Qwen/Qwen-Image-Edit:transformer/diffusion_pytorch_model*.safetensors,Qwen/Qwen-Image:text_encoder/model*.safetensors,Qwen/Qwen-Image:vae/diffusion_pytorch_model.safetensors" \
  --learning_rate 1e-4 \
  --num_epochs 5 \
  --remove_prefix_in_ckpt "pipe.dit." \
  --output_path "./models/train/Qwen-Image-Edit_lora" \
  --lora_base_model "dit" \
  --lora_target_modules "to_q,to_k,to_v,add_q_proj,add_k_proj,add_v_proj,to_out.0,to_add_out,img_mlp.net.2,img_mod.1,txt_mlp.net.2,txt_mod.1" \
  --lora_rank 32 \
  --use_gradient_checkpointing \
  --dataset_num_workers 8 \
  --find_unused_parameters

点击链接,即可跳转链接~

https://modelscope.cn/models/Qwen/Qwen-Image-Edit

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐