ahel is live on Product Hunt today. Upvote

节奏疏密对比 — 高能快切 / 首尾呼吸 / 单镜时长上限

SkillDev tools

Invoke when the user has multiple locally generated short shots and needs to decide "how long each shot should be and how to arrange them" for a sense of rhythm; especially when they want the breathing feel of a "long take" but are limited by the per-shot duration cap. Core: compress high-energy seg

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 节奏疏密对比 — 高能快切 / 首尾呼吸 / 单镜时长上限 skill

What this skill tells your AI

The instructions your AI receives, as published by l-trunks/ai-film-skills in skills/rhythm-density/SKILL.md and read by ahel’s review.

⚠️ 本文出现的所有绝对秒数都是来源语料里那套工具(SCAIL2 动作迁移,上限 10 秒)的数,不是普适值。

你的上限写在 profile 的 max_shot_sec 里。参考:本仓库实测的 ltx-2.3-q4-12g2.04 秒 —— 只有来源的五分之一。 拿 10 秒去规划 LTX 的片子,每一镜都做不出来。

读本文时把「10 秒」一律换成你自己的 max_shot_sec,把「2-3 秒 / 4-5 秒」理解成疏密比例而非绝对值。 标定方法见 local-ai-film/profiles/calibration.md

R — 核心命题 (Reading)

节奏靠疏密对比制造,不靠整体调快调慢。

高能段(冲突、动作、情绪爆发)把单镜压到短端快切,配合蒙太奇式的重复画面,让信息密度和视觉冲击叠加。首尾段和过渡段反过来放长,给观众呼吸位 —— 这不是偷懒留白,是主动设计的松弛段,用来衬托高能段的压迫感。

来源语料给的具体档位是「高能 2-3 秒 / 呼吸 4-5 秒」,比例约 1 : 1.7比例是可迁移的,秒数不是。

第二条来自工具侧:单镜有一个不可突破的时长上限,任何节奏设计都必须先在这条线以内规划。来源那套工具的上限是 10 秒,本仓库实测的 LTX 是 2.04 秒 —— 数值差 5 倍,但「先看上限再排节奏」这个动作不变。

方法论来源见仓库根目录 ATTRIBUTION.md


I — 方法论骨架 (Interpretation)

节奏不是"整体感觉快一点"这种模糊指令,而是疏密对比——不同段落用不同的镜头时长,靠对比本身制造张力。

高能段(冲突/动作/情绪爆发)把单镜压到疏密比的短端,配合快切和蒙太奇式的重复画面,让信息密度和视觉冲击叠加起来。首尾段和过渡段反过来放到长端,给观众"呼吸位"——不是偷懒留白,而是主动设计的松弛段落,用来衬托高能段的压迫感。

疏密比约 1 : 1.7,绝对秒数按 max_shot_sec 缩放(来源语料 10s 档是 2-3s / 4-5s;本机 LTX 2.04s 档是 0.5-0.7s / 1.2-2.04s)。

这个疏密对比在 AIGC 生产链路里格外重要,因为单镜本身天生短、彼此独立,靠时长排布本身撑节奏,而不是靠单镜内部的复杂调度。

本地条件下还叠加了一个上限:单镜最长只能做到 max_shot_sec,这不是设计选择而是工具能力上限,任何节奏设计都必须先在这条线以内规划。

这个数因模型而异,差距极大:

profilemax_shot_sec疏密档位(按 1:1.7 折算)
来源语料(SCAIL2 动作迁移)10 s高能 2-3 s / 呼吸 4-5 s
ltx-2.3-q4-12g(本仓库实测)2.04 s高能 0.5-0.7 s / 呼吸 1.2-2.04 s

上限越小,能做的疏密对比范围越窄。 2.04 秒的 profile 下,「呼吸段」只能顶到上限本身,对比度天然弱于 10 秒的工具 —— 这时候要靠转场时长和运镜速度补,而不是硬拉单镜时长。

