本项目是一个计算机视觉研究项目,专注于对比研究两种基于点拖拽交互的图像编辑方法:DragGAN 和 DragDiffusion。项目实现了这两种方法,并提供了性能对比工具,用于评估它们在图像生成速度等方面的表现。
本项目包含两个主要的图像编辑框架:
- DragGAN: 基于 StyleGAN 的点拖拽交互式图像编辑方法(SIGGRAPH 2023)
- DragDiffusion: 基于 Stable Diffusion 的点拖拽交互式图像编辑方法
两种方法都支持通过指定控制点和目标点来精确控制图像的编辑,但在底层技术实现上有显著差异,这也导致了不同的性能特征。
CV_project_2026/
├── DragGAN/ # DragGAN 项目代码
│ ├── visualizer_drag_gradio.py # Gradio Web界面
│ ├── visualizer_drag.py # 命令行可视化工具
│ ├── interactive_drag_workflow.py # 交互式工作流
│ ├── checkpoints/ # 预训练模型权重
│ ├── README.md # DragGAN 详细文档
│ └── ...
│
├── DragDiffusion/ # DragDiffusion 项目代码
│ ├── drag_ui.py # Gradio Web界面
│ ├── drag_pipeline.py # 核心处理管道
│ ├── drag_bench_evaluation/ # DragBench 评估工具
│ ├── README.md # DragDiffusion 详细文档
│ └── ...
│
├── speed_comparison.py # 生成速度对比脚本
├── test_speed_script.py # 速度测试辅助脚本
├── SPEED_COMPARISON_README.md # 速度对比使用说明
└── README.md # 本文件
- 操作系统: Linux (推荐)
- GPU: NVIDIA GPU with CUDA (推荐)
- Python: 3.8+
- CUDA: 11.8+ (用于 GPU 加速)
cd DragGAN
conda env create -f environment.yml
conda activate stylegan3
pip install -r requirements.txtcd DragDiffusion
conda env create -f environment.yaml
conda activate dragdiffDragGAN 模型下载:
cd DragGAN
python scripts/download_model.pyDragDiffusion 模型: DragDiffusion 会在首次运行时自动下载 Stable Diffusion v1.5 模型。
启动 Gradio Web 界面:
conda activate stylegan3
cd DragGAN
python visualizer_drag_gradio.py --listen命令行模式:
conda activate stylegan3
cd DragGAN
python visualizer_drag.py详细使用方法请参考 DragGAN/README.md
启动 Gradio Web 界面:
conda activate dragdiff
cd DragDiffusion
python drag_ui.py详细使用方法请参考 DragDiffusion/README.md
项目提供了专门的速度对比工具,用于评估两种方法的图像生成性能。
基本用法(推荐使用子进程模式):
python speed_comparison.py --use-subprocess指定生成图像数量:
python speed_comparison.py --use-subprocess --num-images 10自定义 DragDiffusion 提示词:
python speed_comparison.py --use-subprocess --prompt "a beautiful landscape painting"根据测试结果,两种方法在性能上有显著差异:
| 方法 | 平均生成时间/张 | 特点 |
|---|---|---|
| DragGAN | ~20秒 | 速度更快,基于 StyleGAN2 预训练 |
| DragDiffusion | ~50秒 | 速度较慢,但支持更广泛的图像类型 |
注意: 实际性能取决于硬件配置、模型大小和图像分辨率等因素。
详细的对比测试说明请参考 SPEED_COMPARISON_README.md
- ✅ 基于 StyleGAN2/3 的高质量图像生成
- ✅ 实时点拖拽交互式编辑
- ✅ 支持多种预训练模型(AFHQ, StyleGAN-Human, LHQ 等)
- ✅ Gradio Web 界面和命令行工具
- ✅ GPU 加速支持
- ✅ 基于 Stable Diffusion v1.5 的图像编辑
- ✅ 支持真实图像和生成图像的拖拽编辑
- ✅ LoRA 训练集成(用于真实图像编辑)
- ✅ FreeU 支持(提升生成图像质量)
- ✅ 支持任意宽高比的图像
- ✅ DragBench 评估工具
| 特性 | DragGAN | DragDiffusion |
|---|---|---|
| 底层模型 | StyleGAN2/3 | Stable Diffusion v1.5 |
| 编辑原理 | 潜在空间优化 | 扩散模型特征空间 |
| 真实图像支持 | 需反演 | 支持(通过 LoRA) |
| 生成速度 | 更快 | 较慢 |
| 灵活性 | 受限于 GAN 训练数据 | 更高(文本引导) |
| GPU 内存需求 | 中等 (~6GB) | 较高 (~14GB) |
- DragGAN: Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold (SIGGRAPH 2023)
- DragDiffusion: DragDiffusion: Harnessing Diffusion Models for Interactive Point-based Image Editing
- DragGAN: 查看 DragGAN/README.md 获取详细的使用说明、安装指南和功能介绍
- DragDiffusion: 查看 DragDiffusion/README.md 获取详细的使用说明和配置信息
- 速度对比: 查看 SPEED_COMPARISON_README.md 了解性能测试的详细使用方法
-
环境隔离: 两个项目需要使用不同的 conda 环境,建议使用
speed_comparison.py的--use-subprocess参数自动处理环境切换 -
GPU 内存:
- DragGAN 需要约 6GB VRAM
- DragDiffusion 需要约 14GB VRAM
-
模型下载: 首次运行时需要下载预训练模型,请确保网络连接正常
-
许可证: 请遵守各子项目的许可证要求(详见各子项目目录中的 LICENSE 文件)
本项目包含两个子项目,请分别查看各自的许可证:
- DragGAN: 请查看 DragGAN/LICENSE.txt
- DragDiffusion: 请查看 DragDiffusion/LICENSE
- 感谢 DragGAN 团队提供优秀的代码实现
- 感谢 DragDiffusion 团队提供开源的研究代码
- 感谢所有为本项目提供帮助的贡献者