玩一玩让照片跳舞的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文件夹下面!
要点都在上面了。
如果出现问题,大概率是魔法不够强大。
需要一键包运行软件包的,记得点赞,转发,在看!
晚安,玩的开心!