之前树先生给大家介绍过一个项目 DragGAN,现在正式开源了!
那还等什么,盘它!
DragGAN 是什么?
不同于 Stable Diffusion 与 Midjourney 使用的扩散模型,DragGAN 是一款基于生成对抗网络(GANs)技术的图片编辑项目。追根溯源,其实还是 NVIDIA 的 StyleGAN 的衍生项目。
DragGAN 由两个主要部分组成:
第一部分是基于特征的运动监督,通过控制起始点向目标点运动,实现图像的变形;
第二部分是新的点跟踪方法,即最近邻检索,通过在相同的特征空间上进行点跟踪,提高了效率,并避免了累计误差损失。
简单来说,它能够让你轻松掌控图片中的人物和动物,通过拖拽控制点和目标点来调整他们的位置、形状、姿势等等。目前这个项目在 Github 上已经斩获了 20K star 了,趋势榜第一,足见其火爆程度!
部署要求
- 支持 Linux 和 Windows,建议使用 Linux
- 内存 12 GB 以上
- 1–8 NVIDIA 高端 GPU
- Python >= 3.8,PyTorch >= 1.9.0
- CUDA toolkit >= 11.1
安装部署
安装过程,真是一把鼻涕一把泪,到处都是坑,先是在阿里 PAI 平台栽跟头,折腾好久才发现是基础环境问题,后来又在安装方法上翻了车,官方的安装指导也是各种报错。
一路艰难摸索过来,现在将实测可行的一套部署方法带给大家。
这里我们选择 AutoDL 云平台,使用 Python 3.8,CUDA 11.8 的镜像,这个镜像的环境就已经满足项目要求了。
下载源码
git clone https://github.com/XingangPan/DragGAN.git
安装依赖
cd DragGAN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
如果出现下面的报错,代表这个 pip 源里没有对应的版本。
修改 requirements.txt
文件,去除特定版本依赖,再次执行即可。
torch>=2.0.0 scipy Ninja==1.10.2 gradio>=3.35.2 imageio-ffmpeg>=0.4.3 huggingface_hub hf_transfer pyopengl imgui glfw==2.6.1 pillow>=9.4.0 torchvision>=0.15.2 imageio>=2.9.0
下载模型
sh scripts/download_model.sh
运行
这里选择运行 WebUI,看到 URL 就代表启动成功了。
# 运行 WebUI python visualizer_drag_gradio.py
效果展示
使用上非常简单,鼠标在图中点点就行,红点是起始点,蓝点是目标点,实现图像的拖拽效果。
还可以控制区域图像,避免整体图像跟着变化。
很多人都以为这个项目能直接选一张照片,就能像 PS 一样进行 P 图了,其实并不是,至少目前还不支持,上面你看到的这些图片都是经过训练而生成的模型,所以本质上,你是在操作一个模型,而非图片!
如果你想操作自己的图片,那么按官网说的,你需要使用到 PTI 项目,将你自定义的图片训练成 StyleGAN 模型。
这部分内容下期再介绍,折腾 DragGAN 部署费了好大劲,有点累了,记得三连啊~