一 引言
AnyDoor是一种基于扩散模型的图像生成模型,以非常和谐的方式将目标对象传送到用户制定位置的新场景的能力。过程中不需要为每个对象调整参数,只需要训练一次,并在推理阶段适用于各种不同的对象-场景组合。
AnyDoor这样的具有挑战型的zero shot的图像生成方法需要针对特定的目标对象进行特征化,我们用细节特征补充过去常用的ID特征,细节特征保持了目标的纹理细节,并允许适配场景的通用的局部的变化(例如,光线、方向、姿势等),支持对象和不同的周围环境场景的适配。同时,我们进一步的从视频数据中获取知识,通过视频数据观察单个目标对象的沿着时间轴各种形式,来保障了AnyDoor模型的鲁棒性和概括性。
AnyDoor的整体Pipeline如下图所示,首先采用分割模块从目标图像中去掉背景,然后使用ID提取器获取对象的身份信息,然后通过高通滤波器处理无背景的目标图像,形成hf-map并和所需位置的场景信息拼接在一起。然后采用细节提取器获取目标图像的纹理细节,作为ID提取器的补充。最后讲ID token和detail map注入到通过视频等信息训练好的预训练模型,从而生成最终的合成图片,其中目标对象与其周围环境场景顺利融合,同时目标对象配合场景有适当的局部变化,其中火焰和雪花分别指可学习参数和冻结参数。
该技术上线后,短时间内成为github global trending榜No.1,期待AnyDoor这样的AI技术,成为大家的哆啦A梦,完成童年梦想!
二、模型体验
魔搭创空间地址:https://modelscope.cn/studios/damo/AnyDoor-online
mask后的桌面(场景)和小鸭子(目标)
mask后的女子(场景)和衣服(目标)
三、环境准备
环境配置与安装
- python 3.8及以上版本
- pytorch 1.12及以上版本,推荐2.0及以上版本
- 建议使用CUDA 11.4及以上
本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :
第一步:点击模型右侧Notebook快速开发按钮,选择GPU环境
第二步:新建Notebook
第三步:环境依赖最新的modelscope的library
!git clone https://github.com/modelscope/modelscope.git %cd modelscope !pip install .
四、模型推理
模型推理代码:
from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks ref_image = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_anydoor_fg.png' ref_mask = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_anydoor_fg_mask.png' bg_image = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_anydoor_bg.png' bg_mask = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_anydoor_bg_mask.png' anydoor_pipline = pipeline( Tasks.image_to_image_generation, model='damo/AnyDoor_models') out = anydoor_pipline((ref_image, ref_mask, bg_image, bg_mask)) image = out['output_img'] image.save('output/image_anydoor_gen.png')
快来体验任意门(AnyDoor)吧!