4、文本到视频(T2V)技术:文本编码器、交叉注意力与提示词工程

文本到视频,说白了就是让AI看懂你的文字描述,然后生成一段对应的视频。这背后涉及几个核心技术点:文本编码器怎么理解语言、交叉注意力怎么对齐文本和画面、以及我们怎么写出AI能“听懂”的提示词。

我个人习惯把T2V拆成三个环节来看:编码、注入、生成。编码是把文字变成向量,注入是把向量塞进模型,生成是最终出视频。今天咱们重点聊前两个,顺便把提示词工程的基础打牢。

4.1 文本编码器:CLIP与T5

文本编码器的作用,就是把一句人话变成一串数字(向量)。模型不认识“一只猫在追蝴蝶”,它只认识浮点数数组。

目前主流方案有两种:CLIPT5

4.1.1 CLIP:图文对齐的老牌选手

CLIP是OpenAI开源的模型,核心思路是用4亿对图文数据做对比学习。它把文本和图像映射到同一个向量空间,让匹配的图文对距离近,不匹配的远。

我在项目中遇到过一个问题:CLIP对具象名词理解很好,比如“红苹果”、“蓝天空”。但遇到抽象概念复杂关系,比如“在...之后”、“逐渐变成”,它就有点懵。为什么?因为CLIP的训练数据大多是静态图文对,缺少时序信息。

关键点:CLIP输出的文本向量维度通常是512或768,适合做全局语义匹配,但不擅长细粒度控制。

4.1.2 T5:更强的文本理解能力

T5是Google的文本到文本模型。它不局限于图文对齐,而是用海量纯文本数据训练。所以它对语法结构、逻辑关系、长文本的理解更强。

举个例子,你写“一个男人从左边走到右边,然后停下来”。CLIP可能只抓住“男人”、“左边”、“右边”这些关键词,但T5能理解“从...到...然后”这个时序关系。

我个人习惯:简单场景用CLIP,复杂场景用T5。如果视频需要精确控制物体运动轨迹或状态变化,T5是更好的选择。

模型 优势 劣势 适用场景
CLIP 图文对齐好、推理快 时序理解弱、抽象概念差 简单静态场景、风格迁移
T5 文本理解强、逻辑关系好 模型大、推理慢 复杂动作、多物体交互
我的建议:如果算力有限,先用CLIP做快速原型验证。等效果满意了,再换成T5做精细调优。

4.2 交叉注意力机制:文本怎么“看”视频

文本编码器把文字变成了向量,但怎么让视频生成模型“看到”这些向量?答案就是交叉注意力

你想想看,视频生成模型内部是一堆卷积或Transformer层。每一层都在处理图像特征。交叉注意力层的作用,就是让这些图像特征去“查询”文本特征,找到最相关的部分。

4.2.1 工作原理

简单来说,交叉注意力有三个输入:Query(查询)、Key(键)、Value(值)

  • Query:来自图像特征(比如当前帧的某个区域)
  • Key:来自文本特征(每个词对应的向量)
  • Value:也是文本特征

计算过程是:Query和Key做点积,得到注意力权重。然后用这个权重去加权求和Value。结果就是:图像区域从文本中“拿”到了它最需要的信息

举个例子,提示词是“一只白色的猫在草地上奔跑”。生成模型在处理“猫”这个区域时,交叉注意力会让它重点关注文本中的“白色”、“猫”、“奔跑”。而处理背景时,它会关注“草地”。

核心公式(简化版):
Attention(Q, K, V) = softmax(Q * K^T / sqrt(d)) * V

4.2.2 注入方式:早融合 vs 晚融合

文本条件怎么注入到模型里?主要有两种方式:

  • 早融合(Early Fusion):在模型最开始的层就把文本特征拼进去。好处是文本信息能影响整个生成过程,坏处是计算量大。
  • 晚融合(Late Fusion):在模型中间或后期才注入文本。好处是节省算力,但文本对底层特征的控制力弱。

