DesignEdit: 多层潜在分解和融合用于统一和精准的图像编辑
Stable Diffusion XL 1.0 实现
项目主页 论文 Hugging Face 演示
✨ 新闻 ✨
- [2024/4/4] 我们已在 Hugging Face 🤗 上支持 Gradio 应用,欢迎您在线设计,无需本地部署。
- [2024/3/28] 我们发布了 DesignEdit 的代码!让我们一起来设计吧!😍
环境配置
所需的 Python 版本是 3.10.12,Pytorch 版本是 2.0.1。 代码框架基于 Prompt-to-prompt 和 Stable Diffusion 构建。
其他所需的包列在 requirements 文件中。
conda create -n DesignEdit python=3.10.12
conda activate DesignEdit
pip install -r requirements.txt
请注意,我们的模型完全是免训练的💪!!!基础模型是 Stable Diffusion XL-1.0。
演示
我们使用 Gradio 创建了一个交互式界面,如下所示。您只需在我们之前设置的环境中简单运行以下命令:
python design_app.py
🖱️使用方法
- 我们有 5 个功能页面用于不同的编辑操作。
💡对象移除
💡缩放
💡相机平移
💡对象移动、调整大小和翻转
💡多层编辑
- 您可以按照每个页面内的"使用方法"说明进行操作。
- 对于每个页面,我们还提供了一些有趣的示例供您尝试。
-
请注意,多层编辑页面使用多层表示进行多种编辑任务,可以在通用表示中实现与对象移除和对象移动、调整大小和翻转相同的结果。
-
此外,我们添加了"遮罩准备"页面,供您使用 SAM 或草图来组合多个遮罩。这在您使用多层编辑页面时可能会有用。
更多细节
如果您有兴趣探索更多关于模型实现的细节,我们建议查看 model.py
。特别注意 register_attention_control()
函数和 LayerFusion
类。
应用
关于更多应用,我们诚挚邀请您探索我们的项目主页并参考我们的论文。
💡对象移除
您可以在对象移除页面选择多个对象进行移除,也可以遮罩不规则区域进行移除。
💡对象移除与精细遮罩
直接使用移除遮罩可能会导致伪影,精细遮罩表示可能导致伪影的区域。您可以转到对象移除页面进行探索。
💡相机平移和缩放
您可以使用相机平移和缩放页面实现不同尺度和方向的编辑。
图像调整和遮罩准备的说明如下所示。
💡多对象编辑:移动、调整大小、翻转
您可以在对象移动、调整大小和翻转页面实现单个对象的移动、调整大小和翻转, 对于多对象编辑如交换和添加,您可以转到多层编辑页面。
💡跨图像合成
通过选择一张图像作为背景,并指定前景图像的位置、大小和放置顺序,我们可以实现跨图像合成。您可以在多层编辑页面尝试示例。
💡文字重新排版
文字重新排版指的是设计元素的特定使用,您可以在多层编辑页面实现。
致谢
我们的项目得益于几个杰出项目和技术的贡献。我们对以下项目表示感谢:
-
Prompt-to-Prompt:提供了创新的 prompt 工程方法。
-
Proximal-Guidance:提供了前沿的反演技术,显著提高了我们模型的性能。
-
DragonDiffusion:为 Gradio 界面和高效的 SAM API 集成提供了灵感。
这些项目在我们工作的发展中都发挥了至关重要的作用。我们感谢他们的贡献者与社区分享他们的专业知识和资源。
BibTeX
@misc{jia2024designedit,
title={DesignEdit: Multi-Layered Latent Decomposition and Fusion for Unified & Accurate Image Editing},
author={Yueru Jia and Yuhui Yuan and Aosong Cheng and Chuke Wang and Ji Li and Huizhu Jia and Shanghang Zhang},
year={2024},
eprint={2403.14487},
archivePrefix={arXiv},
primaryClass={cs.CV}
}