小白也能用!Qwen-Image-Layered一键实现图片图层拆解
1. 简介
我们很高兴推出Qwen-Image-Layered模型,该模型能够将图像自动分解为多个 RGBA 图层。这种分层表示方式解锁了图像的内在可编辑性:每个图层可以独立进行操作(如移动、缩放、重着色),而不会影响其他图层内容。更重要的是,这种结构天然支持高保真度的基础图像编辑操作——例如对象移除、重新定位、尺寸调整和颜色替换。
通过将图像中的语义或结构组件物理隔离到不同图层中,Qwen-Image-Layered 实现了高度一致且精准的编辑能力。无论是修改文本、替换人物,还是删除背景元素,都可以在不破坏整体画面质量的前提下完成。对于设计师、开发者乃至普通用户而言,这大大降低了精细化图像编辑的技术门槛。
本镜像已预装完整环境,支持一键部署 ComfyUI 可视化工作流,无需复杂配置即可快速上手。
2. 快速开始
2.1 环境准备
本镜像基于Qwen/Qwen-Image-Layered开源模型构建,运行前请确保以下依赖已正确安装:
pip install git+https://github.com/huggingface/diffusers pip install python-pptx同时,请确认您的transformers版本不低于4.51.3,以支持 Qwen2.5-VL 架构:
pip install --upgrade transformers>=4.51.32.2 启动服务
进入 ComfyUI 目录并启动服务端:
cd /root/ComfyUI/ python main.py --listen 0.0.0.0 --port 8080启动成功后,您可以通过浏览器访问http://<服务器IP>:8080打开可视化界面,使用拖拽式节点完成图层拆解与编辑任务。
3. 核心功能与代码实践
3.1 图像图层分解基础实现
以下是一个完整的 Python 示例,展示如何使用QwenImageLayeredPipeline对输入图像进行图层分解,并保存各图层为独立 PNG 文件。
from diffusers import QwenImageLayeredPipeline import torch from PIL import Image # 加载预训练模型 pipeline = QwenImageLayeredPipeline.from_pretrained("Qwen/Qwen-Image-Layered") pipeline = pipeline.to("cuda", torch.bfloat16) pipeline.set_progress_bar_config(disable=None) # 加载待处理图像(需为RGBA格式) image = Image.open("asserts/test_images/1.png").convert("RGBA") # 设置推理参数 inputs = { "image": image, "generator": torch.Generator(device='cuda').manual_seed(777), "true_cfg_scale": 4.0, "negative_prompt": " ", "num_inference_steps": 50, "num_images_per_prompt": 1, "layers": 4, # 指定输出图层数量 "resolution": 640, # 推荐使用640分辨率桶 "cfg_normalize": True, # 是否启用CFG归一化 "use_en_prompt": True, # 自动生英文提示词(若未提供) } # 执行图层分解 with torch.inference_mode(): output = pipeline(**inputs) output_images = output.images[0] # 获取分解后的图层列表 # 保存每个图层 for i, layer_image in enumerate(output_images): layer_image.save(f"layer_{i}.png")说明:
layers=4表示将原图分解为 4 个 RGBA 图层。- 输出的每个图层均为带透明通道的 PNG 图像,便于后续独立编辑。
- 使用
bfloat16精度可在保持精度的同时提升推理效率。
3.2 编辑单个图层:重新着色示例
假设我们只想对第一层(如前景物体)进行颜色调整,可以先提取该图层,再结合图像处理库进行调色。
from PIL import ImageEnhance # 加载第0层图像 layer_0 = Image.open("layer_0.png").convert("RGBA") # 增强饱和度(重新着色) enhancer = ImageEnhance.Color(layer_0) colored_layer = enhancer.enhance(2.0) # 提升两倍饱和度 # 保存新图层 colored_layer.save("layer_0_recolored.png")之后可将此图层与其他原始图层合并,生成最终结果:
# 合并所有图层(按顺序叠加) base = Image.new("RGBA", (640, 640), (0, 0, 0, 0)) for i in range(4): if i == 0: layer = Image.open("layer_0_recolored.png") else: layer = Image.open(f"layer_{i}.png") base.alpha_composite(layer) base.save("final_edited.png")3.3 高级应用:对象替换与自由移动
替换图层内容(如女孩→男孩)
利用Qwen-Image-Edit模型,可以在特定图层上执行语义级编辑。例如,在第二层执行“将女孩替换为男孩”:
from diffusers import QwenImageEditPipeline edit_pipeline = QwenImageEditPipeline.from_pretrained("Qwen/Qwen-Image-Edit").to("cuda") edited_layer = edit_pipeline( image=Image.open("layer_1.png"), prompt="a boy standing in the same pose", num_inference_steps=30 ).images[0] edited_layer.save("layer_1_replaced.png")自由移动图层对象
借助 PIL 的paste方法,可轻松实现图层平移:
moved_layer = Image.new("RGBA", (640, 640), (0, 0, 0, 0)) original = Image.open("layer_2.png") moved_layer.paste(original, (100, 50)) # 向右下移动 moved_layer.save("layer_2_moved.png")4. 多场景案例展示
4.1 分层解构效果示例
给定一张包含人物、文字和背景的复合图像,Qwen-Image-Layered 能将其自动分离为多个语义清晰的图层:
每个图层对应一个视觉元素(如人物、文字、装饰等),彼此互不干扰。
4.2 独立编辑保障一致性
由于各图层物理隔离,编辑操作仅作用于目标区域。例如,仅对首层进行重新着色,其余部分完全保留:
即使进行大幅色彩变换,也不会引入边缘伪影或模糊失真。
4.3 对象替换与文本修改
人物替换:将第二层的女孩替换为男孩,保持姿态与光照一致:
文本更新:将“Qwen”修改为“Qwen-Image”,仅更改对应图层内容:
4.4 基础操作支持
对象删除:直接移除某一层即可彻底清除目标对象:
无损缩放:在单独图层上调整大小,避免整体图像失真:
自由重定位:在画布内任意移动对象位置:
4.5 灵活可变的分层数量
Qwen-Image-Layered 支持动态指定图层数量。根据实际需求,可选择分解为 3 层、4 层甚至 8 层:
更多图层意味着更细粒度的控制,适用于复杂设计稿的后期精修。
4.6 递归分解能力
更进一步,任一图层本身也可以作为输入再次进行分解,实现无限层级拆解:
这一特性特别适合需要逐级细化编辑的高级应用场景,如 UI 设计、广告合成等。
5. 总结
Qwen-Image-Layered 提供了一种全新的图像编辑范式——通过自动图层分解实现内在可编辑性。其核心优势体现在:
- 高保真编辑:每个图层独立存在,编辑过程无损原始信息;
- 操作直观:支持重着色、移动、缩放、替换、删除等常见操作;
- 灵活可控:支持自定义图层数量与递归分解;
- 易于集成:提供标准 Diffusers 接口,兼容主流 AI 绘画生态;
- 开箱即用:配合 ComfyUI 可视化工具,小白用户也能快速上手。
无论你是设计师希望提升修图效率,还是开发者构建自动化图像处理流水线,Qwen-Image-Layered 都是一个强大而实用的选择。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。