上限带来一个共同问题:云端片子里常见的"长镜头沉浸感"(一镜到底的跟拍、缓慢平移)在本地做不出来。解法不是放弃长镜头感,而是用同一机位连续拍两镜、运镜幅度都压到极缓,再首尾相接剪辑 —— 观众感知不到剪辑点,因为机位、光线、运镜速度都没有跳变,视觉上等效于一个更长的镜头。

⚠️ 这是本 skill 基于时长上限推导的解法,来源里没有讨论过。上限越小越难成立 —— 2.04 秒拼两镜也只有 4 秒,伪长镜效果有限。


A1 — 来源中的应用 (Past Application)

案例 1: S1 用蒙太奇与重复画面控制节奏(定性)

  • 问题: AIGC 生成的镜头天生短、彼此独立,如何靠剪辑本身做出节奏感,而不依赖单镜内部的调度
  • 方法论的使用: 反复强调要"利用蒙太奇这个玩法",用画面重复和并置本身去讲故事、控制节奏,而不是指望单镜长度或复杂运镜
  • 结论: 节奏感来自镜头组接方式,不是单镜时长
  • 结果: 《后山野花》以此完成剪辑并入围 LipTV 首届赛事

案例 2: S2 节奏段的量化设计(仅设计未生产)

  • 问题: 《深夜抓捕醉酒小猫实录》14 个镜头如何分配时长,才能既有张力又不显得均匀单调
  • 方法论的使用: 把 03-11 号(猫的抓捕追逐主体动作)划为高能段落,单镜压到 2-3 秒快切;把 01-02 号(开场)和 12-14 号(收尾)放慢到 4-5 秒做呼吸感
  • 结论: 高能段与首尾呼吸段的时长比例大约是 1:2,疏密对比明显
  • 结果: 仅设计未生产,量化方案本身未经实际生成验证

A2 — 触发场景 (Future Trigger) ★

用户会在什么情境下需要这个 skill?

  1. 手上有一批本地生成的短镜头(每镜 ≤ profile 的 max_shot_sec),要决定每一镜给多长、怎么排序
  2. 剪出来的片子被评价"太碎/太赶"或者"太拖/没有张力",但说不清是哪个段落的问题
  3. 想做"长镜头"或"沉浸式跟拍"的效果,但发现单镜一到 max_shot_sec 就硬切了
  4. 在设计分镜表时,需要给每个镜号预先标注一个大致时长

语言信号

  • "这几个镜头该给多长"
  • "节奏感不对,是太快还是太慢"
  • "怎么做出长镜头的感觉"
  • "pacing / shot duration / long take"

与相邻 skill 的区分(定稿)

  • editing-triad 的区别:本 skill 只管"节奏"这一个维度的具体秒数分布和硬顶约束;editing-triad 管节奏/音效/调色三个维度整体的决策顺序,且组合使用——editing-triad 第一步"搭节奏骨架"里的具体秒数分配,调用的就是本 skill
  • shot-breakdown 的区别:本 skill 依赖 shot-breakdown 先确定可用素材——本 skill 在素材已经确定之后决定怎么排布时长;shot-breakdown 管生成阶段怎么从抽卡结果里筛出可用画面,发生在本 skill 之前
  • material-driven-storyboard 的区别:本 skill 依赖那个 skill 提供的硬约束前提——本 skill 的单镜时长上限来自 profile(来源语料收录的是那套工具的 10s,本机实测 LTX 为 2.04s);若某镜的时长设计还没经过素材可行性检查,应先回 material-driven-storyboard
  • emotion-to-camera-language 的区别:本 skill 管镜与镜之间的时长关系,那个 skill 管单个镜头内部的机位光位怎么写

⚠️ 与科普片剪辑刀数模型 shot-rhythm-model 的区分(必读,两者最容易打架)

shot-rhythm-model 是从另一批完全不同的语料(技术爬爬虾 19 支科普/教程口播视频、1491 个剪辑点)蒸馏出来的剪辑参数模型,和本 skill 表面上都在讲"节奏",但服务的对象、锚点、约束完全不同,不能互相代入数值

