PhotoDoodle AI 只需几个提示即可将您的照片变成异想天开的艺术作品

字节跳动携手中国和新加坡大学研究团队推出的新型AI图像编辑系统PhotoDoodle,正在重新定义我们对图像创作的理解。这款基于Flux.1模型的创新技术,能够从少量样本中学习艺术风格,并精准执行特定编辑指令,为创意表达开辟了全新可能。

以 Flux.1为基础

PhotoDoodle的核心是研究团队首先开发的OmniEditor系统,它巧妙地利用LoRA(低秩自适应)技术对德国初创公司Black Forest Labs的Flux.1图像生成模型进行了改良。这种方法不需要彻底重塑原始模型的权重,而是通过添加专用小型矩阵实现从微小概念调整到完整风格转换的能力。

随后,研究人员采用名为EditLoRA的变体训练OmniEditor,使其能够复制独特的艺术风格。通过与艺术家合作创建的精选图像对,系统得以掌握每种艺术风格的精妙之处。

在这里插入图片描述
PhotoDoodle 在保留原始图像构图的同时添加了怪物、魔法效果和装饰插图等有趣元素。

“位置编码克隆”:保持画面和谐统一

PhotoDoodle最引人注目的创新是"位置编码克隆"技术。这项技术使AI能够记住原始图像中每个像素的确切位置,从而在添加新元素时保持画面构图的完整性,并确保新添加的元素自然融入背景。

这解决了传统图像编辑AI的关键痛点:要么改变整个图像风格,要么只能编辑局部区域,难以在保持原有视角和背景的同时融入新的装饰元素。而PhotoDoodle无需额外参数训练就能实现这一突破,大大提高了处理效率。

在这里插入图片描述
PhotoDoodle 使用各种艺术风格转换日常照片 - 从可爱的卡通怪物到手绘线条和色彩效果。

展望单图像训练

在实际测试中,PhotoDoodle轻松应对从"让猫变白一点"到"添加一只爬上建筑物的粉红色怪物"等各种复杂指令。与现有技术相比,它在图像与文本描述相似度等基准测试中表现卓越,无论是针对性编辑还是全局图像更改,都远超同类产品。

在这里插入图片描述
PhotoDoodle 与现有的 AI 图像编辑系统的比较可以明显看出特定提示的执行质量存在差异。| 图片:Huang 等人

目前,PhotoDoodle需要数十对图像和数千个训练步骤才能掌握新风格。研究团队已将目光投向更高效的单图像训练方法,并发布了一个包含六种不同艺术风格和300多对图像的数据集,相关代码也已在GitHub上开源,为未来研究提供了坚实基础。

地址:https://github.com/showlab/PhotoDoodle

快速上手

环境设置

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

conda create -n doodle python=3.11.10
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

diffusers推理

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")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值