scenario-video

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Scenario Video Generation and Editing

Scenario 视频生成与编辑

Overview

概述

Scenario exposes a large video catalog through one MCP loop: text-to-video and image-to-video generators plus video-to-video editors, lipsync, upscalers, and deterministic cut/split/concat tools. Per-family contracts:
scenario-kling
,
scenario-veo
,
scenario-seedance
,
scenario-gemini-omni
,
scenario-luma-video
,
scenario-runway
,
scenario-grok-imagine-video
,
scenario-wan
,
scenario-minimax-video
,
scenario-vidu
.
Connection and the core generation loop: see the
scenario
skill. If a sibling skill named here is missing from your available skills, ask the user to install it (
npx skills add scenario-labs/skills --skill <name>
); unattended, proceed from tool schemas and flag the gap.
Scenario 通过一个 MCP 循环提供庞大的视频工具目录:文生视频和图生视频生成器,以及视频转视频编辑器、口型同步、超分工具,还有确定性的剪切/分割/拼接工具。各模型家族的技能合约包括:
scenario-kling
、
scenario-veo
、
scenario-seedance
、
scenario-gemini-omni
、
scenario-luma-video
、
scenario-runway
、
scenario-grok-imagine-video
、
scenario-wan
、
scenario-minimax-video
、
scenario-vidu
。
连接方式和核心生成循环:参见
scenario
skill。如果此处列出的某个兄弟技能不在你的可用技能列表中,请让用户安装它(
npx skills add scenario-labs/skills --skill <name>
);若处于无人值守状态,则根据工具 schema 继续操作并标记缺失项。

Quick reference

快速参考

StepToolNotes
Find a model
recommend
or
search
recommend
with the need in the user's own words plus a
capability
from its enum (
img2video
,
video2video
,
audio2video
for a song; upscaling footage and syncing it to a track are both
video2video
);
search
for a name
Inspect inputs
model_schema_get
Always before
model_run
; video schemas differ widely (duration, aspect ratio, frame anchors)
Upload source
upload_asset
A local still or clip becomes an
asset_id
Generate
model_run
wait=false
for video;
dry_run=true
to estimate cost first
Wait
jobs_wait
Re-call with the returned
pending_job_ids
until done; its ~180s timeout is not an error
Review
asset_display
/
asset_download
Display inline;
asset_download
returns the file URL, save it with
curl -L
步骤工具说明
查找模型
recommend
或
search
recommend
使用用户自己的话描述需求,再加上其枚举中的一个
capability
(歌曲对应的能力为
img2video
、
video2video
、
audio2video
;素材超分和音轨同步都属于
video2video
);
search
用于按名称查找模型
检查输入
model_schema_get
始终在
model_run
之前执行;视频 schema 差异极大(时长、宽高比、帧锚点)
上传源文件
upload_asset
本地静态图片或视频片段会转换为
asset_id
生成
model_run
视频任务设置
wait=false
;可先设置
dry_run=true
预估成本
等待
jobs_wait
使用返回的
pending_job_ids
重复调用直到完成;其约180秒的超时不属于错误
查看结果
asset_display
/
asset_download
内联显示;
asset_download
返回文件 URL,可使用
curl -L
保存

Worked example: animate a key art still into a short ad clip

实操示例:将主视觉静态图制作成短广告片段

  1. recommend
    with the user's own words as
    prompt
    (the need is a capability,
    img2video
    ); handle
    next_step
    as the
    scenario
    skill directs.
  2. model_schema_get
    on the pick. Note the image field, duration options, and any last-frame anchor.
  3. upload_asset
    the still; it returns
    asset_id="asset_abc"
    .
  4. model_run
    with
    parameters={"image": "asset_abc", "prompt": "Close-up on the mug; slow dolly-in as steam curls through window light, shallow focus on the rim. Room tone, no music, no subtitles."}
    and
    wait=false
    . Returns a
    job_id
    .
  5. jobs_wait
    with
    job_ids=["job_xyz"]
    , re-called with
    pending_job_ids
    while any remain.
  6. asset_display
    the output (
    asset_id
    ), then
    asset_download
    (no
    format
    ).
