DiffusionAsShader 使用教程
1. 项目介绍
DiffusionAsShader 是一个开源项目,由香港科技大学(HKUST)的IGL实验室开发。该项目专注于3D感知的视频扩散技术,用于生成多样化的视频内容。它通过将视频生成控制与着色器技术相结合,实现了对视频内容的高效控制,包括运动转移、相机控制、对象操作等功能。
2. 项目快速启动
环境搭建
首先,你需要克隆仓库并创建一个conda环境:
git clone git@github.com:IGL-HKUST/DiffusionAsShader.git
conda create -n das python=3.10
conda activate das
接着,安装PyTorch及其依赖项:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu118
确保子模块和依赖项已安装:
mkdir -p submodules
git submodule update --init --recursive
pip install -r requirements.txt
运行示例
安装完毕后,你可以运行以下命令来执行demo脚本:
python demo.py
3. 应用案例和最佳实践
运动转移
运动转移允许你将一个视频中的运动风格应用到另一个视频上。以下是一个基本的命令行示例:
python demo.py --prompt "prompt text" --checkpoint_path "model_path" --output_dir "output_dir" --input_path "input_path" --repaint True --gpu "gpu_id"
在这里,prompt text
是描述你想要的运动风格的文本,model_path
是模型文件的路径,output_dir
是输出目录,input_path
是参考视频的路径,repaint
是一个布尔值或重绘第一帧的图像路径,gpu_id
是你想要使用的GPU的ID。
相机控制
相机控制允许你根据预设的运动路径控制视频中的相机运动。以下是一个命令行示例:
python demo.py --prompt "prompt text" --checkpoint_path "model_path" --output_dir "output_dir" --input_path "input_path" --camera_motion "camera_motion" --tracking_method "tracking_method" --override_extrinsics "override" --gpu "gpu_id"
在这里,camera_motion
是相机运动的类型,tracking_method
是追踪方法,override_extrinsics
表示如何应用相机运动。
对象操作
对象操作允许你控制视频中的特定对象。以下是一个命令行示例:
python demo.py --prompt "prompt text" --checkpoint_path "model_path" --output_dir "output_dir" --input_path "input_path" --object_motion "object_motion" --object_mask "object_mask_path" --tracking_method "tracking_method" --gpu "gpu_id"
在这里,object_motion
是对象运动的类型,object_mask_path
是对象遮罩的路径。
4. 典型生态项目
目前,DiffusionAsShader 的生态系统包括但不限于以下项目:
- MoGe: 一个由微软开发的用于图像和视频编辑的图形工具。
- VGGT: 一个由Facebook Research开发的用于视频理解的深度学习模型。
以上是DiffusionAsShader的基本使用教程,希望对你有所帮助。