为视频生成构建出色的数据集

发布于 2025 年 2 月 12 日
在 GitHub 上更新

用于图像生成数据集的工具已经非常成熟,其中 img2dataset 是用于大规模数据集准备的基础工具,并辅以各种社区指南、脚本和 UI,涵盖了小规模的应用场景。

我们的目标是通过创建适合小规模应用的开放视频数据集脚本,并利用 video2dataset 进行大规模用例处理,使视频生成数据集的工具同样成熟。

“如果说我看得更远,那是因为我站在巨人的肩膀上。”

在这篇文章中,我们概述了正在开发的工具,旨在让社区能轻松构建自己的数据集,用于微调视频生成模型。如果您已迫不及待想开始,欢迎您在此查看我们的代码库。

目录

  1. 工具
  2. 筛选示例
  3. 运用这些工具 👨‍🍳
  4. 轮到你了

工具

通常,视频生成是基于自然语言文本提示的,例如:“一只猫在草地上行走,写实风格”。然后在视频中,有一些用于可控性和筛选的定性方面,如下所示:

  • 动作
  • 美学
  • 水印存在与否
  • 不适宜内容 (NSFW) 存在与否

视频生成模型的质量取决于其训练数据。因此,在整理用于训练/微调的数据集时,这些方面变得至关重要。

我们的三阶段流程借鉴了 Stable Video DiffusionLTX-Video 等作品及其数据流程的灵感。

阶段一 (采集)

video2dataset 一样,我们选择使用 yt-dlp 下载视频。

我们创建了一个 视频转场景 脚本,将长视频分割成短片段。

阶段二 (预处理/筛选)

提取的帧

整个视频

  • 使用 OpenCV 预测动作分数

阶段三 (处理)

Florence-2 microsoft/Florence-2-large 用于在提取的帧上运行 Florence-2 任务,包括 <CAPTION><DETAILED_CAPTION><DENSE_REGION_CAPTION><OCR_WITH_REGION>。这提供了不同的字幕、对象识别和 OCR,可用于各种方式的筛选。

在这方面,我们可以引入任何其他的字幕生成器。我们也可以为整个视频生成字幕 (例如,使用像 Qwen2.5 这样的模型),而不是为单个帧生成字幕。

筛选示例

finetrainers/crush-smol-v0 模型所用的数据集中,我们选择了 Qwen2VL 生成的字幕,并根据 pwatermark < 0.1aesthetic > 5.5 进行了筛选。这种高度严格的筛选最终从 1493 个视频中选出了 47 个。

让我们回顾一下 pwatermark 的示例帧 -

两个带文字的帧得分分别为 0.69 和 0.61

pwatermark 图像
0.69 19s8CRUVf3E-Scene-022_0.jpg
0.61 19s8CRUVf3E-Scene-010_0.jpg

“装满老鼠的玩具车”在被压碎前得分为 0.60,压碎后降至 0.17。

pwatermark 图像
0.60 -IvRtqwaetM-Scene-003_0.jpg
0.17 -IvRtqwaetM-Scene-003_1.jpg

所有示例帧都通过 pwatermark < 0.1 进行了筛选。pwatermark 在检测文本/水印方面很有效,但分数并不能表明它是文本叠加还是玩具车的牌照。我们的筛选要求所有分数都低于阈值,而对帧求平均值并设置 0.2 - 0.3 左右的阈值,对于 pwatermark 来说可能是更有效的策略。

让我们回顾一下美学分数的示例帧 -

粉色城堡最初得分为 5.5,被压碎后降至 4.44

美学 图像
5.50 -IvRtqwaetM-Scene-036_0.jpg
4.44 -IvRtqwaetM-Scene-036_1.jpg

动作人偶的得分较低,为 4.99,被压碎后降至 4.84。

美学 图像
4.99 -IvRtqwaetM-Scene-046_0.jpg
4.87 -IvRtqwaetM-Scene-046_1.jpg
4.84 -IvRtqwaetM-Scene-046_2.jpg

玻璃碎片得分很低,为 4.04

美学 图像
4.04 19s8CRUVf3E-Scene-015_1.jpg

在我们的筛选中,我们要求所有分数都低于阈值,但在这种情况下,仅使用第一帧的美学分数可能会是更有效的策略。

如果我们查看 finetrainers/crush-smol,我们可以注意到许多被压碎的物体都是圆形或矩形且色彩鲜艳,这与我们在示例帧中的发现相似。美学分数可能很有用,但它存在偏见,当使用像 > 5.5 这样的极端阈值时,可能会过滤掉好的数据。它可能更适合用作过滤不良内容的工具,最低阈值设置在 4.25 - 4.5 左右。

OCR/字幕

在这里,我们为每个过滤器提供了一些视觉示例,以及来自 Florence-2 的字幕。

图像 字幕 详细字幕
Toy Car with Mice 一辆装满老鼠的玩具车。 图片显示一辆蓝色玩具车,三只白老鼠坐在车后部,车子沿着一条路行驶,背景是一堵绿色的墙。
带 OCR 标签 带 OCR 和区域标签
OCR labels OCR and region labels

运用这些工具 👨‍🍳

我们利用这些工具创建了各种数据集,试图生成炫酷的视频效果,类似于 Pika Effects

然后,我们使用这些数据集,通过 finetrainers 微调了 CogVideoX-5B 模型。以下是 finetrainers/crush-smol-v0 的一个输出示例

提示:DIFF_crush 一根红色蜡烛放在一个金属平台上,一个大的金属圆柱从上方降下,将蜡烛压扁,就像在液压机下一样。蜡烛被压成一个扁平的圆形,周围留下一堆碎片。

轮到你了

我们希望这些工具能帮助您快速创建小型高质量的视频数据集,用于您自己的定制应用。我们将继续向该代码库添加更多有用的过滤器,敬请关注。我们也随时欢迎您的贡献 🤗

感谢 Pedro Cuenca 对本文的详尽审阅。

社区

如何进行图片编辑

有没有人测试过在 MLP 上添加噪声以提升美学效果?

注册登录以发表评论