The source image already fixes the look, so prompt only motion, camera, and timing ("orbit left", "hold on the final pose"), changing one clause per retry. A first-frame field pins how the clip opens (a last-frame field, where offered, how it lands, and only beside a first frame: alone it is a 400
A first frame must be provided if a last frame is set
); a reference-image field carries identity and look without fixing any moment. So an exact opening composition goes in as a rendered still and a recurring character or product as references; whether one run takes both is per schema, and several forbid the pair. A reference-audio field is guidance the prompt has to claim: what it conditions (timing and energy on one family, a voice on another) and whether it rides alone or needs an image or video reference beside it are the family skill's contract, but on every member a track passed silently beside a character reference is easily ignored, so the prompt says what the track is for ("the reference audio is her own voice, lip-synced" for speech; the beat the cuts land on for music). Trained LoRAs do not ride along: at authoring time no video member took
loras
, so a custom style reaches video through a still generated with the LoRA and passed as the first frame or a reference. Iterate at the cheapest resolution tier and shortest useful
duration
, then upscale the keeper: a re-run at a higher tier is a new generation, since many video schemas expose no
seed
and none promises one reproduces a shot across tiers.
  1. 调用
    recommend
    ,将用户的原始描述作为
    prompt
    (需求对应的能力是
    img2video
    );按照
    scenario
    技能的指引处理
    next_step
    。
  2. 对选中的模型调用
    model_schema_get
    。注意图片字段、时长选项,以及是否有末帧锚点。
  3. 调用
    upload_asset
    上传静态图;返回
    asset_id="asset_abc"
    。
  4. 调用
    model_run
    ,传入
    parameters={"image": "asset_abc", "prompt": "Close-up on the mug; slow dolly-in as steam curls through window light, shallow focus on the rim. Room tone, no music, no subtitles."}
    和
    wait=false
    。返回
    job_id
    。
  5. 调用
    jobs_wait
    ,传入
    job_ids=["job_xyz"]
    ,如果还有
    pending_job_ids
    则重复调用。
  6. 用
    asset_display
    展示输出结果(
    asset_id
    ),然后调用
    asset_download
    (不指定
    format
    )。
源图已经固定了视觉风格,因此提示词只需描述运动、镜头和时机(「向左环绕」、「保持最终姿势」),每次重试仅修改一个分句。
first-frame
字段用于固定片段的开场方式(若提供
last-frame
字段则固定结束方式,且必须与首帧同时使用:单独使用会返回400错误
A first frame must be provided if a last frame is set
);
reference-image
字段承载角色身份和视觉风格,但不固定任何时刻的画面。因此,精确的开场构图需要作为渲染好的静态图传入,而常驻角色或产品则作为参考图传入;一次运行是否能同时接受两者取决于 schema,部分工具禁止同时使用这两个参数。
reference-audio
字段是提示词必须明确说明用途的引导信息:它的作用条件(某系列是时机和节奏,另一系列是声音)以及它是单独使用还是需要搭配图片或视频参考,属于该系列技能的合约规则,但在所有模型中,若音轨和角色参考一同静默传入很容易被忽略,因此提示词要明确说明音轨的作用(语音场景写「参考音频是她自己的声音,用于口型同步」;音乐场景写「剪辑点踩在节拍上」)。
训练好的 LoRA 无法直接使用:在编写本文时,没有视频模型支持
loras
参数,因此自定义风格需要先用 LoRA 生成静态图,再作为首帧或参考图传入视频生成流程。先用最低分辨率档位和最短的可用
duration
进行迭代调试,再对满意的结果进行超分:更高分辨率档位的重新运行是一次全新的生成,因为很多视频 schema 不提供
seed
参数,也没有任何模型承诺能跨分辨率档位复现同一个镜头。

Prompting a shot

镜头提示词撰写

