X-Fun-Videos-Controls-Demo
收藏资源简介:
# X-Fun-Videos-Controls-Demo ## 目录 - [数据集简介](#数据集简介) - [数据集结构](#数据集结构) - [数据说明](#数据说明) - [数据处理脚本](#数据处理脚本) - [使用方法](#使用方法) - [注意事项](#注意事项) - [相关项目](#相关项目) ## 数据集简介 这是一个用于 **VideoX-Fun** 项目的可控视频生成(Control Video)训练演示数据集,包含16个训练视频及其对应的Canny边缘控制信号,适用于条件视频生成模型的训练和测试。 ## 数据集结构 ``` X-Fun-Videos-Controls-Demo/ ├── train/ # 原始训练视频目录 │ ├── 00000000.mp4 # 训练视频 (832x480) │ ├── 00000001.mp4 │ └── ... (共16个视频) ├── canny/ # Canny边缘控制信号目录 │ ├── 00000000.mp4 # Canny控制视频 (832x480, 灰度) │ ├── 00000001.mp4 │ └── ... (共16个视频) ├── object/ # Object目录(用于VACE) │ ├── 00000000/ # 与视频同名的文件夹 │ │ └── 0-0.jpg # Object图像 │ ├── 00000001/ │ └── ... (共16个文件夹) ├── metadata.json # 数据集信息(基础版) ├── metadata_add_width_height.json # 数据集信息(包含宽高信息) ├── metadata_add_width_height_add_objects.json # 数据集信息(包含宽高和object信息,用于VACE) ├── metadata_origin.json # 原始元数据文件 ├── process_json_add_width_and_height.py # 为元数据添加视频宽高信息 ├── process_videos_canny.py # 视频Canny边缘提取脚本 ├── .gitattributes # Git LFS 配置文件 └── README.md # 本文件 ``` ## 数据说明 ### 视频信息 - **数量**: 16个训练视频 + 16个Canny控制视频 - **格式**: MP4 - **分辨率**: 832 x 480 (宽 x 高) - **内容**: 人物短视频,包含详细的动态标签描述 - **控制信号**: Canny边缘检测(逐帧提取,视频级参数一致性) ### 标签描述 所有视频均使用统一的标签格式,包含以下特征: - 人物外貌特征(发型、服装、配饰) - 动作描述(头部转动、表情变化、手势) - 场景环境(背景、光线、氛围) - 动态细节(头发飘动、衣物摆动、光影变化) ### 元数据文件 #### metadata.json 基础版本的元数据文件,包含: - `file_path`: 视频文件路径 - `text`: 视频标签描述 - `height`: 视频高度(480) - `width`: 视频宽度(832) - `type`: 数据类型(video) #### metadata_add_width_height.json 增强版本的元数据文件,额外包含: - `height`: 视频高度(480) - `width`: 视频宽度(832) #### metadata_add_width_height_add_objects.json 用于 **VACE** 模型的元数据文件,在 `metadata_add_width_height.json` 基础上额外包含: - `object_file_path`: Object图像路径列表(如 `["object/00000000/0-0.jpg"]`),对应 `object/` 目录下与视频同名的文件夹中的分割图像 #### metadata_origin.json 原始元数据文件(未添加宽高信息)。 ## 数据处理脚本 本数据集提供两个 Python 脚本,用于数据预处理。 ### process_videos_canny.py 从原始视频中提取Canny边缘控制信号,生成对应的控制视频。支持图片和视频混合处理,自动检测文件类型。 **功能特性**: - 逐帧提取Canny边缘,保持视频级参数一致性 - 随机Canny参数(low threshold: 10-100, high threshold: low×1.5~2.5) - 随机高斯模糊核(3/5/7) - 支持多进程处理(视频处理限制最多4个worker) - 使用moviepy保存视频(libx264编码) - 自动生成包含 `control_file_path` 的元数据JSON **使用方法**: ```bash # 默认参数处理(适配X-Fun-Videos-Controls-Demo) python datasets/X-Fun-Videos-Controls-Demo/process_videos_canny.py # 自定义参数 python datasets/X-Fun-Videos-Controls-Demo/process_videos_canny.py \ --input_file datasets/X-Fun-Videos-Controls-Demo/metadata_origin.json \ --output_dir datasets/X-Fun-Videos-Controls-Demo/canny \ --output_file datasets/X-Fun-Videos-Controls-Demo/metadata.json \ --base_dir datasets/X-Fun-Videos-Controls-Demo \ --num_workers 4 \ --seed 42 ``` **依赖**: - `opencv-python` - `moviepy` (支持v1.x和v2.x版本) - `numpy` ### process_json_add_width_and_height.py 读取视频文件的分辨率,在元数据 JSON 中添加 `width` 和 `height` 字段。该脚本同时支持图片和视频格式。 ```bash python datasets/X-Fun-Videos-Controls-Demo/process_json_add_width_and_height.py \ --input_file datasets/X-Fun-Videos-Controls-Demo/metadata.json \ --output_file datasets/X-Fun-Videos-Controls-Demo/metadata_add_width_height.json \ --base_dir datasets/X-Fun-Videos-Controls-Demo/ \ --num_processes 4 ``` ## 使用方法 克隆数据集到VideoX-Fun的datasets文件夹。 ```bash modelscope download --dataset PAI/X-Fun-Videos-Controls-Demo --local_dir ./datasets/X-Fun-Videos-Controls-Demo ``` 在 VideoX-Fun 的配置文件中指定数据集路径: ```bash export DATASET_NAME="datasets/X-Fun-Videos-Controls-Demo" export DATASET_META_NAME="datasets/X-Fun-Videos-Controls-Demo/metadata_add_width_height.json" NCCL_DEBUG=INFO ``` ## 注意事项 - 本数据集仅用于演示和测试目的 - 推荐使用 `metadata_add_width_height.json` 进行Control Video训练(包含control_file_path字段) - 使用 **VACE** 模型训练时,请使用 `metadata_add_width_height_add_objects.json`(包含object_file_path字段) - 视频处理依赖 `opencv-python` 和 `moviepy` 库,请确保已安装 - Canny参数在单个视频内保持一致,不同视频间随机变化 ## 相关项目 - [VideoX-Fun-Wan2.2](https://github.com/your-org/VideoX-Fun-Wan2.2)



