Qwen 团队开源 Qwen-Image-2.1,将文生图与图像编辑统一在一个模型中。模型视觉生成部分仅 7B 参数,采用 32 层 Single-Stream DiT,在官方 Qwen-Image-Bench 公开评测中获得 60.28 分,并原生支持透明图生成与最多 10 张参考图编辑。

开源地址:

 

7B 参数,兼顾效果与推理效率

Qwen-Image-2.1 的视觉生成部分参数量为 7B,采用 32 层 Single-Stream DiT。在官方公布的 Qwen-Image-Bench 公开评测中,模型总分达到 60.28,高于图中所有参与对比的开源模型;相较多个参数未公开的闭源模型,也保持了有竞争力的综合表现。

 

Qwen-Image-Bench 公开评测对比:

推理效率方面,Qwen-Image-2.1 也着重优化了推理效率,优势在多图输入场景中尤其明显。这一优化来自混合粒度注意力结构。模型对文本和图像采用不同的处理策略:文本部分,包括系统前缀和编辑指令,采用 Token 级因果掩码;图像生成部分采用 Chunk 级掩码。同时,通过 KV Cache 复用机制,模型将输入图像与编辑指令作为静态上下文,在首步预计算并缓存,以提升推理效率、降低显存开销。

 

Qwen-Image-2.1 混合粒度注意力结构:

从透明图到多图编辑:覆盖多类视觉创作场景

原生透明图:生成与编辑统一完成

Qwen-Image-2.1 原生支持透明背景图像生成。模型可根据提示词决定输出普通 RGB 图像还是带 Alpha 通道的 RGBA 图像,适合贴纸、人物或商品抠图、图形素材与设计资产制作。透明图并非单独的后处理能力,生成结果还可以继续作为条件输入,用于表情、文字和内容编辑。

 

透明背景图像生成效果:

模型也能将真实 RGB 图片转换为透明 RGBA 图层,并继续修改透明图中的表情或文字。例如,官方案例展示了将透明图中的“BLOOM”替换为“Qwen-Image”,同时保持主体和透明背景结构。

多图编辑:最高支持 10 张参考图

Qwen-Image-2.1 最高支持 10 张参考图。在多人合照场景中,模型可将 6 张独立人像组合为一张群像;在商品穿戴场景中,可以同时读取模特、衣服、鞋子、包和帽子等多张素材;在家居设计场景中,还可以根据 10 张家具参考图生成完整室内布置。

局部编辑:圈选、涂抹与掩码

模型支持圈选、涂抹和掩码三类局部控制方式。圈选可以在多个指定区域内同时执行删除、替换与颜色调整;涂抹适合快速指定新增内容的位置;掩码则通过额外输入一张区域图,在不覆盖原图信息的前提下完成更精确的局部编辑。

 

圈选区域内的多目标局部编辑

 

 

局部编辑还可连续执行,官方案例将多次一致性编辑串联为短动画,展示角色姿态和内容在连续帧中的变化。

 

编辑保真:人物身份与商品细节

Qwen-Image-2.1 重点增强了人像和商品两类高一致性编辑。人像场景强调编辑前后身份特征的稳定;商品场景则尽量保留包装文字、纹理和外形,降低编辑过程中主体细节被重绘或变形的概率。

 

人像编辑后的身份一致性

商品编辑后的文字、纹理与形态保持

全景图、信息图与分镜生成

除常规文生图和图像编辑外,Qwen-Image-2.1 还覆盖全景图、复杂信息图和分镜图生成。模型可以将单张自拍扩展为完整全景画面,也能基于人物照片组织包含文字与视觉元素的信息图,或根据人物三视图生成连续分镜。

 

全景图生成效果

全景图放置可视化工具之后展现的完整效果:

 

复杂信息图生成效果

文字渲染与人物质感

Qwen-Image-2.1 对文字排版、光影和人物细节进行了增强,可用于海报、封面、品牌视觉与人物肖像等场景。官方案例覆盖多种字体风格、复杂文字布局,以及不同光线和构图下的人像生成。

 

文字渲染效果

 

 

模型体验与使用

开发者可以通过魔搭创空间 Demo 直接体验 Qwen-Image-2.1 的图像生成与编辑能力,快速验证不同提示词和参考图的实际效果。

 

 

 

此外,魔搭 AIGC 专区已提供在线推理与模型训练能力,无需配置本地环境,即可进一步测试生成效果、调整参数并开展模型微调。

 

快速生图:

 

训练LoRA:同时支持文生图的微调和编辑的微调

