玩一玩让照片跳舞的magic-animate!

一张照片就能换脸已经不是新鲜事儿。

现在只要一张照片,就能控制整个身体了。

今天就来搞一搞magic-animate这个项目。

项目主页:https://showlab.github.io/magicanimate/

magic-animate的官方介绍是“Temporally Consistent Human Image Animation using Diffusion Model” ,翻译过来大概就是“使用扩散模型实现时间上一致的人体图像动画” 。

官方翻译往往比较枯燥,说的带感一点就是,只要一张小姐姐的照片,你就能为所欲为了!想看什么姿势就看什么姿势。

或者说,一个抠脚大汉,可以秒变美少女扭屁股,去收割另一群抠脚大汉了…哈哈哈!

这种技术一旦成熟,那简直就是…AI核武器啊!

做这方面的研究的人其实早就有了,也出现一些demo。但是整体来说就是Demo还不错,实际效果非常拉跨。

上面就是多个类似项目的对比图。经过AI处理后,很多项目的结果都不成人形了。

magic-animate是新鲜出炉的一个项目,跑了下Demo,感觉效果还可以。

除了脸部和手部细节依旧不太行之外,身体的姿态和形态保持的不错。

可以装一个练练手,然后坐等升级。

下面就记录一下我安装配置的过程,让大家可以少消耗点脑细胞和时间。

首先,电脑和显卡自备。

其次,Windows,Conda, git 这些默认你已经搞定了。

接下来就可以开始实操了。

1. 获取源代码

git clone https://github.com/magic-research/magic-animate.git

推荐命令行方式获取,不会就去github上直接下载zip压缩包,然后解压!

2. 安装依赖

 

获取源代码之后,就可以开始安装依赖了。

项目主页推荐的方式是:

 

conda env create -f environment.yaml
conda activate manimate

我比较推荐的方式是:

conda create -n manimate python=3.10
conda activate manimate
pip3 install -r requirements.txt

上面一种更适合conda,但是pip更通用,包更容易找到。

实际上这里会遇到一个问题。

打开依赖文件,可以看到大概有127个依赖包….没开始装就有点慌了,这得有多少版本匹配的问题啊。

实际上在windows上安装也会出现问题。

主要是两个问题,一个是有些包没有,一个是默认只安装cpu版torch。

这个时候,可以参考Githubu上的另一个针对windows的分支。

https://github.com/sdbds/magic-animate-for-windows

地址如上,只要拿到它的requirements-windows.txt ,放到原项目中。

然后把上面的安装命令替换成:

pip3 install -r requirements-windows.txt

这样就可以了。

3. 准备模型

安装完成依赖之后,就需要开始准备模型了。这次用到了模型又是一箩筐。先记住下面这个模型放置结构。

 

magic-animate
|----pretrained_models
  |----MagicAnimate
    |----appearance_encoder
      |----diffusion_pytorch_model.safetensors
      |----config.json
    |----densepose_controlnet
      |----diffusion_pytorch_model.safetensors
      |----config.json
    |----temporal_attention
      |----temporal_attention.ckpt
  |----sd-vae-ft-mse
    |----...
  |----stable-diffusion-v1-5
    |----...
|----...

 

首先需要在这个项目的根目录,创建一个名为pretrained_models的模型文件夹。

然后在下面创建三个子文件夹。

一个是MagicAnimate

一个是sd-vae-ft-mse

一个是stable-diffusion-v1-5

这三个项目都可以再huggingface上找到,项目主页也给出了链接。

以magicAnimate为例:

git lfs clone https://huggingface.co/zcxu-eric/MagicAnimate

可以直接使用上面的命令下载,也可以直接到网页上一个一个点击下载。

友情提示:这个网站需要魔法!

另一个友情提示:这里涉及到几十G的模型文件,准备好足够的空间。

并不是所有的模型文件都有用,但是还不确定哪个有用哪个没用,所以一股脑把三个链接里的模型都下载了。

4. 运行网页版demo

经过“简单”的配置,就可以运行demo了。项目里面包含了基于gradio的例子。

只要执行命:

#单卡
python -m demo.gradio_animate
#多卡
python -m demo.gradio_animate_dist

 

运行命令后,会先去加载各种模型。

如果这里出错了,要么你显存,内存不够,要么就是模型没放全。

加载完成之后出现网址。

 

Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://6bd3da0bc741c6b6ef.gradio.live

第一个网址供本地电脑使用。

第二个网址可以供远程用户体验。

我也是刚意识到,原来还可以直接启用外网地址。

这种方式挺好的,不需要你自己去做IP绑定映射之类的操作,复制网址,外网的人就可以直接访问你电脑上启用的这个网页服务了。

你搞定之后,可以给朋友们秀一把。

当然这个外网地址只有72小时的时效。

打开网址之后,就可以进行可视化操作了。

操作非常简单。

你需要准备一张图片,可以一个驱动视频。

图片么你随意,但是驱动视频需要做过预处理的。

有专门的预处理工具,下一次再说。

这里推荐用项目自带的视频和图片,先体验一下。

点一下①处的演示素材,②③处就会自动填充。

然后点一下④的按钮,最终结果会显示再⑤这里。

处理过程需要一些时间,大概几分钟的样子。

这个过程中网页版界面上可能会出现错误提示,但是后台进度条一直在工作的,对比发现可能是用外网地址访问的原因,所以本地测试还是推荐用本地地址。

正常运行结束之后,界面上会显示处理好的视频,可以直接播放预览。

也可以再文件夹demo下面的outputs里面找到MP4视频。

打开视频可以发现,蒙娜丽莎的微笑变成了奔跑的蒙娜丽莎了。

实话实说,脸和手是不像的。但是画面的颜色,肤色,身体比例,以及动作都是传递的比较好的。

实际有啥用还不确定,娱乐效果是拉满了。

5. 运行命令行版demo

鉴于我第一次网页版运行出错了,另外网页版默认生成3连动画。所以还是有必要介绍一下命令行版本。

运行命令行版本也很简单:

 

#单卡
python3 -m magicanimate.pipelines.animation --config configs/prompts/animation.yaml
#多卡
python3 -m magicanimate.pipelines.animation --config configs/prompts/animation.yaml --dist

理论上坐等结果就可以了。实际上运行过程会报错。

错在配置文件里配置了一张不存在的图片了。

只需要把0002.png 和下面对应的demo4.mp4这两行删除即可。

如果你要用自己的图片,只要再这里添加即可,然后配置好对应的驱动视频。

运行完成之后,结果文件保存在samples文件夹下面!

要点都在上面了。

如果出现问题,大概率是魔法不够强大。

需要一键包运行软件包的,记得点赞,转发,在看!

晚安,玩的开心!

 

小尾巴==========================
公众号:托尼不是塔克
交流群
知识星球
==============================