DragGAN快速上手:拖拽改人像姿态的零代码完整教程
【免费下载链接】DragGANOfficial Code for DragGAN (SIGGRAPH 2023)项目地址: https://gitcode.com/GitHub_Trending/dr/DragGAN
DragGAN让GAN生成的图像可以被"拽着走":在画面上点两个点、按开始,图像就会朝你指定的位置变形。这篇指南带你从装环境到第一次拖拽,再到编辑真实人像,全程不写一行代码。
先看效果:DragGAN能做什么 🖱️
它能把人脸、头发或某个身体部位移动到指定位置,图像其余部分保持自然连贯。你还可以刷出一块"灵活区域",把背景锁住,只让指定位置发生改变。
跑起来
环境要求
建议有一块NVIDIA显卡,项目自带包含CUDA依赖的conda环境。Mac或纯CPU机器也能跑,差异见文末排错。
安装依赖一步到位
git clone https://gitcode.com/GitHub_Trending/dr/DragGAN cd DragGAN克隆仓库并进入目录,后面所有命令都在这里执行。
conda env create -f environment.yml创建stylegan3环境,一次性装好Python 3.8、PyTorch和CUDA依赖。
conda activate stylegan3激活环境,后续命令都在这个环境里运行。
pip install -r requirements.txt补装Gradio、imgui等其余依赖。
python scripts/download_model.py下载狮子、人像、狗、汽车等8个预训练StyleGAN2权重,存到./checkpoints目录。
启动
python visualizer_drag_gradio.py启动网页版界面,浏览器会自动打开127.0.0.1:7860的编辑页,这是最省事、跨平台的方式。
Linux或macOS也可以打开桌面版:
sh scripts/gui.shWindows用户改用.\scripts\gui.bat。
核心功能实操:拖拽编辑的操作顺序
场景一:生成初始图像并拖拽
目标:生成一张图,把图上的物体挪到你想要的位置。
- 在页面顶部Pretrained Model下拉框里选一个模型,改一下Seed数值可换图。
- 点"Add Points",进入打点模式。
- 在图像上点一下要移动的物体位置,这是起点。
- 再点一下图像上你想让它去的位置,这是终点。
- 点"Start",优化开始,图像实时朝目标点移动。
- 效果满意后点"Stop"停止。
效果:物体会滑到你点的位置,其余部分保持稳定。想重做就点"Reset Points"清空控制点,或点"Reset Image"按当前种子重新生成图像。
场景二:用遮罩锁住背景
目标:只让指定区域变化,背景保持不动。
- 点"Edit Flexible Area"进入遮罩模式。
- 用笔刷圈出允许变化的区域,没圈到的部分会被锁定。
- 勾选"Show Mask"确认刷到的范围,再照常点"Start"开始拖拽。
- 完成后点"Reset mask"清除笔刷。
图像动得太猛或太保守时,调整Step Size(步长)和Lambda(运动惩罚)两个数值;把潜空间从w切到w+,速度会慢一些,但结果通常更好。
进阶玩法:编辑真实照片
DragGAN操作的是GAN潜码,真实照片要先"反转"成潜码才能编辑。仓库的stylegan_human/目录里带了PTI反转工具。
- 下载StyleGAN-Human模型权重,放到./checkpoints目录。
- 用该目录下的PTI工具把你的照片反转成潜码。
- 在界面里选对应模型、加载潜码,然后照场景一的步骤拖拽。
排错速查
- 下拉框没有模型、程序起不来:权重没下载,先跑
python scripts/download_model.py。 - Mac上启动报CUDA相关错误:environment.yml是按NVIDIA显卡配的,去掉nvidia/cuda依赖另建环境,Mac上再设置
export PYTORCH_ENABLE_MPS_FALLBACK=1,做法见README。 - 图像动得太多、效果崩坏:调小Step Size,或把潜空间从w切到w+。
- 拖拽卡顿、刷新慢:减少控制点数量,把一次编辑拆成多轮,或换分辨率更低的模型。
收尾
流程其实就四步:选模型、点两个点、按开始、看效果。去clone下来试试吧,5分钟后你就能拖起一张图像。
【免费下载链接】DragGANOfficial Code for DragGAN (SIGGRAPH 2023)项目地址: https://gitcode.com/GitHub_Trending/dr/DragGAN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考