[CVPR2024 精选] MIGC: 多实例生成控制器,用于文本到图像合成
[MIGC 论文] [MIGC++ 论文] [项目页面] [知乎]
🔥🔥🔥 新闻
- 2024-07-03: 迭代编辑模式 "Consistent-MIG" 已可用!
- 2024-07-02: MIGC++ 论文发布!
待办事项
- 项目页面
- 代码
- COCO-MIG 基准测试
- 预训练权重在 SD1.4 上
- WebUI
- Colab 演示
- MIGC++ 预训练权重
- 预训练权重在 SD1.5、SD2、SDXL 上(请注意,MIGC_SD14.ckpt 可以直接用于 SD1.5 模型。)
画廊
安装
Conda 环境配置
conda create -n MIGC_diffusers python=3.9 -y
conda activate MIGC_diffusers
pip install -r requirement.txt
pip install -e .
检查点
下载 MIGC_SD14.ckpt (219M) 并放置在 'pretrained_weights' 文件夹下。
├── pretrained_weights
│ ├── MIGC_SD14.ckpt
├── migc
│ ├── ...
├── bench_file
│ ├── ...
单图生成
通过使用以下命令,你可以快速生成一张使用 MIGC 的图像。
CUDA_VISIBLE_DEVICES=0 python inference_single_image.py
以下是基于稳定扩散 v1.4 生成的图像示例。
🚀 增强的属性控制: 对于那些寻求更细致属性管理的人来说,可以考虑探索 python inferencev2_single_image.py
脚本。这个高级版本 InferenceV2
大大改善了属性泄漏问题。通过接受推理时间略有增加,它将 COCO-MIG 基准的实例成功率从 66% 提升到 68%。值得一提的是,增加 NaiveFuserSteps
也可以增强属性控制。
💡 多样化的图像生成: MIGC 作为一个即插即用的控制器,能够创建具有无与伦比的多样性和质量的图像。只需更换不同的基础生成器权重,你就可以获得类似于我们 画廊 中所展示的结果。例如:
[新] 🌈 迭代编辑模式: Consistent-MIG 算法改进了 MIGC 的迭代 MIG 能力,使得在保持未修改区域一致性的同时,修改 MIG 中的某些实例并最大限度地保持修改实例的ID一致性。你可以探索 python inference_consistent_mig.py
脚本来了解用法。例如:
训练
由于公司要求,我们无法公开 MIGC 的训练代码。暂时我们只能为社区提供处理 COCO 数据集数据(即获取每个实例的框和字幕)所使用的脚本。相关代码位于 'data_preparation' 文件夹中。如果将来有任何变动,例如他们授予权限,我们将开源。
COCO-MIG 基准
为了验证模型的在位置和属性控制方面的性能,我们设计了 COCO-MIG 基准测试进行评估和验证。
通过使用以下命令,你可以快速运行我们的 COCO-MIG 基准测试方法:
CUDA_VISIBLE_DEVICES=0 python inference_mig_benchmark.py
我们抽样了 800 张图片 并将 MIGC 与 InstanceDiffusion、GLIGEN 等进行比较。在 COCO-MIG 基准测试中,结果如下所示。
方法 | MIOU↑ | 实例成功率↑ | 模型类型 | 刊物 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
L2 | L3 | L4 | L5 | L6 | 平均值 | L2 | L3 | L4 | L5 | L6 | 平均值 | |||
Box-Diffusion | 0.37 | 0.33 | 0.25 | 0.23 | 0.23 | 0.26 | 0.28 | 0.24 | 0.14 | 0.12 | 0.13 | 0.16 | 无训练 | ICCV2023 |
Gligen | 0.37 | 0.29 | 0.253 | 0.26 | 0.26 | 0.27 | 0.42 | 0.32 | 0.27 | 0.27 | 0.28 | 0.30 | 适配器 | CVPR2023 |
ReCo | 0.55 | 0.48 | 0.49 | 0.47 | 0.49 | 0.49 | 0.63 | 0.53 | 0.55 | 0.52 | 0.55 | 0.55 | 全模型调优 | CVPR2023 |
InstanceDiffusion | 0.52 | 0.48 | 0.50 | 0.42 | 0.42 | 0.46 | 0.58 | 0.52 | 0.55 | 0.47 | 0.47 | 0.51 | 适配器 | CVPR2024 |
我们的 | 0.64 | 0.58 | 0.57 | 0.54 | 0.57 | 0.56 | 0.74 | 0.67 | 0.67 | 0.63 | 0.66 | 0.66 | 适配器 | CVPR2024 |
MIGC-GUI
我们将 MIGC 与 GLIGEN-GUI 结合起来,使用户的艺术创作更加方便。🔔此 GUI 仍在优化中。如果你有任何问题或建议,请通过 zdw1999@zju.edu.cn 联系我。
开始使用 MIGC-GUI
步骤 1:下载 MIGC_SD14.ckpt 并将其放置在 pretrained_weights/MIGC_SD14.ckpt
。🚨如果你已经在安装阶段完成了此步骤,可以跳过。
步骤 2:下载 CLIPTextModel 并将其放置在 migc_gui_weights/clip/text_encoder/pytorch_model.bin
。
步骤 3:下载 CetusMix 模型并将其放置在 migc_gui_weights/sd/cetusMix_Whalefall2.safetensors
。或者,你可以访问 civitai 以下载你喜欢的其他模型,并将它们放置在 migc_gui_weights/sd/
。
├── pretrained_weights
│ ├── MIGC_SD14.ckpt
├── migc_gui_weights
│ ├── sd
│ │ ├── cetusMix_Whalefall2.safetensors
│ ├── clip
│ │ ├── text_encoder
│ │ │ ├── pytorch_model.bin
├── migc_gui
│ ├── app.py
步骤 4:cd migc_gui
步骤 5:通过运行 python app.py --port=3344
启动应用程序。你现在可以通过 http://localhost:3344/ 访问 MIGC GUI。你可以根据需要更改端口。
MIGC-GUI中的 Consistent-MIG
在 IMAGE DIMENSIONS
区域中勾选 EditMode
按钮并试试吧!
MIGC + LoRA
MIGC 结合 LoRA, 可以实现强大的属性和位置控制功能。🚀我们将在未来将此功能整合到 MIGC-GUI 中,敬请期待!🌟👀
道德考量
MIGC 提供的广泛图像创建可能性可能会带来与许多其他基于文本生成图像方法类似的道德问题。
🏫关于我们
感谢你对这个项目的兴趣。该项目由浙江大学计算机科学与技术学院的 ReLER 实验室和 HUAWEI 监督。ReLER 由浙江大学的 Qiu Shi 杰出教授 杨义 创立。我们的贡献团队包括 周德威, 李祐, 谢基, 马梵, 杨宗信, 杨义。
联系我们
如果你有任何问题,请通过电子邮件联系我:zdw1999@zju.edu.cn
致谢
我们的工作基于 stable diffusion, diffusers, CLIP 和 GLIGEN-GUI。我们感谢他们的出色贡献。
引用
如果你觉得这个仓库有用,请使用以下 BibTeX 条目进行引用。
@misc{zhou2024migc,
title={MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis},
author={Dewei Zhou and You Li and Fan Ma and Xiaoting Zhang and Yi Yang},
year={2024},
eprint={2402.05408},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{zhou2024migcadvancedmultiinstancegeneration,
title={MIGC++: Advanced Multi-Instance Generation Controller for Image Synthesis},
author={Dewei Zhou and You Li and Fan Ma and Zongxin Yang and Yi Yang},
year={2024},
eprint={2407.02329},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2407.02329},
}