Write the prompt as a shot direction in sentences, not tags: shot size, setting, subject and one action, one named slow camera move, light source, style, and an audio line, in the order the family skill gives. Named moves and concrete light survive generation; mood words do not.
Many generators return sound with the picture (dialogue, effects, ambience, sometimes a score), switched by
generateAudio
or
audio
where the schema has one, each with its own default; with none, the search hit says whether sound comes back, and the prompt is the only lever over what does. Effects and ambience go in plain words, dialogue in quotes, plus a generic "no music", never a named genre or instrument (the score is laid once in assembly; switch the audio off when assembly supplies the whole soundtrack) and "no subtitles, no on-screen text", since a caption tool adds captions and removes none. Exclusions ride the prompt unless the schema has
negativePrompt
. Type the viewer must read is composited in assembly (
scenario-video-assembly
): generated type drifts.
将提示词写成镜头指导的句子形式,而非标签:景别、场景、主体和一个动作、一个指定的缓慢镜头运动、光源、风格、还有一句台词,按照该系列技能给出的顺序排列。指定的运动和具体的光线描述会在生成中被保留;情绪类词汇则不会。
很多生成器会返回带声音的画面(对话、音效、环境音,有时还有配乐),通过 schema 中的
generateAudio
或
audio
参数开关,每个参数都有各自的默认值;如果没有这些参数,搜索结果会说明是否返回声音,而提示词是唯一能控制声音内容的手段。音效和环境音用平实的语言描述,对话用引号标注,再加上通用的「无音乐」说明,永远不要指定音乐流派或乐器(配乐在剪辑阶段统一添加;如果剪辑阶段提供完整音轨则关闭音频生成),还要加上「无字幕,无屏幕文字」,因为字幕工具是后期添加字幕的,无法移除生成的文字。排除项写在提示词中,除非 schema 提供
negativePrompt
参数。需要观众阅读的文字要在剪辑阶段合成(
scenario-video-assembly
):生成的文字会出现偏移。

Editing existing footage

编辑现有素材

All editing is
model_run
on a video-input model found with
recommend
:
  • Prompt-driven edits (restyle, swap objects, characters, backgrounds, or reframe to another aspect ratio). A reframe outpaints past the frame, unlike a deterministic resize. When a prompt-driven editor misses a directed change (a recolor, a prop swap), edit the still:
    asset_get
    returns the clip's
    firstFrame
    as a free asset id; edit it with an image model and re-render from it as the first frame, the source clip beside it where the schema takes that pair (few do).
  • Lipsync and dubbing: see the next section.
  • Upscaling up to 4K.
  • Deterministic utilities (trim, split, resize, effects, grading, frame extraction, background removal): see
    scenario-video-editing
    . Assembling a finished cut: see
    scenario-video-assembly
    .
  • Extending a clip from its last frame, on a dedicated extend member or by chaining first-frame runs past any member's duration cap:
    asset_get
    the rendered clip and pass its
    lastFrame
    asset id as the next run's first frame, writing that prompt from what the frame shows (positions, facing, the camera's side, so screen direction survives the seam) rather than from the plan, since renders drift from it; join the runs with
    model_scenario-video-concat
    (a fixed id, for the same reason as the cut and split tools; hard cuts by default, per
    scenario-video-assembly
    ).
所有编辑操作都是在通过
recommend
找到的视频输入模型上执行
model_run
:
  • 提示词驱动的编辑(重新风格化、替换物体、角色、背景,或重构图为其他宽高比)。重构图是在画面外进行补绘,与确定性的调整大小不同。当提示词驱动的编辑器未实现指定的修改(如重新上色、道具替换),可编辑静态帧:
    asset_get
    会返回片段的
    firstFrame
    作为免费资产 ID;用图片模型编辑该静态图,再作为首帧重新渲染,若 schema 支持则可同时传入源片段(很少有模型支持)。
  • 口型同步和配音:见下一节。
  • 最高 4K 分辨率的超分。
  • 确定性工具(修剪、分割、调整大小、特效、调色、帧提取、背景移除):参见
    scenario-video-editing
    。组装完成的剪辑:参见
    scenario-video-assembly
    。
  • 从片段的末帧延长片段:可使用专门的延长模型,或者通过链式首帧运行突破任何模型的时长上限:用
    asset_get
    获取已渲染片段,将其
    lastFrame
    资产 ID 作为下一次运行的首帧,根据帧中实际显示的内容(位置、朝向、镜头角度,确保画面方向在衔接处保持一致)而非原计划撰写提示词,因为渲染结果可能与计划有偏差;使用
    model_scenario-video-concat
    拼接多次运行的结果(这是一个固定 ID,与剪切、分割工具的原因相同;默认采用硬切,参见
    scenario-video-assembly
    )。