使用 DiffSynth 套件进行推理与训练

 

推理

首先创建独立的 Python 环境,并安装 DiffSynth-Studio 与 ModelScope:

conda create -n diffsynth python=3.10 -y
conda activate diffsynth

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

直接运行以下代码,可下载 Qwen-Image-2.1 并生成图像:

from diffsynth.pipelines.qwen_image_21 import QwenImage21Pipeline, ModelConfig
import torch
from PIL import Image
pipe = QwenImage21Pipeline.from_pretrained(
    torch_dtype=torch.bfloat16,
    device="cuda",
    model_configs=[
        ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="transformer/diffusion_pytorch_model*.safetensors"),
        ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="text_encoder/model*.safetensors"),
        ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="vae/diffusion_pytorch_model*.safetensors"),
    ],
    processor_config=ModelConfig(model_id="Qwen/Qwen-Image-2.1", origin_file_pattern="processor/"),
)

# Text-to-Image, the output is an RGBA image
prompt = "Flat anime-style illustration, a girl with long black hair, wearing a JK uniform."
image = pipe(prompt, seed=0)
image.save("image1.png")

prompt = "Flat anime-style illustration, a sunny and cheerful high school girl."
image_2 = pipe(prompt=prompt, seed=0)
image_2.save("image2.png")

# Image Editing, the generated RGBA image is fed back as the condition
prompt = "Generate a group photo of these two characters."
edit_image = [Image.open("image1.png"), Image.open("image2.png")]
image_3 = pipe(prompt, edit_image=edit_image, seed=1)
image_3.save("image3.png")

 

通过DiffSynth-WebUI推理

基于 DiffSynth-Studio 的零代码 LoRA 训练平台 DiffSynth-WebUI也支持了这个模型,通过以下指令配置环境并启动 WebUI:

git clone --recurse-submodules https://github.com/modelscope/DiffSynth-WebUI.git
cd DiffSynth-WebUI
pip install -e DiffSynth-Studio/
pip install -e .
bash training_ui/launch.sh
在 WebUI 中导入训练数据集 -> 点击 New Task -> 选择 Qwen-Image-2.1,即可开始训练

训练 LoRA

先从魔搭下载示例训练数据:

modelscope download \
  --dataset DiffSynth-Studio/diffsynth_example_dataset \
  --include "qwen_image_21/Qwen-Image-2.1/*" \
  --local_dir ./data/diffsynth_example_dataset

随后通过 Accelerate 启动 Qwen-Image-2.1 LoRA 训练:

accelerate launch examples/qwen_image_21/model_training/train.py \
  --dataset_base_path data/diffsynth_example_dataset/qwen_image_21/Qwen-Image-2.1 \
  --dataset_metadata_path data/diffsynth_example_dataset/qwen_image_21/Qwen-Image-2.1/metadata.csv \
  --max_pixels 1048576 \
  --dataset_repeat 50 \
  --model_id_with_origin_paths "Qwen/Qwen-Image-2.1:transformer/diffusion_pytorch_model*.safetensors,Qwen/Qwen-Image-2.1:text_encoder/model*.safetensors,Qwen/Qwen-Image-2.1:vae/diffusion_pytorch_model*.safetensors" \
  --learning_rate 1e-4 \
  --num_epochs 5 \
  --remove_prefix_in_ckpt "pipe.dit." \
  --output_path "./models/train/Qwen-Image-2.1_lora" \
  --lora_base_model "dit" \
  --lora_target_modules "" \
  --lora_rank 32 \
  --use_gradient_checkpointing \
  --find_unused_parameters

图像编辑 LoRA 可沿用同一训练入口,通过 data_file_keysextra_inputs 加入编辑图像条件

 

本地推理与部署

使用 ComfyUI 推理

准备 ComfyUI,并创建独立的 Python 环境,完成环境配置:

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
pip install git+https://github.com/modelscope/DiffSynth-Studio.git

在 ComfyUI 中使用 DiffSynth-Studio 的自定义节点包:

cd ComfyUI/custom_nodes
git clone https://github.com/modelscope/DiffSynth-ComfyUI.git
cd ..
python main.py

在「模板」中可以找到我们提供的 Qwen-Image-2.1 工作流:

此外,ComfyUI官方也Day0支持了模型推理,官方工作流如下:

使用 Diffusers 推理

环境安装

pip install torch>=2.4.0
pip install transformers>=5.17
pip install git+https://github.com/huggingface/diffusers
pip install accelerate pillow

文生图脚本:

