就在昨日(23/06/25)晚上,在前段时间备受瞩目的 DragGAN 悄然发布了完整的源代码。笔者榜首时间测验上手体验,在踩了一些坑后,终于运用 Colab 跑成功了。简单记载如下

作用

依照常规,先放作用(无加快,Colab T4)

DragGAN 快速上手体验:强大但不完全强大(附 Colab 使用链接)

DragGAN 快速上手体验:强大但不完全强大(附 Colab 使用链接)

经典需求:让大象转个头

运转

本地运转

项目的源代码在 XingangPan/DragGAN: Official Code for DragGAN,假如你期望本地运转,能够参阅里边顺便的指引。关于 GPU 设备,我的测验里 8GB 显存应该足以运转了。 先 Clone 源代码:

git clone https://github.com/XingangPan/DragGAN

源码里有 conda 的 environment.yml ,能够拿 Conda 的方法创立虚拟环境;但没有顺便 requirements.txt。假如你期望运用 pip 装置依靠,据我测验,应该需要装置的依靠有:

pip install torch torchvision Ninja gradio huggingface_hub hf_transfer

运用以下命令下载模型:

# 下载 human 模型
wget -O DragGAN/checkpoints/stylegan_human_v2_512.pkl --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1dlFEHbu-WzQWJl7nBBZYcTyo000H9hVm' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1dlFEHbu-WzQWJl7nBBZYcTyo000H9hVm" && rm -rf /tmp/cookies.txt
# 下载更多类型的模型
cd DragGAN && sh scripts/download_model.sh

然后直接运转

cd DragGAN && python visualizer_drag_gradio.py

即可用 Gradio 打开;或者参阅官方的 README 履行 visualizer_drag.py

Colab

关于我,鉴于没得 GPU 设备,只能去用免费的 GPU 资源。这儿选择的是 Google Colab,门槛只需要一个 Google 账号。大家也能够点击 我的 Colab 笔记本链接 自行运转即可。注意,运转时一定要选 GPU 类型的

成功的截图如下:

DragGAN 快速上手体验:强大但不完全强大(附 Colab 使用链接)

运用

打开的终究页面如下,左边是操作区,右侧是图片的展示。简单列举一下:

DragGAN 快速上手体验:强大但不完全强大(附 Colab 使用链接)

左上角: 如下图,左上角榜首栏是选择现有的模型,第二栏 “Seed” 用于控制随机种子(同一个种子生成的图片是相同的),下面的 Step Size 用于设置迭代的步幅。

DragGAN 快速上手体验:强大但不完全强大(附 Colab 使用链接)

整个的根本操作逻辑是:

  1. 输入种子,生成一张图
  2. 鼠标点击图片上的方位开端 “选点”,两个一组,分别控制变换的 “开端方位” 和 “完毕方位”。
  3. 完成后点击 Start 开端变换,到差不多了你能够点个 Stop 手动停止

别的作者也附了一些说明,翻译如下:

快速开端

  1. 选择所需的预训练模型,并调整种子(Seed)生成初始图画。
  2. 点击图画以添加控制点。
  3. 点击开端,尽情享用!

高级用法

  1. 调整步长(Step Size)以调整拖拽优化中的学习率。

  2. 选择ww+来改动潜空间以进行优化:

    • w空间上进行优化可能对图画发生较大影响。
    • w+空间上进行优化可能比w空间更慢,但一般能够取得更好的结果。
  3. 请注意,改动潜空间将重置图画、控制点和蒙版(这发生与重置图画按钮相同的作用)。

  4. 点击修改可弹性区域 (Edit Flexible Area) 以创立蒙版,并约束未被遮罩的区域保持不变。

结语

现在来回答我的标题:为什么说 “强壮但不彻底强壮” 呢?
首先,“强壮” 是因为这样的作用的确很冷艳,榜首眼看上去的确很有未来的风格;但很明显它的运用价值并不那么高,比如说:

  • 它的图片是 StyleGAN 生成的,也就是说现在并不能随意拿一张图片让它 P
  • 两个点作为引导,不可控的因素太多了。很多时候图片的变化和你的预期并不匹配。假如能做到多模态,和语言模型相结合,能经过类似于 “衣服从上至下第三颗纽扣向左移一点”,是不是更魔幻一点
  • 有时候某些奇奇怪怪的元素会面目全非,比如下面的这个包

DragGAN 快速上手体验:强大但不完全强大(附 Colab 使用链接)

完。