Dubbing is not lipsync

配音不等于口型同步

Dubbing translates the speech and keeps each speaker's own voice, tone, and timing. It does not move the mouth, so a dubbed talking head still has lips forming the original language. Three steps, after any trim the limits below require:
  1. Dub. Takes the clip as
    file
    and a required
    targetLang
    from the schema's allowed values. Omit
    sourceLang
    to auto-detect, since the value that means auto differs between models. When a brand or name must survive translation, pick a hit whose schema carries
    keyterms
    , as not all do; where it is
    array: true
    , pass
    ["Scenario"]
    even for one term.
  2. Extract. Dubbing returns a dubbed video, not a bare track, and lipsync wants an audio asset. Pull the speech out with
    model_scenario-audio-extract
    , a fixed first-party id: Scenario's single deterministic tool for the operation, so discovery would only re-derive it.
  3. Lipsync. Pass the dubbed video together with its extracted track. No schema says whether the input's own audio survives, so listen to the output before shipping. The clip and the track are separate fields,
    video
    /
    audio
    on most hits and
    videoUrl
    /
    audioFile
    on others. A duration-mismatch control is not universal: where present it is
    syncMode
    or
    lipsyncMode
    (
    cut_off
    ,
    loop
    ,
    bounce
    ,
    silence
    ,
    remap
    ) with a per-model default, and there
    loop
    and
    bounce
    extend the shorter stream while
    cut_off
    ends at it; elsewhere a
    loop
    boolean loops the audio instead.
Judge a localized talking head on a stylized character before promising it on a photoreal one.
配音是翻译语音内容,同时保留每个说话者的声音、语气和节奏。它不会改变嘴部动作,因此配音后的说话头像仍然呈现原语言的嘴型。在进行任何下方时长限制要求的修剪后,按三个步骤执行:
  1. 配音。 将片段作为
    file
    传入,同时传入 schema 允许值范围内的必填参数
    targetLang
    。省略
    sourceLang
    以启用自动检测,因为不同模型中表示自动检测的值不同。当品牌或名称必须保留不被翻译时,选择 schema 包含
    keyterms
    的结果,因为并非所有模型都支持该参数;若
    keyterms
    为
    array: true
    ,即使只有一个术语也要传入
    ["Scenario"]
    。
  2. 提取音频。 配音返回的是带配音的视频,而非纯音轨,而口型同步需要音频资产。使用
    model_scenario-audio-extract
    提取语音,这是一个固定的官方 ID:Scenario 用于此操作的唯一个确定性工具,因此搜索功能只会找到它。
  3. 口型同步。 将配音后的视频与提取的音轨一同传入。没有 schema 说明输入的原音频是否会保留,因此交付前一定要试听输出结果。片段和音轨是独立的字段,大多数模型使用
    video
    /
    audio
    ,其他模型使用
    videoUrl
    /
    audioFile
    。时长不匹配控制并非通用功能:若支持则参数为
    syncMode
    或
    lipsyncMode
    (可选值包括
    cut_off
    、
    loop
    、
    bounce
    、
    silence
    、
    remap
    ),每个模型有默认值,其中
    loop
    和
    bounce
    会延长较短的媒体流,而
    cut_off
    会在较短的流结束时终止;不支持该参数的模型则使用
    loop
    布尔值来控制音频循环。
在承诺能实现写实角色的本地化说话头像之前,先测试风格化角色的效果。

Duration limits

时长限制

