项目简介
合成满足用户需求的视觉内容通常需要对生成对象的姿势、形状、表情和布局进行灵活而精确的控制。现有的方法通过手动注释的训练数据或先前的3D模型来获得生成对抗网络(GAN)的可控性,这通常缺乏灵活性、精确性和通用性。在这项工作中,我们研究了一种强大但较少探索的控制GAN的方法,即以用户交互的方式“拖动”图像的任何点以精确地到达目标点,如图所示。
为了实现这一目标,我们提出了DragGAN,它由两个主要部分组成:
- 基于特征的运动监督,它驱动控制柄点向目标位置移动;
- 新的点跟踪方法,它利用判别GAN特征来保持控制柄点的位置。通过DragGAN,任何人都可以精确控制像素的位置来变形图像,从而操纵姿势、形状、表情和布局等不同类别,如动物、汽车、人类、风景等。
- 由于这些操作是在GAN的已学习生成图像流形上进行的,因此即使在幻觉遮挡内容和变形形状始终遵循对象的刚性等具有挑战性的情况下,它们也倾向于产生逼真的输出。定性和定量比较都证明了DragGAN在图像操纵和点跟踪任务中优于现有方法。我们还展示了通过GAN反转对真实图像的操纵。
开发人员
Xingang Pan · Ayush Tewari · Thomas Leimkühler · Lingjie Liu · Abhimitra Meka · Christian Theobalt
项目地址
https://vcai.mpi-inf.mpg.de/projects/DragGAN/
项目实操
效果展示
安装
如果您有CUDA图形卡,请遵循NVlabs/stylegan3的要求。通常的安装步骤包括以下命令,它们应该设置正确的CUDA版本和所有python包conda env create -f environment.yml
conda activate stylegan3然后安装额外的要求pip install -r requirements.txt否则(在具有Silicon Mac M1/M2的MacOS上使用GPU加速,或者只使用CPU),请尝试以下步骤:cat environment.yml | \
grep -v -E 'nvidia|cuda' > environment-no-nvidia.yml && \
conda env create -f environment-no-nvidia.yml
conda activate stylegan3
# 在MacOS上
export PYTORCH_ENABLE_MPS_FALLBACK=1在Docker中运行Gradio可视化器 提供的Docker镜像基于NGC PyTorch存储库。要快速尝试在Docker中运行可视化器,请执行以下操作:# 在构建docker容器之前,请确保您已克隆了此存储库,并通过 `python scripts/download_model.py` 下载了预训练模型。
docker build . -t draggan:latest
docker run -p 7860:7860 -v "$PWD":/workspace/src -it draggan:latest bash
# (使用GPU)如果您想要在Docker中利用Nvidia GPU进行加速,请添加命令标签 `--gpus all`,例如:
# docker run --gpus all -p 7860:7860 -v "$PWD":/workspace/src -it draggan:latest bash
cd src && python visualizer_drag_gradio.py --listen现在,您可以从Gradio中打开一个共享链接(在终端控制台中打印出来)。 请注意,Docker镜像大约占用25GB的磁盘空间!下载预训练的StyleGAN2权重 要下载预训练权重,只需运行:python scripts/download_model.py如果您想尝试StyleGAN-Human和Landscapes HQ(LHQ)数据集,请从这些链接下载权重:StyleGAN-Human、LHQ,并将它们放在./checkpoints目录下。随意尝试其他预训练的StyleGAN。运行DragGAN GUI 要启动DragGAN GUI,只需运行:sh scripts/gui.sh如果您使用Windows,可以运行:.\scripts\gui.bat此GUI支持编辑GAN生成的图像。要编辑真实图像,您需要首先使用诸如PTI之类的工具执行GAN反演。然后将新的潜在代码和模型权重加载到GUI中。您还可以运行DragGAN Gradio演示,这对Windows和Linux都是通用的:python visualizer_drag_gradio.py致谢 此代码是基于StyleGAN3开发的。代码的一部分是从StyleGAN-Human中借用的。许可证 与DragGAN算法相关的代码在CC-BY-NC许可下发布。然而,大部分项目都根据单独的许可条款提供:所有从StyleGAN3中使用或修改的代码都在Nvidia源代码许可下提供。任何形式的使用和对此代码的派生都必须保留显示“AI生成”水印功能。