零样本图像编辑与参考模仿
陈曦
·
冯宇同
·
陈梦婷
·
王一扬
·
张世龙
·
刘宇
·
沈予军
·
赵恒爽
香港大学 | 阿里巴巴集团 | 蚂蚁集团
新闻
- [2024.06.12] 发布推断代码,本地 Gradio 演示,在线演示。
- [待办] 发布我们的基准。
社区贡献
@AIFSH 制作的 ComfyUI 版本
安装
使用 conda
安装:
conda env create -f environment.yaml
conda activate mimicbrush
或者 pip
:
#Python==3.8.5
pip install -r requirements.txt
下载检查点
下载 SD-1.5 和 SD-1.5-inpainting 检查点:
- 可以从 HuggingFace 下载 stable-diffusion-v1-5 和 stable-diffusion-inpainting
- 不过,上述仓库包含许多不会用到的模型,我们提供了一个干净版本在 cleansd
下载 MimicBrush 检查点及 VAE、CLIP 编码器和深度模型
- 从 ModelScope 下载权重 xichen/MimicBrush
- 该模型包含两个 U-Nets,因此文件较大。
可以使用以下代码从 ModelScope 下载
from modelscope.hub.snapshot_download import snapshot_download as ms_snapshot_download
sd_dir = ms_snapshot_download('xichen/cleansd', cache_dir='./modelscope')
print('=== 预训练的 SD 权重已下载 ===')
model_dir = ms_snapshot_download('xichen/MimicBrush', cache_dir='./modelscope')
print('=== MimicBrush 权重已下载 ===')
或者从 Huggingface 下载
from huggingface_hub import snapshot_download
snapshot_download(repo_id="xichenhku/cleansd", local_dir="./cleansd")
print('=== 预训练的 SD 权重已下载 ===')
snapshot_download(repo_id="xichenhku/MimicBrush", local_dir="./MimicBrush")
print('=== MimicBrush 权重已下载 ===')
Gradio 演示
首先,修改 ./configs/inference.yaml
设置模型权重路径。然后运行脚本:
python run_gradio3_demo.py
Gradio 演示的界面如下图所示。
*请不要忘记点击“保持原始形状”选项,如果想要进行纹理转移,类似于第三个案例。
简短教程:
- 上传或选择待编辑的源图像。
- 在源图像上绘制待编辑区域。
- 上传或选择参考图像。
- 运行。
推断
-
从 Google Drive 下载我们的评估基准:
- URL: [待发布]
-
在
./config/inference.yaml
中设置每个数据集和检查点的路径: -
运行推断
python run_inference_benchmark.py
致谢
本项目基于 IP-Adapter 和 MagicAnimate 代码库开发,感谢这些伟大工作!
引用
如果您认为我们的代码库对您的研究有帮助,请使用以下条目。
@article{chen2024mimicbrush,
title={Zero-shot Image Editing with Reference Imitation},
author={陈曦, 冯宇同, 陈梦婷, 王一扬, 张世龙, 刘宇, 沈予军 和 赵恒爽},
journal={arXiv preprint arXiv:2406.07547},
year={2024}
}