Diffusion as Shader数据集制作指南使用Blender创建合成训练数据【免费下载链接】DiffusionAsShader[SIGGRAPH 2025] Diffusion as Shader: 3D-aware Video Diffusion for Versatile Video Generation Control项目地址: https://gitcode.com/gh_mirrors/di/DiffusionAsShaderDiffusion as Shader是一个基于3D感知视频扩散技术的开源项目能够实现多样化的视频生成控制。本文将详细介绍如何使用Blender创建合成训练数据帮助你快速上手数据集制作流程。为什么需要合成训练数据合成训练数据在计算机视觉和深度学习领域扮演着重要角色。通过Blender等工具创建的合成数据具有以下优势成本低无需昂贵的摄影设备和场地可控性高可以精确控制场景、光照、物体姿态等参数数据丰富可快速生成大量多样化的样本标注精准自动生成精确的3D坐标、深度信息等标注Diffusion as Shader项目特别需要高质量的合成视频数据来训练其3D感知视频扩散模型以实现如相机控制、物体操纵和运动转移等高级功能。图Diffusion as Shader项目支持的多种视频生成控制效果包括3D追踪、运动转移、相机控制和物体操纵等准备工作安装必要工具安装Blender推荐使用特定版本blender-4.3.2-linux-x64可从Blender官网下载克隆项目仓库git clone https://gitcode.com/gh_mirrors/di/DiffusionAsShader安装依赖cd DiffusionAsShader pip install -r requirements.txt收集资源素材由于版权限制项目无法提供训练数据合成所需的场景、模型和背景素材你需要自行收集角色模型和动画可从mixamo获取免费的3D角色和动画环境背景可从polyhaven下载高质量的天空盒和HDRI环境贴图其他3D资产可从各种3D资源网站获取场景道具等配置Blender工作环境创建工作空间按照以下结构创建合成工作空间synthesis_workspace ├── avatar.blend # 从项目scripts目录复制 ├── render_with_random_bg.py # 从项目scripts目录复制 ├── blender-4.3.2-linux-x64 # Blender程序目录 └── raw # 存放原始素材 ├── skybox # 天空盒图片 ├── character1 # 角色1相关文件 │ ├── character1.fbx # 角色模型 │ └── motion # 角色动画 └── character2 # 其他角色...复制项目文件将项目中的Blender相关文件复制到工作空间# 假设当前在项目根目录 mkdir -p synthesis_workspace cp scripts/avatar.blend synthesis_workspace/ cp scripts/render_with_random_bg.py synthesis_workspace/使用Blender脚本生成合成数据Blender脚本解析项目提供的scripts/blender.py脚本实现了以下核心功能计算逆深度范围通过get_scene_inverse_depth_range函数计算场景中所有顶点的逆深度范围设置顶点颜色通过set_vertex_colors_for_object函数为物体设置顶点颜色编码屏幕空间坐标和深度信息批量处理物体通过process_all_objects函数处理场景中的所有网格物体该脚本会为每个网格物体创建特殊的材质将顶点颜色信息编码为发射颜色以便后续渲染和深度信息提取。组织素材文件在raw目录下组织你的素材将天空盒图片放入raw/skybox目录为每个角色创建单独的目录如raw/character1将角色模型FBX文件直接放在角色目录下将动画FBX文件放在角色目录下的motion子目录中执行渲染脚本使用以下命令执行渲染脚本生成合成数据集# 在synthesis_workspace目录下执行 ./blender-4.3.2-linux-x64/blender -b avatar.blend -P render_with_random_bg.py -- --base_path .脚本会自动加载随机选择的角色模型和动画应用随机的天空盒背景渲染带有深度信息的视频序列生成符合项目要求的数据集结构数据集格式要求视频数据规范生成的视频数据需要满足以下条件分辨率仅支持720 * 480帧数使用项目提供的预训练模型时必须为49帧训练自定义模型时帧数应为4 * k 1如16, 32, 49, 81等数据集文件结构最终的数据集应组织为以下结构dataset ├── prompt.txt # 训练提示文本 ├── videos.txt # 视频文件路径列表 ├── trackings.txt # 跟踪文件路径列表 ├── images.txt # 图像文件路径列表 ├── images # 从视频帧提取的图像 ├── tracking # 跟踪视频 └── videos # 原始视频生成跟踪文件使用项目提供的脚本生成跟踪视频# 多GPU加速 accelerate launch accelerate_tracking.py --data_root videos_root --output_dir output_dir # 单GPU运行 python batch_tracking.py --data_root videos_root --output_dir output_dir总结通过本文介绍的方法你可以使用Blender和项目提供的脚本创建高质量的合成训练数据用于训练Diffusion as Shader模型。合成数据的优势在于成本低、可控性高并且可以生成丰富多样的样本。关键步骤包括准备工作空间、收集资源素材、配置Blender环境、执行渲染脚本以及整理数据集格式。按照这些步骤操作你将能够创建符合项目要求的训练数据为后续的模型训练打下坚实基础。希望本指南能帮助你顺利制作Diffusion as Shader项目的训练数据集如有任何问题可参考项目中的assets/dataset.md文件获取更多详细信息。【免费下载链接】DiffusionAsShader[SIGGRAPH 2025] Diffusion as Shader: 3D-aware Video Diffusion for Versatile Video Generation Control项目地址: https://gitcode.com/gh_mirrors/di/DiffusionAsShader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考