我记得有一次做项目,用早融合时视频里物体的位置控制得很准,但生成速度慢了一倍。换成晚融合后速度快了,但物体经常“跑偏”。最后我折中了一下:在关键层做早融合,其他层做晚融合。效果和速度都满意了。

避坑指南:我曾经在交叉注意力层忘记做mask处理,导致文本中的padding token也参与了注意力计算。结果生成的视频里出现了莫名其妙的噪点。记得一定要对padding token做mask,让它们的注意力权重为0。

4.3 文本条件注入:不只是“塞进去”

文本条件注入,不是简单地把文本向量拼到图像特征里就完事了。这里有几个细节要注意。

4.3.1 注入位置

文本条件可以注入到:

  • 时间层:控制视频的时序变化(比如“逐渐变亮”)
  • 空间层:控制每一帧的画面内容(比如“左边有棵树”)
  • 时空层:同时控制时间和空间

我个人习惯:空间层用CLIP特征,时间层用T5特征。因为空间信息偏静态,CLIP够用;时间信息偏动态,T5更擅长。

4.3.2 注入强度

文本条件注入太强,视频会过拟合文本,失去多样性。注入太弱,视频又跟文本没关系。怎么调?

我一般用classifier-free guidance(CFG)来控制。CFG有一个scale参数,值越大,文本控制力越强。经验值:7.5到12之间。低于7.5,视频容易跑题;高于12,视频会显得僵硬。

小技巧:如果你发现生成的视频“太听话”,每个细节都严格按照文本来了,试着把CFG scale降到8左右。如果视频“不听话”,提到10以上。

4.4 提示词工程基础:让AI听懂人话

提示词工程,说白了就是写AI能理解的指令。同样的模型,不同人写提示词,效果天差地别。

4.4.1 结构化提示词

我建议把提示词拆成几个部分:

  • 主体:谁在做什么(“一只橘猫在追蝴蝶”)
  • 环境:背景是什么(“阳光明媚的草地”)
  • 风格:画面风格(“宫崎骏动画风格”)
  • 运动:怎么动(“蝴蝶忽高忽低地飞”)
  • 镜头:拍摄方式(“镜头缓慢推进”)

举个例子:

# 不好的提示词
一只猫在草地上

# 好的提示词
一只橘猫在阳光明媚的草地上追逐白色蝴蝶,宫崎骏动画风格,蝴蝶忽高忽低飞行,镜头缓慢推进,背景虚化

4.4.2 负面提示词

负面提示词告诉AI不要生成什么。这个非常有用。

我曾经生成一个“夜晚城市”的视频,结果画面里总有月亮。我加了“no moon, no lunar”到负面提示词里,问题就解决了。

常见的负面提示词:

  • 模糊、扭曲、变形
  • 多余的手指、畸形肢体
  • 水印、文字、logo
  • 低质量、噪点、压缩痕迹
经验之谈:负面提示词不要写太多,3-5个关键词就够了。写太多反而会限制模型的发挥空间。

4.4.3 权重控制

有些模型支持给关键词加权重。比如用括号或数字:

# 强调“橘猫”
一只(橘猫:1.5)在草地上奔跑

# 弱化“草地”
一只橘猫在(草地:0.8)上奔跑

权重范围一般在0.5到2.0之间。超过2.0,画面容易过饱和或出现伪影。

注意:不是所有模型都支持权重语法。用之前先查一下文档。我吃过这个亏,写了一大堆权重,结果模型全忽略了。

4.4.4 迭代优化

提示词工程不是一次搞定的。我的工作流是:

  1. 写初版:把核心要素写清楚
  2. 生成预览:用低分辨率快速跑一次
  3. 分析问题:哪里不对?主体?环境?运动?
  4. 修改提示词:针对问题调整
  5. 重复2-4步:直到满意

嗯,这里要注意:每次只改一个变量。不要同时改主体和风格,否则你分不清是哪个改动起了作用。

好了,文本到视频的核心技术就这些。文本编码器负责理解,交叉注意力负责对齐,条件注入负责控制,提示词工程负责沟通。把这四块搞明白,你就能写出高质量的T2V模型了。