只想改背景,却可能连原本表现好的画面也丢掉
有时你很满意产品演示中的手部动作和镜头移动,只想把背景调亮一些。如果从头生成视频,产品的位置和速度,甚至 Logo 出现的时机都可能改变。即使修改版的反应更好,也很难说明究竟是什么产生了影响。
Ray 3.2 的video_edit会接收已有视频作为源文件,并按自然语言指令重新渲染整个片段。它不像传统编辑器那样替换选定像素或单个场景,但可以将原视频的动作作为条件复用,从而建立以已验证动作为基准、只改变一个背景变量的编辑循环。
目标不是一次得到成片,而是检查整个片段,确认是否只改变了想要改变的元素,并且只将通过质量审核的修改版与原版进行比较。
用5秒片段运行第一个修改版
首次运行请以Luma Agents 官方 Video editing 指南为准。你需要 Luma 开发者账户和 API 密钥、可用的计费额度、Python 3.9 或更高版本,以及可从外部访问的 MP4 URL。官方 Python SDK 要求 Python 3.9 或更高版本。
使用公开 URL 或内联数据作为源文件时,文件必须不超过 200MB,视频必须不超过 18 秒。URL 必须可从外部访问,并提供如video/mp4之类的视频 MIME 类型。18 秒是允许上限,因此首次检查请从可快速审核的 5 秒片段开始。
- 检查 Python 版本并安装 SDK。 在 macOS 或 Linux 终端中运行下面的
python3 --version,确认版本为 3.9 或更高,然后在同一环境中安装luma-agents。 - 在Luma 开发者平台创建账户并生成 API 密钥。 登录后在开发者控制面板中签发密钥,并在同一终端会话中将其设置为
LUMA_AGENTS_API_KEY环境变量。Luma()会在初始化时读取该值,若没有该值就会报错。不要将密钥直接写入 Python 文件或共享文档。 - 将下面的 Python 代码保存为
edit_video.py。 请将example.com地址替换为你自己的、可从外部访问的 MP4 URL。提示词只指定一个变量:改变背景,同时保持包装颜色、质感、形状、Logo、镜头移动和手部动作。 - 在设置 API 密钥的同一终端中运行
python3 edit_video.py。 脚本会提交任务并轮询状态,直到变为completed或failed。若约 10 分钟后仍未完成,它会保留任务 ID 并退出,而不会无限等待。 - 立即保存已完成的 MP4,并与原版并排查看。 输出 URL 可能在一小时后过期。只有明亮背景发生变化,且所有其他保留要求在整个片段中都得到满足时,才将其视为第一个修改版。
# macOS 或 Linux 终端
python3 --version
python3 -m pip install luma-agents
export LUMA_AGENTS_API_KEY="已签发的_API_密钥"
# edit_video.py
import time
from luma_agents import Luma
client = Luma()
job = client.generations.create(
model="ray-3.2",
type="video_edit",
prompt="只将背景改为明亮的工作室。保持原始包装的颜色和质感、随行杯形状、白色 Logo 的位置和大小、镜头移动以及打开杯盖的手部动作。",
source={
"url": "https://example.com/tumbler-demo-5s.mp4",
"media_type": "video/mp4"
},
video={
"resolution": "720p",
"edit": {"auto_controls": True}
}
)
deadline = time.monotonic() + 600
while job.state not in ("completed", "failed"):
if time.monotonic() >= deadline:
print("超时。任务 ID:", job.id)
raise TimeoutError("视频任务未能在 10 分钟内完成。")
time.sleep(2)
job = client.generations.get(job.id)
if job.state == "completed":
print(job.output[0].url)
else:
print(job.failure_reason, job.failure_code)
# 在同一终端中运行
python3 edit_video.py
上述 URL、随行杯设置和 10 分钟限制只是用于说明首次运行输入格式的示例。必须替换为真实的公开 MP4,运行可能产生按使用量计费的费用。如果超时,请记录输出的任务 ID,并在稍后再次查询状态。本次调研只确认了官方文档和 SDK 中的请求结构,未测量实际生成质量、耗时或收费金额。
生成文件不等于编辑成功
首次请求的官方推荐值是auto_controls=true。只有当结果破坏了产品形状或动作时,才切换为手动strength或按信号设置的controls。自动控制和单独控制不能同时使用。
| 编辑情况 | 下一项设置 | 判定标准 |
|---|---|---|
| 首次编辑 | auto_controls=true | 只指示一个背景变化,并检查完整变换 |
| 更贴近原版地保留 | adhere_1~adhere_3 | 确认产品形状得以保留,同时背景变化不会过弱 |
| 保留与变化之间的平衡点 | flex_1~flex_3 | 重新审核形状、Logo 和接触场景 |
| 大幅重新诠释场景 | reimagine_1~reimagine_3 | 判断其是否比比较实验更适合概念探索 |
如需更细致的调整,可使用pose、depth、normals、trajectory和face信号。 没有比较资料证明某个特定预设在所有产品演示中都更好。更好的做法是先从自动控制结果中找出实际失败的部分,再逐一改变设置。
completed仅表示技术上已完成
如果背景变了,但产品颜色、Logo 和手部动作也变了,那么编辑实验就是失败的。无论 API 状态如何,都必须由人工将整个片段与原版进行比较。
仅在需要精确控制的时刻添加关键帧
在产品首次出现或 Logo 清晰显现的时刻,可以关联引导图像。官方 API 最多接收 64 个keyframes和等长的keyframe_indexes,将每张图像对应到源视频中的特定帧。
关键帧并不是只选择并编辑该场景的蒙版。它是在重新渲染整个片段时,传达特定时刻目标状态的参考图像。例如,你可以提取 Logo 特写帧,在图像编辑器中只精确修改背景,然后将该图像关联到原来的帧索引。
不要填满64个,先固定失败成本最高的时刻
64 个是允许上限,不是推荐数量。第一次尝试时,应从产品出现和 Logo 特写等一两个重要位置开始关联,这样更容易确认哪一项引导影响了结果。
keyframes和keyframe_indexes的数量必须相同。索引不能重复,且必须位于源帧范围内。 即使添加关键帧,也不能保证小标签或 UI 文字被精确保留,因此必须再次检查整个结果。
86%并不是产品演示的平均表现
转化率提升超过 86% 的数字,来自在线辅导服务TutorVista的单个落地页案例。它将新访客以 50:50 分配到原页面和自动播放视频页面,在多次优化静音、播放后动画等元素后,报告了相对原版超过 86% 的相对提升。
原始资料并未说明所用视频是产品演示。样本量、绝对转化率、实验周期和各个变更元素的独立效果也没有公开。因此,不能将 86%套用为产品演示视频的平均表现、单独添加一个视频的效果,或其他网站的目标值。
更广泛的观察数据也没有表明,仅有视频就能保证转化提升。Unbounce 在 2020 年末至 2021 年初的三个不同期间,分别分析了约 3.5 万个客户落地页。在 10 个行业中,含视频页面的表现通常相近或更低。 这并不是随机对照实验,因此不能断定视频导致了下降,但至少没有验证“添加视频=提高转化”的公式。
只对通过质量审核的修改版进行 A/B 测试
要解读修改效果,请保持页面正文、CTA 文案和流量条件不变,仅将视频分为原版 A 和修改版 B。如果本次问题是背景,就不要改变包装的颜色和质感、视频长度或手部动作。TutorVista 案例分离了对照页面和变体,Unbounce 也建议直接比较每个网站上的视频变体。
最终指标应在完成注册、购买和预约演示中选择一个符合实际业务目标的指标。播放开始率、分段流失率、完成率和 CTA 点击应作为寻找下一处修改位置的辅助指标,而不是用来宣布胜者。所需样本量取决于当前转化率、流量和想检测的最小差异,因此不能直接套用外部案例的数字。
在比较前确定要淘汰的版本
如果产品形状、包装颜色、Logo、小文字、手与产品的接触或镜头移动中有任何一项发生非预期变化,就不要将其纳入转化实验。即使包含多个变化的修改版获胜,也很难将其复用于下一次制作决策。
Ray 3.2 不会自动提高转化率。它减少的是丢弃已经表现良好的拍摄内容并从头开始的成本。以已验证的原版为基础,只指示一个背景变化并审核整个片段,就能将真正对自己访客有效的变化延续到下一支演示中,而不是依赖外部的 86%数字。