Where a model bounds input length it rejects rather than trims: a 30.08 second reference against a 30.0 second limit fails the whole run, with the error naming both numbers. A clean
dry_run
prices the payload and is not proof it clears a ceiling: read the input's duration off
asset_get
and compare it to the cap yourself. A ceiling can be a typed
max_duration
on the file field, prose in that field's description, or absent, so check both, on the audio input as readily as the video. When one applies, trim with the deterministic cut or split tools (
model_scenario-video-cut
,
model_scenario-video-split
, fixed ids for the same reason as the extractor above) before the run that enforces it, and before any step whose output must match the trimmed footage, such as a dub. Land inside the stated range, not on its edge.
Floors bind as hard as caps. The shortest clip a member renders is in its schema, as a
min
on a numeric
duration
, as the smallest of a
duration
enum's
allowed_values
, or as a fixed length when the field is absent (5 seconds on one reference-conditioned member, 1 or 2 on others at authoring time), so a 1 to 2 second VFX element is not a
duration: 1
request on the first pick:
recommend
with the clip length in the user's words, read the floor off the schema, and when nothing goes low enough render the shortest clip and trim it with
model_scenario-video-cut
, or ask for several events in one clip ("three explosions, one after another") and split them with
model_scenario-video-split
. Extending the other way, past a
max
, is the last-frame chain under Editing existing footage.
如果模型对输入长度有限制,它会直接拒绝请求而非自动修剪:30.08秒的参考素材对应30秒的上限会导致整个运行失败,错误信息会同时列出这两个数值。成功的
dry_run
仅能计算负载的费用,不能证明负载符合时长上限要求:通过
asset_get
读取输入的时长,自行与上限比较。上限可能是文件字段上的
max_duration
类型值,也可能是该字段描述中的文字说明,或者不存在,因此两者都要检查,音频输入和视频输入一视同仁。如果存在上限,在执行强制该限制的运行之前,使用确定性的剪切或分割工具(
model_scenario-video-cut
、
model_scenario-video-split
,固定 ID,原因与上述提取工具相同)进行修剪,且要在任何输出必须匹配修剪后素材的步骤(如配音)之前完成。确保时长落在规定范围内,而非刚好卡在边缘。
下限和上限一样严格。模型能渲染的最短片段时长在其 schema 中定义,可能是数值型
duration
的
min
值,或者
duration
枚举的
allowed_values
中的最小值,或者当该字段不存在时为固定长度(编写本文时,一个参考条件模型为5秒,其他模型为1或2秒),因此1到2秒的 VFX 元素不能直接在首选模型上发送
duration: 1
的请求:用用户的语言描述片段长度来调用
recommend
,从 schema 中读取下限,如果没有足够短的模型,就渲染最短支持的片段,再用
model_scenario-video-cut
修剪到所需长度,或者在一个片段中要求多个事件(「三个爆炸,一个接一个」)再用
model_scenario-video-split
分割。反之,超过
max
时长的延长方法,参见上文「编辑现有素材」中的末帧链式方案。

Lipsync: footage or a still

口型同步:视频素材还是静态图

