OmniBooth:华为诺亚方舟联合港科大推出的图像生成框架

136 阅读3分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

多模态控制:支持文本和图像作为输入,实现多模态指令下的图像生成。
空间控制:用户可以通过定义掩码和提供文本或图像指导,精确控制图像中对象的位置和属性。
高维潜在信号:通过高维潜在控制信号,无缝整合空间、文本和图像条件,提供细粒度的图像合成控制。

正文(附运行示例)

OmniBooth 是什么

OmniBooth是由华为诺亚方舟实验室和港科大研究团队共同推出的图像生成框架,支持基于文本提示或图像参考进行空间控制和实例级定制。框架用用户定义的掩码和相关联的文本或图像指导精确控制图像中对象的位置和属性,提升文本到图像合成技术的可控性和实用性。

OmniBooth的核心在于创新的潜在控制信号,一种高维空间特征,能无缝整合空间、文本和图像条件,实现细粒度的图像合成控制。

公众号: 蚝油菜花 - OmniBooth

OmniBooth 的主要功能

  • 多模态指令控制:支持用文本提示或图像参考控制图像生成,实现多模态指令下的图像合成。
  • 空间控制与实例级定制:用户定义掩码和提供文本或图像指导精确控制图像中对象的位置和属性,实现实例级别的定制。
  • 高维潜在控制信号:基于潜在控制信号,无缝整合空间、文本和图像条件,提供统一的表示方法。
  • 灵活性和实用性:用户根据需要选择文本或图像作为多模态条件,增强生成图像的灵活性和实用性。

OmniBooth 的技术原理

  • 多模态嵌入提取
    • 文本嵌入:用CLIP文本编码器提取文本提示的嵌入向量。
    • 图像嵌入:用DINOv2特征提取器提取图像参考的嵌入向量,保留图像的身份和空间信息。
  • 潜在控制信号:将文本和图像嵌入向量绘制到高维的潜在控制信号中,信号包含空间信息和丰富的潜在特征。
  • 空间变形技术:用空间变形技术,有效地转换并整合图像嵌入到潜在控制信号中,保持图像的细节和结构。
  • 特征对齐网络和边缘损失函数
    • 开发特征对齐网络,将条件注入到潜在特征中。
    • 提出边缘损失以增强高频区域的监督,提高生成图像的质量和结构对齐。
  • 多尺度训练和随机模态选择策略:在训练阶段,模型用多尺度训练和随机模态选择策略,增强模型对不同分辨率和模态输入的适应性。

如何运行 OmniBooth

安装

  1. 克隆仓库
git clone https://github.com/Len-Li/OmniBooth.git
cd OmniBooth
  1. 设置环境
pip install torch torchvision transformers
pip install diffusers==0.26.0.dev0 
pip install albumentations pycocotools 
pip install git+https://github.com/cocodataset/panopticapi.git

准备数据集

  1. 下载COCONut数据集
cd data/coconut_dataset 
mkdir coco && cd coco
wget http://images.cocodataset.org/zips/train2017.zip
wget http://images.cocodataset.org/zips/val2017.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
unzip train2017.zip && unzip val2017.zip
unzip annotations_trainval2017.zip

准备检查点

下载以下模型并放置在./OmniBooth/ckp/目录下:

训练

bash train.sh

推理

bash infer.sh

生成的图像将保存在./vis_dir/目录下。

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