超炫酷项目来袭!DragGAN 正式开源了!

之前树先生给大家介绍过一个项目 DragGAN,现在正式开源了!

超炫酷项目来袭!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 部署费了好大劲,有点累了,记得三连啊~