Two lanes, told apart by the input in hand. Footage plus a new track is
recommend
with
capability="video2video"
and the ask in the user's words: these members redraw the mouth region and keep the rest of the frame (
video
and
audio
, or
videoUrl
and
audioFile
; some take typed
text
with a voice instead of audio, never both). A still plus a track is
capability="img2video"
: the talking-avatar members animate the whole portrait and invent its motion, so they serve a portrait with no footage, or footage whose motion is disposable, and never rescue a clip whose lipsync failed, since the result is a different performance of a different shot. Naming lipsync as the capability gets re-read as one of these two, so name the input.
Preflight is free and decides the run. Sync members redraw pixels around the mouth they detect; a face that is small in frame, turned away, occluded, or blurred by motion gives them nothing to redraw, and the run then completes and bills with the mouth still under the new track, the failure users report as "no lipsync at all".
asset_display
the clip's
firstFrame
(free, from
asset_get
): the lips should read at display size. When they do not, crop onto the face first (
model_scenario-compose-video
, the compositor
scenario-video-assembly
teaches and a fixed first-party id like the cut tools above, or a generative reframe prompted to tighten on the speaker; an outpainting reframe widens the frame and shrinks the face) rather than retrying members. A crop lowers resolution, so read the cropped clip's width and height off
asset_get
against the member's floor before pricing the sync run, and upscale it or pick a member without a floor when it falls short. With several faces in frame, pick a member exposing speaker selection (
activeSpeaker
on one at authoring time) or crop to one speaker. Per-member limits sit in the schema, not the description: one member takes clips of 2 to 10 seconds at 720p to 1080p, others carry none; the
video
field carries
cost_impact: true
, so trim to the shipped range before the run (Duration limits above).
Plan gating is common here:
recommend
flags such members on their ranked entry with
requires_plan_upgrade: true
and names the plan in
required_plan
(unless its response says plan gating is
_degraded
), and running one anyway returns a 403 naming the model and the plan it needs, which no retry clears; pick an available member or surface the upgrade, per the
scenario
skill's plan row.
A completed job proves the model ran, not that the mouth moved. Before shipping, download the output and the source and compare frames at the same timestamps (sweep both into contact sheets locally,
ffmpeg -vf "fps=2"
, and read the mouth region): unchanged mouth pixels across the sweep mean the face was not found, and the same payload reproduces it, so change the framing or the lane rather than the seed. Listen as well: whether the input's own track survives is undocumented (Dubbing above).
分为两种路径,根据你手头的输入类型区分。已有视频素材加新音轨的情况,使用
capability="video2video"
和用户的需求描述调用
recommend
:这类模型会重绘嘴部区域,保留画面其余部分(参数为
video
和
audio
,或者
videoUrl
和
audioFile
;部分模型支持带语音的
text
类型输入而非音频,但永远不会同时支持两者)。静态图加音轨的情况对应
capability="img2video"
:数字人说话模型会让整个肖像动起来并生成动作,因此适用于没有视频素材的肖像,或者动作可以丢弃的素材,绝对不能用来挽救口型同步失败的片段,因为结果会是不同镜头的不同表演。将口型同步指定为能力会被系统重新解读为上述两种之一,因此一定要说明输入类型。
预检是免费的,且直接决定运行结果。同步模型会重绘它们检测到的嘴部周围的像素;如果脸部在画面中很小、转向别处、被遮挡,或者因运动模糊,模型就没有可重绘的区域,此时运行会完成并扣费,但嘴部动作与新音轨不匹配,用户会将这种失败反馈为「根本没有口型同步」。调用
asset_display
查看片段的
firstFrame
(免费,来自
asset_get
):嘴唇在显示尺寸下应该清晰可见。如果不清晰,先裁剪到脸部区域(使用
model_scenario-compose-video
,即
scenario-video-assembly
中介绍的合成器,与剪切工具一样是固定的官方 ID;或者使用生成式重构图,提示词收紧到说话者;注意补绘式重构图会加宽画面,反而缩小脸部),而非重试其他模型。裁剪会降低分辨率,因此在为同步运行定价之前,通过
asset_get
读取裁剪后片段的宽高,与模型的分辨率下限比较,如果不达标则先超分,或者选择没有分辨率下限的模型。如果画面中有多张脸,选择支持说话者选择的模型(编写本文时部分模型提供
activeSpeaker
参数),或者裁剪到单个说话者。每个模型的限制在 schema 中而非描述里:有的模型支持2到10秒、720p到1080p的片段,其他模型没有限制;
video
字段带有
cost_impact: true
属性,因此运行前要修剪到最终交付的时长范围(参见上文的时长限制)。
计划门槛在这里很常见:
recommend
会在排名条目中标记这类模型,带有
requires_plan_upgrade: true
标识,并在
required_plan
中指明所需计划名称(除非响应显示计划门槛为
_degraded
状态),强行运行会返回403错误,指明模型名称和所需计划,重试也无法解决;根据
scenario
技能的计划说明,选择可用的模型或者告知用户需要升级计划。
任务完成仅能证明模型已运行,不能证明嘴部确实动了。交付前,下载输出文件和源文件,比较相同时间戳的帧(本地使用
ffmpeg -vf "fps=2"
生成联系表,查看嘴部区域):如果整个序列中嘴部像素没有变化,说明没有检测到人脸,相同的负载会复现该问题,因此需要改变构图或切换路径,而非修改
seed
。同时也要试听:输入的原音轨是否会保留没有明确文档说明(参见上文的配音部分)。

A whole song in one run

一次运行生成整首歌曲 MV

