论文精选 | (ICCV 2025)从少样本示例中学习艺术图像编辑

ICCV 2025论文:少样本艺术图像编辑方法

1、引入

“照片涂鸦(Photo Doodling)”是一种将装饰性元素叠加到照片上的艺术创作形式,其核心挑战在于: 

1)无缝融合:插入元素需与背景在透视、语义、视觉上保持一致;

2)背景保留:避免对原始背景的非预期修改(如颜色偏移、纹理失真);

3)风格高效捕捉:从少量(30-50对)“编辑前后”图像对中学习艺术家的独特风格。

现有方法(如全局风格迁移、基于掩码的修复)无法同时满足这些需求。因此,Showlab 在 ICCV 2025 发表的论文《PhotoDoodle: Learning Artistic Image Editing from Few-Shot Examples》中提出了 PhotoDoodle,专门解决艺术化照片编辑的痛点。

2、核心创新

PhotoDoodle 采用两阶段策略:先预训练通用编辑模型 OmniEditor,再通过 EditLoRA 微调捕捉特定艺术家的风格。结合位置编码克隆等创新技术,这种 “大规模预训练 + 少样本微调” 的方式实现了艺术化照片编辑的三大核心目标:

1)无缝融合:确保装饰元素与背景的空间对齐,避免错位;

2)背景保留:保留原图高频细节,防止背景失真;

3)高效风格捕捉:从少量样本中高效提取艺术家风格;

其开源的模型、数据集和代码为艺术创作工具的发展提供了重要参考,推动了少样本条件下个性化图像编辑的研究进展。

2.1 阶段1:通用编辑模型OmniEditor 预训练

 利用大规模图像编辑数据(350万对)训练通用图像编辑模型,使其具备基础的文本指令遵循和图像编辑能力。核心技术包括:  

1)位置编码克隆(Positional Encoding Cloning):为原始图像和编辑目标图像赋予相同的位置编码,建立像素级空间对应关系,避免编辑过程中的空间错位;

2)无噪声条件范式(Noise-free Conditioning):将原始图像的潜变量保持无噪声状态作为参考,既保留高频纹理细节,又通过多模态注意力机制控制编辑区域。

2.2 阶段2:EditLoRA微调

基于低秩适应(LoRA)技术,使用少量(30-50对)艺术家定制的“编辑前后”图像对微调模型,捕捉独特风格(如卡通怪物、手绘轮廓、3D效果等)。EditLoRA仅训练少量低秩矩阵,避免过拟合,同时保留OmniEditor的通用编辑能力。

3、数据集

为支持模型训练与评估,论文发布了首个专注于照片涂鸦的数据集:包含6种高质量艺术风格(卡通怪物、手绘轮廓、3D效果、流动色块、扁平插画、云朵素描)共300+“编辑前后”图像对,每对包含原始照片、涂鸦后图像及对应的文本指令。

4、快速上手

4.1 环境准备

作者在Github上传了自己的代码,并说明了环境准备的步骤,大家只需执行以下命令即可完成环境的准备。


cd photodoodle
# git clone
git@github.com:showlab/PhotoDoodle.git
git clone https://github.com/showlab/PhotoDoodle.git
cd PhotoDoodle
# 创建虚拟环境
conda create -n doodle
python=3.11.10
# 查看虚拟环境列表
conda env list
# 激活虚拟环境
conda activate doodle
pip install
torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url
https://download.pytorch.org/whl/cu124
pip install --upgrade
-r requirements.txt

4.2快速推理

作者提供了 diffusers pipeline 与他们的模型的集成,并将模型权重上传至huggingface。直接运行推理脚本即可快速体验。


from
src.pipeline_pe_clone import FluxPipeline
import
torch
from
PIL import Image
 
pretrained_model_name_or_path
= "black-forest-labs/FLUX.1-dev"
pipeline
= FluxPipeline.from_pretrained(
    pretrained_model_name_or_path,
    torch_dtype=torch.bfloat16,
).to('cuda')
 
pipeline.load_lora_weights("nicolaus-huang/PhotoDoodle",
weight_name="pretrain.safetensors")
pipeline.fuse_lora()
pipeline.unload_lora_weights()
 
pipeline.load_lora_weights("nicolaus-huang/PhotoDoodle",
weight_name="sksmagiceffects.safetensors")
 
height=768
width=512
 
validation_image
= "assets/1.png"
validation_prompt
= "add a halo and wings for the cat by sksmagiceffects"
condition_image
= Image.open(validation_image).resize((height, width)).convert("RGB")
 
result
= pipeline(prompt=validation_prompt, 
                 
condition_image=condition_image,
                  height=height,
                  width=width,
                  guidance_scale=3.5,
                  num_inference_steps=20,
                 
max_sequence_length=512).images[0]
 
result.save("output.png")

小编根据作者在Github上提交的代码,对推理效果进行了体验。下方为使用猫进行几种效果的验证,大家快看看效果吧!

论文链接:https://arxiv.org/abs/2502.14397
Github链接:https://github.com/showlab/PhotoDoodle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值