Redline 🎥 Wan2.1-T2V-14B
详情
下载文件
模型描述
该 LoRA 在 OpenMuse 上被精选,OpenMuse 是一个专注于开源视频 LoRA 及其催生的创意作品的策展计划。该计划聚焦于 Wan2.1、LTX-Video 和 HunyuanVideo 等模型,突出展示来自整个生态系统的高质量工具与艺术作品。根植于 Banodoco 社区,OpenMuse 正成长为一个开放协作的 AI 艺术家园,旨在激励创作者、激发好奇心,并提供让你即使面对对 AI 生成艺术持怀疑态度的人也愿意自豪分享的作品。
描述
《Redline》是 2009 年由小池健执导、Madhouse 制作的动画电影。影片围绕赛车手 JP 及其对手兼最终盟友 Sonoshee McLaren 展开,两人参与银河系最危险、最负盛名的赛车赛事“Redline”。该片以全手绘动画著称,制作历时七年。其激烈、高能的风格与精细的视觉效果,常被拿来与《阿基拉》等早期里程碑作品相提并论,体现了对技术卓越与动态叙事的同样执着。
这是我最喜爱的动画电影之一,这也是我首次尝试重构其动画风格。创建此 LoRA 的其他目标包括:
优化训练流程,特别是让训练一个 LoRA 不再耗时 90 小时 😉
研究并拓展 Wan 的运动能力
我花费了大量时间(可能太多了)试图解决第二个目标,但成效甚微(这也是预期之中的,一个小型 LoRA 无法承担所有任务)。尽管 Redline 的艺术风格得到了较为准确的传递,但镜头运动、角度、快速动态等元素并未完全复现,至少我未达到理想的精度。总体而言,我训练了三个版本的 LoRA,耗时超过 80 小时。最终,我在第三次迭代后决定停止,因为无法达到完美状态让我感到越来越尴尬,我认为稍后再回过头来改进这个模型,总比无休止地重训却始终不清楚问题出在哪里要好。
使用方法
该 LoRA 在每个字幕开头都使用了关键词 "Redline style" 进行训练。我还使用了术语 "kinetic-deformed"(并为相关场景添加了字幕),以强调 Redline 经典的加速效果。这个术语很可能对画面没有实际影响,因为数据集中仅包含三个涉及该效果的场景,它或许只是心理安慰,但既然听起来很酷,我通常会在涉及高速驾驶运动的提示中加入它。
该 LoRA 对提示高度依赖,我仍在寻找最佳提示模板以充分发挥其潜力。以下是你可使用的模板,生成的提示应能产生中等准确度的输出(请将最后一行替换为你选择的任何主题):
你是一位用于 AI 视频生成模型的高级提示生成器。你的目标是为生成 Redline 动画电影风格的视频片段,创建生动、电影感强、细节丰富的提示。
提示规则:
- 每条提示必须以:"Redline style." 开头。
- 使用清晰、简洁、直接的语言。避免隐喻、夸张、修辞或主观修饰词(例如不要使用 "fierce"、"breathtaking")。
- 提示长度:80–100 词。
- 遵循以下结构:场景 + 主体 + 动作 + 构图 + 镜头运动
1. 场景(环境描述)
确定环境类型:城市、自然、超现实等。包括时间、天气、可见的背景事件或氛围。仅描述可见内容,不表达观点或情绪。
2. 主体(详细描述)
仅描述物理特征、外貌、着装。使用生动但简洁的形容词(不使用职业如 "biker"、"mechanic" 等)。避免过度或华丽的细节。
3. 动作(主体与环境的互动)
仅明确描述一个主体或环境的互动行为。描述内容必须能在 5 秒内看到。
4. 构图与视角(取景)
从以下选择:Close-up | Medium shot | Wide shot | Low angle | High angle | Overhead | First-person | FPV | Bird’s-eye | Profile | Extreme long shot | Aerial
5. 运动(电影级镜头运动)
使用:Dolly in | Dolly out | Zoom-in | Zoom-out | Tilt-up | Tilt-down | Pan left | Pan right | Follow | Rotate 180 | Rotate 360 | Pull-back | Push-in | Descend | Ascend | 360 Orbit | Hyperlapse | Crane Over | Crane Under | Levitate
清晰描述镜头如何移动及捕捉的内容。关注光线、氛围、粒子效果(如灰尘、霓虹反射、雨滴)、色彩调色板。保持视觉性描述,而非情绪性表达。每个镜头或运动应简洁,代表约 5 秒视频。始终维持强烈的“Redline”动画美学:大胆、鲜艳、充满活力、流畅的动画质感。
使用简单提示,就像在指导一位 5 岁的艺术家。
现在,生成 10 个 Redline 世界观中富有表现力且危险的女性特写镜头。
你可能会观察到一些特征渗出(例如,女性角色有时会带有 JP 的飞机头发型),但我从一开始就忽略了这一点,因为我希望打造的是风格 LoRA,而非角色 LoRA。(另外,我也发现带飞机头的女性看起来极其酷炫 😙)多数情况下,如果提示中仅提及男性或女性而未具体描述外貌,系统默认会生成 JP 或 Sonoshee。
每个 mp4 文件内嵌了工作流。此处是 JSON 格式的工作流示例:https://files.catbox.moe/31mpay.json。
与之前一样,我使用了大量优化手段(包括 TeaCache),以便在 RTX 3090 上以约 5 分钟渲染出 640x480x81 的视频片段。在我看来,TeaCache 并不像普遍认为的那样严重破坏运动效果。(我仅讨论动画,从未用 Wan 生成过写实视频,因此对此无发言权。)是的,它会略微降低画质,但如果启用 TeaCache 后视频效果差,关闭它也未必能变好。快速转场和高速运动在开启或关闭 TeaCache 的情况下仍难以稳定控制。
该 LoRA 与其他 LoRA 或 I2V 检查点的兼容性尚未测试。
训练
我主要沿用了之前 LoRA 的训练流程,即混合训练不同分辨率和时长分组的图片与视频。我使用了 musubi-tuner(Windows 11,RTX 3090,64GB 内存)。我对训练流程进行了优化和精炼,借鉴了其他创作者的实践(特别感谢 blyss 的详细见解 和 blip 的实用建议 以加速训练)。与我之前的 LoRA 相比,训练速度现在几乎快了三倍,因此在 RTX 3090 上每次迭代仅需约5 秒(此前需 12–13 秒)。使用新参数后,我之前那个 LoRA 的训练时间从 90 小时缩短至 30 小时。不错。
(我已将训练数据和配置文件与 LoRA 一并上传,如有需要可自行查阅。)
总体而言,最显著的改动包括:
使用 fp16 检查点(而非 bf16)+ fp8_base + fp8_scaled
禁用模块交换(得益于优化的数据集结构,见下文 👇)
使用 CAME 优化器(替代 adamw8bit)
使用 FlashAttention 加速训练(替代 sdpa)
使用 loraplus_lr_ratio=2 并降低学习率(3e-5 而非 5e-5)
关于数据集,主要变化是将所有视频按时长分组(以提高利用率),并需降低训练分辨率(以避免在 24GB VRAM 下使用模块交换)。总体流程如下:
获取最高(合理)质量的原始影片 — 1864x1048,H.265,17104 Kb/s
使用 PySceneDetect 将影片分割为片段
通过自定义简易 GUI 快速筛选和导航选取合适片段 — 共 175 个片段
将其转为 16fps,去除音频(使用 ffmpeg)
提取关键帧作为高分辨率图像数据集(ffmpeg)— 共 170 张图片
按时长分组视频 — 共 28 个文件夹(分组)
为 musubi-tuner 生成数据集 toml 配置文件,参数针对每个时长分组优化(见下文 👇)
为图片生成字幕(见下文 👇)
为视频生成字幕(我采用“双重字幕”方法:“简短版”描述整体场景,“详细版”提供详细描述,见下文 👇)
此处不展示完整的 dataset.toml 文件(约 600 行),但核心思想与我之前的 LoRA 一致 — “三层”数据集。由于本次我决定在不使用模块交换的前提下将全部数据装入 VRAM(以最大化训练速度),因此必须降低目标训练分辨率。
1:高分辨率图像数据集 976x544 — 在不使用模块交换的前提下我能负担的最高分辨率(在 Linux 或使用 diffusion-pipe 时,此值可能更高)
2:中等分辨率视频数据集,短帧时长 512x288x17
3:低分辨率视频数据集,最大帧时长 256x144x81
(我也尝试过“双层”数据集:中等分辨率短时长视频 + 高分辨率图像,但效果不如三层方案。)
以下是用于图像数据集(170 张图片)的配置记录:
[[datasets]]
image_directory = "H:/datasets/redline/images/1864x1048x1"
cache_directory = "H:/datasets/redline/images/1864x1048x1/cache"
resolution = [976, 544]
batch_size = 1
num_repeats = 1
caption_extension = ".txt"
图片字幕生成使用本地的 Ovis2-16B,单图输入模式,提示词为:
描述此场景。不要使用“image”一词。如果场景中有人物,请明确说明其性别。以 "Redline style. " 开头。
对于“第二层”数据集,我使用了分辨率较低(但非最低)为 512x288 的视频(175 个片段)。其实际帧数从 25 帧起,但配置中 target_frames 固定为 [17],frame_extraction 设为 "head"。每个 28 个时长分组的配置部分结构完全相同(仅文件夹名称不同):
[[datasets]]
video_directory = "H:/datasets/redline/videos/1864x1048x25"
cache_directory = "H:/datasets/redline/videos/1864x1048x25/cache_s"
resolution = [512, 288]
batch_size = 1
num_repeats = 1
frame_extraction = "head"
target_frames = [17]
caption_extension = ".short"
此数据集使用“简短版”字幕文件。字幕生成同样使用 Ovis2-16B,但为视频输入模式。提示词为:
简要描述此场景。如果场景中有人物,请明确说明其性别。若他们正在说话,请明确指出。先描述主体及其动作,再描述背景和环境。以 "Redline style. " 开头。
“第三层”数据集使用相同的175 个视频,但训练分辨率为最低的 256x144,frame_extraction 设为 "uniform"。对于帧数超过 81 的分组(文件夹),frame_sample 设为 2,target_frames 设为 [81];对于帧数少于 81 的分组,frame_sample 设为 1,target_frames 设为 [X],其中 X 是该分组时长(经调整后最接近 4N+1 的整数)(如 25、29、33...)
(我知道以上内容可能显得过于复杂,但当然,这些计算并非我手动完成,我委托脚本并由 Claude 生成,我只是仔细拟定了需求。这个过程或许冗余,对训练输出的影响可能不如原始数据集本身大——因为我的上一个最佳 LoRA 在没有这些措施的情况下也能表现良好;但仅因我喜欢手动控制所有分组和数据集结构,以便在训练后能更容易识别数据集的薄弱点。好吧,理论上如此。)
以下是帧数 < 81 的分组示例:
[[datasets]]
video_directory = "H:/datasets/redline/videos/1864x1048x25"
cache_directory = "H:/datasets/redline/videos/1864x1048x25/cache_l"
resolution = [256, 144]
batch_size = 1
num_repeats = 1
frame_extraction = "head"
target_frames = [25]
caption_extension = ".long"
以下是帧数 ≥ 81 的分组示例:
[[datasets]]
video_directory = "H:/datasets/redline/videos/1864x1048x97"
cache_directory = "H:/datasets/redline/videos/1864x1048x97/cache_l"
resolution = [256, 144]
batch_size = 1
num_repeats = 1
frame_extraction = "uniform"
target_frames = [81]
caption_extension = ".long"
frame_sample = 2
对于此数据集,使用了“长”格式的标题文件。这些标题也是通过 Ovis2-16B 的视频输入模式生成的,并使用了以下标题提示(注意:与短标题不同,这次我还指示它先描述背景):
详细描述这个场景。如果场景中有人员,请明确说明其性别。如果他们在交谈或说话,请明确提及。先描述背景和环境,再描述主体及其动作。以“Redline 风格。”开头描述。
关于“双标题”(dual-captioning),我原本期望它能作为防止过拟合的另一种手段,因为模型必须通过两个不同标题的视角学习同一片段,这实际上起到了一种“标题增强”的作用。(我实际上是在 Seaweed-7B 论文 中看到这个想法,并决定加以借鉴。)
训练共进行了 50 个周期(每个周期 573 步),但后续测试表明,第 16,617 步(第 29 个周期)的 LoRA 最稳定且最通用(因此,实际训练耗时约 23 小时)。顺便提一句,第 10 个周期(5730 步)的 LoRA 已经能相当好地呈现《Redline》的艺术风格,但动作完全继承自基础的 Wan 模型,这是我无法接受的。
我提到这是第三个版本的 LoRA。第一个版本的标题质量很差(我使用了由 Gemini 生成的极简标题,虽然这些标题在质量上不错,但我仍对训练结果不满意,我认为 Wan 模型根本不喜欢短标题)。第二个版本使用了“双层”数据集,效果尚可,但还不够好。第三个版本就是这个,它仍然不如我期望的那么完美,但正如我所说,我觉得必须停下来休息一下,以免精神崩溃。这个 LoRA 可以更好,但也可能更差。我仍有一些改进 LoRA 训练质量的想法,计划在后续版本中进行测试。