recommend
with
capability="audio2video"
and the user's words finds members that turn a finished song into a music video in one call. The whole-song member live at authoring time took 10 seconds to 6 minutes of
audio
and returned a video as long as the track (the same ranking also lists segment-length members capped near 20 seconds), so:
  • Trim first.
    audio
    carries
    cost_impact
    , as does
    resolution
    : cut to the section that ships with
    model_scenario-audio-cut
    , then
    dry_run
    the real payload.
  • Style reference only under the custom style. A preset
    style
    ignores
    styleImage
    ; set the custom value to use one. The character
    image
    is a separate, optional field. It takes no prompt:
    style
    ,
    musicStyle
    , and the reference images carry the direction.
  • Lyrics become burned-in subtitles. Leave
    lyrics
    empty when captions are added in assembly (
    scenario-video-assembly
    ), or the two sets collide.
Pick this lane for one pass over the whole track; beat-cut shots under per-shot direction are
scenario-seedance-music-video
. Launch with
wait=false
and
jobs_wait
, since the job scales with the song.
使用
capability="audio2video"
和用户的需求调用
recommend
,可以找到能一次调用将成品歌曲转换成 MV 的模型。编写本文时可用的整首歌处理模型支持10秒到6分钟的
audio
输入,返回与音轨时长相同的视频(同一排名中也列出了上限约20秒的分段时长模型),因此注意事项如下:
  • 先修剪。
    audio
    带有
    cost_impact
    属性,
    resolution
    也是:使用
    model_scenario-audio-cut
    剪切到需要交付的片段,然后对实际负载执行
    dry_run
    预估费用。
  • 仅在自定义风格下使用风格参考。 预设的
    style
    会忽略
    styleImage
    ;设置为自定义风格值才能使用参考图。角色
    image
    是独立的可选字段。该模式不需要提示词:
    style
    、
    musicStyle
    和参考图承载了所有创作方向。
  • 歌词会变成烧录字幕。 如果在剪辑阶段添加字幕(
    scenario-video-assembly
    ),请将
    lyrics
    留空,否则两套字幕会冲突。
选择这条路径可以一次性处理整个音轨;需要按镜头指导的踩点剪辑请使用
scenario-seedance-music-video
。使用
wait=false
启动任务,然后调用
jobs_wait
等待,因为任务时长与歌曲长度成正比。

Common mistakes

常见错误

  • Shipping a lipsync run on the strength of its completed status: the failure mode is a still mouth under the new track, so compare frames against the source first.
  • Calling
    model_run
    without
    model_schema_get
    : a payload that worked on Kling will not fit Veo.
  • Treating search hits as stable: catalogs evolve, so re-run
    search
    and prefer non-deprecated hits (a
    deprecated:<replacement_id>
    tag names the successor). Families retire whole generations on notice, and a retired member's per-member controls (a keyframe strength, an fps enum) do not carry over: re-read the successor's schema rather than porting the old payload, and when a saved id returns 404
    Model not found
    ,
    search
    the family name instead of retrying the id.
  • Excluding music by name in an audio-enabled prompt: the soundtrack is moderated on its own, and a named genre or instrument trips it even inside an exclusion. Describe diegetic sound positively ("room tone, footsteps, one voice"), or turn the audio field off.
  • 仅凭任务完成状态就交付口型同步结果:常见失败模式是新音轨下嘴部一动不动,因此一定要先和源文件比较帧画面。
  • 不调用
    model_schema_get
    就直接执行
    model_run
    :在 Kling 上能用的负载不一定适配 Veo。
  • 认为搜索结果是稳定不变的:工具目录会持续更新,因此要重新运行
    search
    ,优先选择未弃用的结果(
    deprecated:<replacement_id>
    标签会指明继任者)。模型系列会在通知后淘汰整代产品,已淘汰模型的独立控制参数(关键帧强度、fps 枚举)不会继承到新模型:重新阅读继任者的 schema,而非直接移植旧负载,当保存的 ID 返回404
    Model not found
    时,搜索系列名称而非重试该 ID。
  • 在支持音频的提示词中通过名称排除音乐:音轨会单独进行内容审核,指定流派或乐器即使写在排除项里也可能触发审核。正面描述画内声音(「房间氛围音、脚步声、一个人声」),或者直接关闭音频字段。