DragGAN完整教程:从零到拖拽编辑图像的5个关键步骤
【免费下载链接】DragGANOfficial Code for DragGAN (SIGGRAPH 2023)项目地址: https://gitcode.com/GitHub_Trending/dr/DragGAN
想让图里的人把手换个位置,在修图软件里只能重画。用 DragGAN 做拖拽式图像编辑,在图上点两个位置,人物就动过去,背景还能稳住。这篇教程带你走完环境配置,10 分钟上手这套点基图像编辑工具。
30秒跑起来:DragGAN 安装最短路径
环境要求:
- NVIDIA GPU(带 CUDA,推荐)或 Mac / CPU(可用但慢)
- Python 3.8+(用 conda 管理)
- PyTorch ≥ 2.0
第一步,克隆仓库并创建环境:
git clone https://gitcode.com/GitHub_Trending/dr/DragGAN cd DragGAN conda env create -f environment.yml && conda activate stylegan3第二步,装依赖并下载 StyleGAN2 预训练权重:
pip install -r requirements.txt python scripts/download_model.py第三步,启动 Gradio 网页界面:
python visualizer_drag_gradio.py浏览器会自动打开页面,左边控制面板、右边画布,先看到效果,后面再讲原理。
界面导览:左边四组控件 + 右边画布
界面只有两栏。左栏从上到下四组控件,各管一件事:
- Pickle:下拉选预训练模型(狮子、猫、狗、人像等),换模型即重新生成
- Latent:Seed 决定初始画面,Step Size 控制拖拽步幅
- Drag:Add Points 加控制点,Start / Stop 开始和暂停优化
- Mask:Edit Flexible Area 画"可动区域",锁住其他部分
选完模型,画布会自动生成图像,没有单独的"生成"按钮;改 Seed 也会立刻重画。
用 StyleGAN-Human 模型生成的全身人像适合做拖拽练习:
图:DragGAN 的 StyleGAN-Human 模型生成样本,姿态与服装各异
核心玩法拆解:三个场景走通拖拽编辑
场景一:生成一张你想改的底图
目标:先拿到一张想编辑的图。
操作:
- Pickle 下拉选一个模型(比如狮子或人像)
- 改 Seed 数值,画布即时重画
- 换到满意的那张
效果:同一模型换种子就是不同的个体。挑定底图后,后面所有拖拽都基于它。
场景二:点两下,把人挪个位置
目标:把图里人物的手臂移到另一个位置。
操作:
- 点 Add Points 进入加点模式
- 在第一张图上点一下,落下红色起点(点在要移动的手臂上)
- 再点一下,落下蓝色终点(目标位置)
- 点 Start,画面开始连续优化,手臂逐渐移向终点
效果:红点越靠近蓝点,说明越到位。不满意就点 Reset Points 清掉重摆,再 Start 一轮。点基优化的核心逻辑在 viz/renderer.py,想深挖原理从这里入手。
场景三:锁住背景,只动该动的地方
目标:拖拽时不想让背景、脸跟着变形。
操作:
- 点 Edit Flexible Area
- 用画笔在图上涂出"允许变化"的区域
- 勾 Show Mask 确认覆盖范围,点 Start
效果:mask 内的图像跟随拖拽走,mask 外被钉在原位。Lambda 数值调大,锁定约束更强。
下面是人像编辑的实际效果合集:
图:DragGAN 人像编辑演示,多种全身姿态与服装变化效果
进阶技巧:两个容易忽略的开关
w / w+ 潜空间二选一。w+ 更慢但改动精准,是默认值;w 一步影响范围更大、更快。⚠️ 切换潜空间会重置图像、点和 mask,等同按了一次 Reset Image。
编辑真实照片。DragGAN 只能拖 GAN 生成的图;真实照片要先做 GAN 反转——用 PTI 一类工具把照片映射成潜码,再把潜码和对应模型权重一起加载进界面,之后拖法完全一样。相关实现见 stylegan_human/pti/。
你可能卡住的 3 个地方
模型下拉框是空的、画布不出图权重没下载。回到仓库根目录跑
python scripts/download_model.py,模型会自动放进./checkpoints。拖拽很慢、画面一顿一顿确认 GPU 真正在跑(CUDA 版本和 PyTorch 要匹配);如果只能在 CPU 或 Mac 上跑,就减少控制点数量,或换小分辨率的模型,别指望流畅度。
点完 Start,画面"糊了"或乱跑起点选在了模糊区域(头发边缘、阴影处),或 Step Size 偏大。点 Reset Points 重选一个特征明显的点,并把 Step Size 从 0.001 往下调到 0.0005 试试。
写在最后
DragGAN 把"把这个人挪一点"从重绘级的工程活,变成了两次点击的操作。打开终端,敲下上面第一行 clone 命令,十分钟后你就能拖出第一张图。
【免费下载链接】DragGANOfficial Code for DragGAN (SIGGRAPH 2023)项目地址: https://gitcode.com/GitHub_Trending/dr/DragGAN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考