Look Back 🎥 Wan2.1-T2V-14B
详情
下载文件
模型描述
关于
由Studio DURIAN改编自藤本树广受赞誉的单话漫画《回首》(2024),讲述了一对年轻 aspiring 艺术家之间动人的故事。影片聚焦于自信外向的藤野与内向隐居的京本之间,二人通过共同热爱漫画创作而远距离建立联系。起初是青春的竞争与仰慕,逐渐演变为对友谊、激情与时光静静流逝的深刻而感人的探索。
《回首》的伟大之处在于其深刻的情感真实性和对创作精神的共鸣描绘。这部影片是一次技艺精湛、令人心碎的沉思,探讨天赋、嫉妒、遗憾,以及那些塑造我们人生的意外悲剧。其极具表现力的动画精准捕捉了每一个细微情感,成为对艺术力量的一曲美丽而忧伤的颂歌——艺术能疗愈悲伤,我们彼此间的影响亦不可磨灭,使其成为真正难忘且不可或缺的观影体验。
这部动画电影意外地深深影响了我,其艺术指导令人着迷,因此不久后我便尝试复制其艺术风格。虽然我未能完全成功还原其风格(例如,“线条抖动”效果缺失,线条过于锐利等),且高动态场景表现不佳,但我仍认为部分成果尚可,并值得分享(作为我为Wan2.1制作的最后一个LoRA)。
使用方法
我使用了 WanVideoWrapper。我发布的每个视频均嵌入了工作流。JSON格式的示例工作流见此处。
所有视频均基于基础模型 WanVideo2.1-14B-T2V 生成。
为加速处理,我使用了一个 lightx2v 自强制LoRA,强度设为0.9。
数据集
数据集从原动画电影中提取,并使用PySceneDetect进行分段。包含135个视频(原始分辨率1920x960)和170张图像(静态帧,相同分辨率)。另有一个验证集,含20张图像和20个视频。
字幕生成使用了Kwai-Keye/Keye-VL-8B-Preview。少数情况下模型产生了完全不相关的字幕(我将其归因于该模型仍处于“预览”阶段)。但多数情况下,其字幕精准而详尽,可能是我迄今为止尝试过的所有开源视频字幕模型中表现最佳的。
训练配置包含3个视频段和1个图像段。所有视频段均基于相同的135个视频,但训练参数不同:
“高分辨率”数据集,训练尺寸为[960x480],frame_extraction = "head",target_frames = [1, 9]
“中分辨率”数据集,训练尺寸为[480x240],frame_extraction = "uniform",target_frames = [17],frame_sample = 3
“低分辨率”数据集,训练尺寸为[240x128],frame_extraction = "full",max_frame = 81
对于这三个视频数据集,我分别使用了不同的字幕文件。
- 为高分辨率段(字幕复杂度最高)生成字幕的提示词为:
你的任务是生成一个详细、多维度的描述,剖析视频的内容与技术实现。输出应为一个完整的段落。
分析并描述以下所有元素:
主体与场景:详细描述外观、服装、物体、背景与前景。
运动:描述运动的特征,包括速度、方向和质感。
镜头语言:识别具体的镜头运用,包括镜头类型(如远景、鸟瞰)、拍摄角度(如低角度)和镜头运动(如推轨、摇摄、环绕)。
氛围:用富有感染力的语言描述场景的情绪。
严格遵守以下规则:
不要描述或命名任何艺术风格(如“赛博朋克”、“废土”、“杰作”)。
仅专注于描述字面视觉元素。
始终以短语“Lookback style.”开头。
示例:
Lookback style. 一个鸟瞰追踪镜头跟随一个孤独的身影,行走在布满龟裂大地与废墟的荒凉景观中。镜头平滑移动,强调空旷与孤寂,营造出强烈而忧郁的氛围。
Lookback style. 镜头缓慢横移穿过一条被霓虹灯照亮的雨街。一个身着长风衣的人影背对镜头走去,其倒影在沥青水洼中微微闪烁。密集层次的视觉元素与鲜艳却沉郁的色彩,创造出神秘而沉浸的氛围。
Lookback style. 一个极端特写聚焦于一只沾满黄色花粉的蜜蜂,它在向日葵上缓慢移动。镜头静止,清晰捕捉蜜蜂翅膀的细节与花朵的纹理。明亮的自然光与鲜艳色彩唤起对自然奇迹与美的感知。
Lookback style. 使用摇晃的第一人称无人机镜头,视频高速穿过茂密森林,以极快速度闪避树木与枝杈。快速运动与低视角制造出惊险而眩晕的体验,充满紧张与焦虑。
- 为中分辨率段(字幕复杂度适中)生成字幕的提示词为:
你的任务是生成一句描述性语句,捕捉视频的主要活动、关键视觉特征与整体氛围。
你必须将以下元素整合成流畅的一句话:
主体与描述:主要主体加上一两个清晰的形容词(如“戴帽子的高个男子”)。
场景与描述:环境及其背景(如“在繁忙的城市公园”)。
运动:主要动作,需更详细描述(如“快步行走”)。
氛围:若明显,用一个词或短语描述整体情绪(如“宁静”、“充满活力”)。
严格遵守以下规则:
不要描述或命名任何艺术风格。
若镜头运用是核心特征,可提及,例如“慢动作”。
始终以短语“Lookback style.”开头。
示例:
Lookback style. 一名身穿黄色外套的年轻女子在落叶纷飞的公园中奔跑,营造出孤寂的氛围。
Lookback style. 一辆经典的红色敞篷车行驶在阳光明媚的沿海高速公路上,散发出活力气息。
Lookback style. 一位厨师在明亮的厨房里迅速切着木板上的蔬菜。
Lookback style. 在慢动作中,一滴水落入平静的池塘,泛起涟漪。
Lookback style. 一只巨大的棕熊在湍急的河流中抓起一条鱼,展现出自然的力量。
- 为低分辨率段(极简字幕)生成字幕的提示词为:
你的任务是生成一句简洁的句子,仅描述视频中最核心的动作。
分析视频,识别三个基本元素:
主体:主要人物、动物或物体。使用通用术语,如“一个人”或“一辆车”。
场景:大致环境。使用简单描述,如“户外”或“在房间内”。
运动:主要动作。使用简单动词,如“行走”或“移动”。
严格遵守以下规则:
不要描述颜色、纹理、面部表情或小背景物体。
不要识别镜头运镜,如“特写”或“摇摄”。
不要解读情绪、氛围或任何艺术风格。
始终以短语“Lookback style.”开头。
示例:
Lookback style. 一个人走过田野。
Lookback style. 一辆车在道路上行驶。
Lookback style. 一只动物穿过森林奔跑。
Lookback style. 两个人站在房间中。
Lookback style. 一个物体从天而降。
最后,图像数据集(静态帧,源自视频)以1280x640分辨率训练,字幕提示词为:
你的任务是生成对一张静态图像的详细描述。聚焦于构图、字面视觉元素,以及某一特定时刻的隐含状态。
关键规则:不要描述随时间发生的动作或运动。不要说“一个人正在行走”,而应描述其状态为“一个人被定格在迈步瞬间”。
分析并描述画面中以下元素:
主体与场景:详细描述所有视觉元素,包括主体、物体与环境。
镜头语言:识别静态镜头属性,如镜头类型(如特写、中景)、拍摄角度(如低角度)、镜头效果(如鱼眼)。
氛围:分析单幅图像中蕴含的情绪。
隐含动作:可描述主体的姿态或状态,暗示潜在动作(如“准备跳跃”、“凝固在舞蹈中”)。
严格遵守以下规则:
不要描述或命名任何艺术风格。
仅描述字面上可见的内容。
始终以短语“Lookback style.”开头。
示例:
Lookback style. 一幅中景画面,一位穿着米色长风衣的优雅女性,静立于一幅著名画作前。柔和的光线突显了她外套的纹理与宁静的面部表情。构图营造出平静沉思的氛围。
Lookback style. 低角度镜头捕捉到一名篮球运动员在空中凝固,正准备扣篮。强烈的场馆灯光在其紧绷的肌肉上形成鲜明高光与阴影,传递出强大能量与巅峰动作感。
Lookback style. 广角镜头捕捉日出时壮丽的山脉。前景是一片平静如镜的湖泊,天空被橙红与粉紫渲染。画面具有宏伟而宁静的氛围。
Lookback style. 这一帧是极度特写的独眼,泪痕斑驳,以高对比黑白呈现。焦点锐利聚焦于睫毛与瞳孔中的倒影,营造出极度亲密而忧伤的情绪。
总体而言,我认为提升字幕的“层级”有助于增强模型的理解能力。
在所有我为Wan2.1制作的LoRA中,这个可能在提示遵循与理解方面表现最佳。
但(一如既往)我不会提供任何数值证据 🙃
训练
该LoRA使用Takenoko在配备64GB内存和RTX 3090的Windows 10系统上训练,训练参数如下:
rank/alpha: 32/32
optimizer: AdamW8bit
learning rate: 5.0e-5
weight decay: 0.01
lr_scheduler: Polynomial
lr_warmup_steps: 200
lr_scheduler_power: 1.0
针对此LoRA,我采用了一种可变的流偏移策略:前4900步使用discrete_flow_shift = 5,后续步骤(至30000步)使用discrete_flow_shift = 3。
我尝试达成的目标如下:
在训练过程中,偏移量控制模型学习去噪的噪声等级。调整偏移量可使训练侧重于结构(高噪声等级)或细节(低噪声等级)。此可视化帮助我理解(或至少相信我理解了)这一概念。
我的设想是:在训练初期,通过使用更高的偏移值,使模型聚焦于学习结构与运动——这些特征在高噪声段最显著。这将使逆去噪过程中基于Sigmoid的时间步采样分布中心偏向更高的时间步(即更高的噪声等级)。随后,在训练后期降低偏移值,使模型更专注于学习更细微的细节,如面部表情、织物纹理及其他高频特征,这些在低噪声等级下更易被学习。
换句话说,较高的偏移值将Sigmoid采样时间步的概率推向高噪声区域(“y”值接近1.0,对应去噪过程的早期步骤)。在此阶段,模型处理的是严重加噪的输入,从而学习结构与低频模式,如布局与全局运动。
降低偏移值则使时间步分布更集中于低噪声区域,增加后期去噪步骤的训练样本密度,此时模型接触更干净的输入,有助于聚焦于高频细节,如纹理、面部特征与微观结构。
(这也解释了为何在使用较少推断步骤时推荐提高偏移值:步骤越少,模型必须从更高的噪声等级开始,才有足够空间构建连贯结构。若Sigmoid分布中心过于偏左,靠近低噪声区域,模型将缺乏足够高噪声步骤来建立一致的结构理解。)
我还不确定这个方法的效果如何,还需要更多实验。我现在认为,或许应该进一步减小位移,比如降到1,在大约13k步时更加强调对细节的学习。我注意到的一点是,模型对摄像机运动提示的响应能力有所提升;现在它能更顺畅地遵循这些提示了。不过,显然在2.2版本发布后,这一点已不再相关。
总之,我训练到了30K步。训练过程有些奇怪,因为在大约11K步后,平均损失和验证损失几乎变得平坦,但样本质量却持续改善,直到约22K步左右。在对多个提示进行测试后,我选择了第20580步的检查点。
尾声
回顾这五个月,Wan 2.1 是一个出色的模型,已经赢得了它在历史中的地位(就像那些才华横溢的开发者,创造了这项令人印象深刻的作品)。但现在是时候转向2.2了,它似乎是一个非常值得的继任者,修复了2.1的主要缺陷——运动连贯性差。我相信我们会玩得非常开心!🔥