import torch
from diffusers import QwenImage21Pipeline
pipe = QwenImage21Pipeline.from_pretrained(
    "Qwen/Qwen-Image-2.1", torch_dtype=torch.bfloat16
).to("cuda")
image = pipe(
    prompt="A neon shop sign that reads \"QWEN IMAGE 2.1\", rainy night, reflections on wet pavement",
    width=2048, height=2048,
    num_inference_steps=40,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("t2i_example.png")

 

图生图脚本:

import torch
from PIL import Image
from diffusers import QwenImage21Pipeline
pipe = QwenImage21Pipeline.from_pretrained(
    "Qwen/Qwen-Image-2.1", torch_dtype=torch.bfloat16
).to("cuda")
input_image = Image.open("input.png")
image = pipe(
    prompt="Change the background to a sunset beach",
    image=input_image,
    num_inference_steps=40,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("edit_example.png")

通过 vLLM 部署

服务启动命令:

vllm serve Qwen/Qwen-Image-2.1 --omni --port 8091

接口调用示例:

curl http://localhost:8091/v1/images/generations \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen-Image-2.1",
    "prompt": "A ceramic teapot on a wooden table",
    "size": "1024x1024",
    "num_inference_steps": 50,
    "true_cfg_scale": 1.0,
    "seed": 42
  }'

详情参考:https://recipes.vllm.ai/Qwen/Qwen-Image-2.1

通过 SGLang 部署

服务启动命令:

sglang serve \
  --model-path "/models/qwen-image-2.1" \
  --model-id Qwen-Image-2.1 \
  --num-gpus 1 \
  --ulysses-degree 1 \
  --host 0.0.0.0 \
  --port 30010 \
  --performance-mode speed \
  --attention-backend fa \
  --encoder-parallel auto \
  --batching-max-size 1

接口调用:

curl -sS --fail-with-body http://localhost:30010/v1/images/generations \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "Qwen-Image-2.1",
  "prompt": "A capybara reading a book by candlelight",
  "n": 1,
  "size": "1024x1024",
  "num_inference_steps": 40,
  "guidance_scale": 1,
  "seed": 42,
  "generator_device": "cpu",
  "output_format": "png",
  "response_format": "b64_json",
  "background": "auto",
  "enable_cache_dit": false
}'

详情参考:https://docs.sglang.io/cookbook/diffusion/Qwen-Image/Qwen-Image-2.1

在 AMD 平台上推理

qwen-Image-2.1可通过 ROCm 7.2.4 PyTorch 容器在 AMD Radeon GPU 上运行。以下示例使用 Diffusers 加载魔搭模型权重并完成文生图推理。

 

拉取 ROCm PyTorch 镜像

docker pull rocm/pytorch:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0

启动容器

docker run -d --name qwen-image \
  --device=/dev/kfd --device=/dev/dri \
  --ipc=host --shm-size 32G \
  --security-opt seccomp=unconfined \
  -v "$PWD":/workspace \
  -w /workspace \
  rocm/pytorch:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0 sleep infinity

进入容器:

docker exec -it qwen-image bash

后续命令均在容器内执行。

 

安装Diffusers及相关依赖

pip install "transformers>=5.0" accelerate safetensors sentencepiece modelscope
pip install --no-deps "git+https://github.com/huggingface/diffusers"

 

从魔搭下载模型权重

modelscope login --token <YOUR_TOKEN>
modelscope download Qwen/Qwen-Image-2.1 --local_dir /root/.cache/modelscope/Qwen-Image-2.1

运行文生图推理:

import torch
from diffusers import QwenImage21Pipeline
model_path = "/root/.cache/modelscope/Qwen-Image-2.1"
pipe = QwenImage21Pipeline.from_pretrained(model_path, dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()
prompt = "A capybara wearing a wizard hat, oil painting"
image = pipe(prompt, generator=torch.Generator("cuda").manual_seed(42)).images[0]
image.save("t2i.png")

通过 FlagOS 在多种 AI 芯片上推理

Qwen-Image-2.1 已通过 FlagOS 支持 NVIDIA、沐曦、海光、昇腾、摩尔线程、平头哥真武、燧原和 Arm 共 8 种芯片平台。开发者只需从魔搭 FlagRelease 组织下载对应芯片的预构建镜像与模型权重,即可沿用 Diffusers 的推理方式运行模型,无需修改代码;各平台的推理精度已与官方实现对齐。

 

模型下载地址:https://modelscope.cn/organization/FlagRelease

 

Logo

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

更多推荐