维度rhythm-density(本 skill)shot-rhythm-model
服务对象无对白情绪/氛围短片有解说词的科普/教程/口播片
节奏锚点情绪起伏(高能段 vs 呼吸位)内容段类型(概念图解/流程叙述/结果验收/开场/结尾)+ 片长基线
是否有旁白没有旁白,无语速/气口这类时间基准有旁白,且旁白语速是恒定底盘(speech-cadence-baseline 的 375 字/分),画面节奏是自由变量
硬约束来源profile 的 max_shot_sec,是工具能力上限(来源语料 10s / 本机 LTX 2.04s)无绝对上限,只有相对系数(如概念段 ×0.4、开场 ×1.7),是内容密度规律
典型数值疏密比 ≈ 1:1.7,绝对值随 max_shot_sec 缩放概念图解 8–12s / 流程叙述 3–5s / 开场 1.5–3s(我们的竖版片档位)
判据情绪曲线上的高能/松弛段落内容段落类型 + 片长回归公式

误用场景举例:把 shot-rhythm-model 的"概念图解段给 8–12s 长镜头"套到无对白情绪片的呼吸位上——错,情绪片没有"概念"这个内容维度,呼吸位的 4–5s 是由情绪张力决定,不是由要不要讲清一个名词决定。反过来,把本 skill 的"高能段 2–3s"套到科普片的实操演示段——也错,科普片的镜头时长要看画面主体是否连续、是否有语速做锚点,不是看情绪强弱。

两者的分野本质是有没有旁白:有旁白时,语速先锁定底盘,剪辑节奏是围绕内容密度做的自由变量(shot-rhythm-model + speech-cadence-baseline 二维模型);没有旁白时,画面本身就是唯一的叙事载体,节奏直接服务情绪,且被本地工具的物理硬顶收敛(本 skill)。


E — 可执行步骤 (Execution)

  1. 标出情绪/动作曲线上的高能段与松弛段

    • 对照脚本/驱动视频,标出哪几个镜号是冲突/动作/情绪爆发段落,哪几个是开场/过渡/收尾段落
    • 完成标准:每个镜号都归入"高能"或"呼吸"两类之一
  2. 给高能段定时长

    • 单镜压到 max_shot_sec × 0.25 ~ 0.3,配合快切与蒙太奇式重复画面
    • 完成标准:高能段每一镜都落在该区间,且相邻镜头之间有画面重复/呼应关系(而非纯随机拼接)
    • 换算例:10s 档 → 2-3s;2.04s 档 → 0.5-0.7s
  3. 给首尾/过渡段定时长

    • 放到 max_shot_sec × 0.4 ~ 0.5(上限小的 profile 直接取 max_shot_sec),作为呼吸位插入在高能段前后
    • 完成标准:开场和收尾至少各有一镜落在该区间
    • 换算例:10s 档 → 4-5s;2.04s 档 → 1.2-2.04s
  4. 核对 profile 的单镜时长上限

    • 先读你的 profile 拿到 max_shot_sec(没有 profile 就先走 local-ai-film/profiles/calibration.md 标定 1)
    • 检查是否有任何单镜设计超过 max_shot_sec
    • 完成标准:全部镜号时长都 ≤ max_shot_sec
    • 判停条件:若某镜确实需要超过上限的"长镜头感",跳到步骤 5 做伪长镜拼接,而不是尝试突破上限
    • ⚠️ 本文前面写的 4-5 秒呼吸段在 max_shot_sec < 5 的 profile 上直接违规。本机 LTX 是 2.04 秒,呼吸段只能取 1.2-2.04 秒,按 1:1.7 的比例重算,不要照抄绝对值
  5. (可选)伪长镜拼接

    • 同一机位设计连续两镜,运镜幅度都压到极缓(接近固定机位),首尾剪辑点选在动作最平缓的瞬间
    • 完成标准:两镜拼接后观众感知不到剪辑点,视觉上等效于一个更长的连续镜头

