Qwen-Image Technical Report

一、文章主要内容和创新点

主要内容

本文介绍了Qwen-Image,一款Qwen系列的图像生成基础模型,其核心优势在于复杂文本渲染和精确图像编辑。

  1. 文本渲染优化:通过构建大规模数据 pipeline(包含数据收集、过滤、标注、合成与平衡),结合渐进式训练策略(从非文本任务过渡到文本渲染,从简单文本到段落级描述),显著提升了模型对多语言(尤其是中文等表意文字)的文本渲染能力。
  2. 图像编辑增强:提出改进的多任务训练范式,整合文本到图像(T2I)、文本-图像到图像(TI2I)、图像到图像(I2I)重建任务,并设计双编码机制——通过Qwen2.5-VL获取语义表示、通过VAE编码器获取重建表示,实现语义一致性与视觉保真度的平衡。
  3. 性能评估:在GenEval、DPG等通用生成基准,GEdit、ImgEdit等编辑基准,以及LongText-Bench、ChineseWord等文本渲染基准上均达到当前最优水平,尤其在中文文本生成上显著超越现有模型。
创新点
  1. 复杂文本渲染方案:通过全面的数据工程(大规模高质量数据+合成数据)和渐进式课程学习,首次实现对段落级、多语言(尤其是中文)文本的高保真渲染。
  2. 图像编辑一致性机制:融合多任务训练与双编码机制,解决了编辑中“视觉一致性”(仅修改目标区域)和“语义连贯性”(保持全局语义)的双重挑战。</
CLIP(Contrastive Language-Image Pretraining)是一种用于跨模态检索的模型,它能够学习图像和文本之间的关联。而Qwen - image是阿里云推出的通义千问多模态大模型的图像部分。 ### 加载CLIP模型 CLIP模型可以使用Hugging Face的`transformers`库进行加载,示例代码如下: ```python from transformers import CLIPProcessor, CLIPModel clip_model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") clip_processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") ``` ### 加载Qwen - image相关模型 Qwen - image相关模型也可以通过`transformers`库加载,以下是一个简单示例: ```python from transformers import AutoModelForCausalLM, AutoTokenizer, AutoProcessor model = AutoModelForCausalLM.from_pretrained("qwen/Qwen-Image", device_map="auto", trust_remote_code=True) tokenizer = AutoTokenizer.from_pretrained("qwen/Qwen-Image", trust_remote_code=True) processor = AutoProcessor.from_pretrained("qwen/Qwen-Image", trust_remote_code=True) ``` ### 结合CLIP加载器与Qwen - image的使用示例 以下是一个简单的使用示例,展示如何使用CLIP加载器获取图像特征,并结合Qwen - image进行推理: ```python import torch from PIL import Image from transformers import CLIPProcessor, CLIPModel, AutoModelForCausalLM, AutoTokenizer, AutoProcessor # 加载CLIP模型 clip_model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") clip_processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") # 加载Qwen - image模型 qwen_model = AutoModelForCausalLM.from_pretrained("qwen/Qwen-Image", device_map="auto", trust_remote_code=True) qwen_tokenizer = AutoTokenizer.from_pretrained("qwen/Qwen-Image", trust_remote_code=True) qwen_processor = AutoProcessor.from_pretrained("qwen/Qwen-Image", trust_remote_code=True) # 获取图像的Embedding def get_image_embedding(image_path): image = Image.open(image_path) inputs = clip_processor(images=image, return_tensors="pt") torch.set_num_threads(1) with torch.no_grad(): image_features = clip_model.get_image_features(**inputs) return image_features[0].numpy() # 示例图像路径 image_path = "example.jpg" image_embedding = get_image_embedding(image_path) # 使用Qwen - image进行推理 image = Image.open(image_path) inputs = qwen_processor(images=image, return_tensors="pt") input_ids = qwen_tokenizer("描述这张图片:", return_tensors='pt').input_ids.to(model.device) outputs = qwen_model.generate(**inputs, input_ids=input_ids, max_new_tokens=512, do_sample=True, top_p=0.85, temperature=0.35, num_beams=1) result = qwen_tokenizer.decode(outputs[0], skip_special_tokens=True) print(result) ``` ### 配置注意事项 - **设备配置**:在加载模型时,可以使用`device_map="auto"`让模型自动分配到可用的GPU上。 - **依赖库**:确保安装了`transformers`、`torch`、`Pillow`等必要的库。 - **模型权限**:部分模型可能需要权限才能加载,需要提前申请并配置相关的访问令牌。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值