PhotoDoodle:设计师必备!AI一键生成装饰元素,30+样本复刻风格+无缝融合的开源艺术编辑框架

197 阅读5分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎨 “艺术化图像编辑新突破!PhotoDoodle 让照片秒变艺术品,支持自然语言指令精准控制”

大家好,我是蚝油菜花。你是否也遇到过——

  • 👉 想要为照片添加独特的艺术风格,却苦于没有专业的设计技能?
  • 👉 在社交媒体上分享照片时,希望有更多个性化的装饰效果?
  • 👉 商业设计中,需要快速生成符合品牌风格的图像,但时间紧迫?

今天要介绍的 PhotoDoodle,正是为解决这些问题而生!这个由字节跳动、新加坡国立大学等联合推出的艺术化图像编辑框架,能够通过少量样本学习艺术家的独特风格,实现照片涂鸦和装饰性元素生成。无论是数字艺术创作、商业设计,还是社交媒体分享,PhotoDoodle 都能让你的图像焕然一新!

🚀 快速阅读

PhotoDoodle 是一个基于少量样本学习的艺术化图像编辑框架。

  1. 核心功能:支持艺术风格学习、装饰性元素生成、背景一致性保持和指令驱动的编辑。
  2. 技术原理:通过两阶段训练策略,结合位置编码克隆机制和无噪声条件范式,确保生成结果与背景的无缝融合。

PhotoDoodle 是什么

PhotoDoodle

PhotoDoodle 是由新加坡国立大学、上海交通大学、北京邮电大学、字节跳动和 Tiamat 团队联合推出的艺术化图像编辑框架。它基于少量样本学习艺术家的独特风格,实现照片涂鸦(photo doodling)。PhotoDoodle 采用两阶段训练策略:首先基于大规模数据预训练通用图像编辑模型 OmniEditor,然后用少量艺术家策划的前后图像对进行微调,捕捉特定的编辑风格。

PhotoDoodle 引入了位置编码重用机制和无噪声条件范式,确保生成结果与背景的无缝融合和一致性。此外,PhotoDoodle 还推出了包含 6 种风格和 300 多个样本的高质量数据集,为相关研究提供了基准。

PhotoDoodle 的主要功能

  • 艺术风格学习与复现:从少量艺术家提供的样本中学习独特的编辑风格,应用于新的图像编辑任务中。
  • 装饰性元素生成:支持在照片上添加装饰性元素(如手绘线条、色彩块、装饰图案等),确保这些元素与背景无缝融合。
  • 保持背景一致性:在编辑过程中,严格保留原始照片的背景内容,避免背景失真或风格被破坏。
  • 指令驱动的编辑:基于自然语言指令控制图像编辑内容,实现精准的局部修改和风格化处理。
  • 高效风格定制:借助低秩适应(LoRA)技术,仅需 30-50 对样本即可快速适配不同艺术家的风格,降低训练成本。

PhotoDoodle 的技术原理

  • OmniEditor 预训练:用大规模图像编辑数据集对预训练的 DiT 模型进行微调,将其转化为通用图像编辑器(OmniEditor)。引入位置编码克隆机制(Positional Encoding Cloning)和无噪声条件范式(Noise-free Conditioning),确保编辑过程中的空间一致性和背景保留。
  • EditLoRA 微调:在预训练的 OmniEditor 基础上,用少量艺术家提供的前后图像对进行低秩适应(LoRA)微调。基于低秩分解矩阵适应性调整模型权重,捕捉特定艺术家的编辑风格,同时保留预训练模型的通用能力。
  • 位置编码克隆机制:在源图像和目标图像之间共享相同的位置编码,确保生成结果的空间一致性,避免背景与装饰元素之间的错位。
  • 无噪声条件范式:在生成过程中保留源图像的无噪声条件,防止背景内容在迭代去噪过程中被破坏,保持原始图像的细节和纹理。
  • 条件流匹配损失函数:优化条件流匹配损失函数,指导模型学习从噪声到目标图像的生成路径,进一步提升编辑效果。

如何运行 PhotoDoodle

1. 环境配置

git clone git@github.com:showlab/PhotoDoodle.git
cd PhotoDoodle

conda create -n doodle python=3.11.10
conda activate doodle

2. 安装依赖

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

3. 推理

我们提供了与 Diffusers 集成的推理管道,并已将模型权重上传至 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")

或者直接运行推理脚本:

python inference.py

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