B — 边界 (Boundary) ★

不要在以下情况使用此 skill

  • 还没有确定素材内容、连驱动视频/参考图都没选好——先做 material-driven-storyboardshot-breakdown
  • 需要决定音效/BGM/调色优先级——那是 editing-triad 管的范围,与本 skill 的"时长排布"是不同维度
  • 片子有旁白/解说词——不要用本 skill 的高能/呼吸疏密对比,改用 shot-rhythm-model(按内容段类型 + 片长回归公式定参数);如果连片子该多快都说不清、只笼统觉得"有点拖",先用 speech-cadence-baseline 排除语速句法问题

来源中警告的失败模式

  • 全片用均匀时长剪辑,不做疏密对比——会失去节奏感的控制(S1 原文用词)
  • 忽视 profile 的单镜时长上限、按云端习惯设计超长单镜——本地工作流直接卡死在 max_shot_sec,超过上限的设计从起点就做不出来。更常见的错误是照抄本文的绝对秒数:来源那套工具是 10 秒,本机 LTX 只有 2.04 秒,照抄 4-5 秒呼吸段等于每一镜都做不出来

作者的盲点 / 局限

  • S2 的具体秒数(2-3s/4-5s)只有一份分镜案例支撑,且这份分镜从未实际投产,量化数值本身未经生成结果验证
  • "伪长镜拼接"(同机位连续两镜+极缓运镜)是本 skill 基于单镜时长上限推导出的解法,来源完全没有讨论,效果依赖 z-image/SCAIL2 对"运镜幅度极缓"的响应稳定性,存在推导风险

容易混淆的邻近方法论

  • 与传统影视剪辑理论里的"库里肖夫效应/蒙太奇学派"不是一回事——那是镜头并置产生新含义的理论,本 skill 讲的是纯时长/疏密分布的节奏控制,虽然都用"蒙太奇"一词但关注点不同
  • 与"帧率/慢动作"技术手段不是一回事——那是拍摄/后期变速技术,本 skill 管的是镜头时长本身的设计,不涉及变速
  • shot-rhythm-model(科普片剪辑刀数模型)不是一回事,也不是同一个模型的两个参数档——那是从旁白驱动的科普/教程片语料蒸馏出的模型,用内容段类型(概念/演示/验收)和片长回归公式定参数,背后有恒定的语速底盘(speech-cadence-baseline 375 字/分)做支撑;本 skill 服务无对白情绪片,没有旁白这个时间基准,节奏纯粹服务情绪起伏,且被 profile 的 max_shot_sec 这个硬件能力上限收敛。两者都谈"节奏"和"疏密",但一个的判据是"这句话有没有讲清",另一个的判据是"这一刻情绪有多强"——判据不同,数值不可互换,见上方 A2 对照表

相关 skills

  • depends-on: shot-breakdown(素材筛选完毕才能排布时长)、material-driven-storyboard(单镜时长上限与素材可行性前提来自那里的硬约束表)
  • contrasts-with: shot-rhythm-model(科普/教程片剪辑刀数模型——旁白驱动信息片 vs 本 skill 服务的无对白情绪片,判据、锚点、约束完全不同,详见上方对照表,禁止互套数值)
  • composes-with: editing-triad(本 skill 提供节奏维度的具体秒数,供 editing-triad 第一步"搭节奏骨架"调用)

审计信息

  • 验证通过: V1 ✓(三个来源:S1 蒙太奇定性/S2 秒数量化/S3 ≤10s 硬顶) / V2 ✓(可推导"10 秒硬顶下如何做长镜头感"→用同机位连续两镜+极缓运镜拼接,制造伪长镜,来源未讲本地限制下的变通) / V3 ✓(不是"要有节奏"这种废话,而是给了具体的疏密数值和分布位置:高能段 vs 首尾)
  • 测试通过率: 待阶段 4
  • 蒸馏时间: 2026-08-01

Signals

GitHub stars
20
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
rhythm-density
Source
github.com/l-trunks/ai-film-skills