kinema-sketchboard · 简笔分镜预演板
SkillMediaDesigns stick-figure storyboard previz boards and second-by-second beats for a single shot. Use when the user wants sketch storyboards, nine-panel storyboards, second-by-second motion scripts, or to control action pacing before generating video; mutually exclusive with 3D previz and depth-capture sh
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the kinema-sketchboard · 简笔分镜预演板 skill
What this skill tells your AI
The instructions your AI receives, as published by chillzhuang/kinema in .claude/skills/kinema-sketchboard/SKILL.md and read by ahel’s review.
先 Read kinema/SKILL.md(流程真源)。本 skill 管一件事:在烧 Seedance
之前,用一张 0.3 元的素描板 + 一段零成本的分段文本把这一镜的
动作、走位、机位节奏逐秒钉死。
三条产物、各锁一样东西:
- beats(
shots[].sketch.beats,你写)——按镜头时长配拍的逐秒动作设计 (按 2~3 秒一拍:5s 镜 23 拍、8s 镜 34 拍,见下「beats 快则」),编译成分段时间轴 进视频提示词——段头随型号的timeline_unit分两支:响应秒时间戳的型号(seedance-2.5) 发「第0-1.2秒:…」秒段,缺省主力(Seedance 2.0 系列)发不带时间的「第1段:…」顺序编号 (官方指南把 2.0 的精确秒段列为支持不稳定;分段时间结构远胜一大段散文)。t仍按秒写:它用于拆拍、板上的秒段标签与秒段档的段头; - 简笔板(
sketch gen生成)——铅笔素描网格(格数=拍数,恰好填满;素描灰阶为主,仅发光体/能量少量点缀色),红箭头=人物运动轨迹、 蓝箭头=摄影机运动、绿=构图、橙=灯光、紫=声音情感、黑=编号与秒段标签; gen-video 时缺省档板在盘即随请求附发(native 缺省=全能参考·一镜一片: 板+分镜图+角色/场景/道具设定图全作参考、不发首/末帧;dubbed 走参考媒体模式同样附板); 只有衔接参与镜(章级/镜级frame_chain,首帧任务禁混参考图)只发分段时间轴、 板不附——衔接章里逐镜sketch ref --shots N --state on才强制该镜切回参考孤岛; - 末拍收束——最后一拍必须落在
end_state上(衔接章里它同时与链末帧天然一致)。
规划优先(铁律〇):先秒级描述,再画板
动态化的提示词质量取决于秒级规划,板只是规划的可视化——顺序绝不能反过来:
- 每个要 gen-video 的镜都先有秒级运动规划。首选 authored beats(带
t的shots[].sketch.beats);beats 单独存在即生效——gen-video 自动把它编译成 分段时间轴注入提示词(纯文本零成本,sketch list显示 「生效=sketch·纯时间轴」,dry-run 逐镜行标「分段时间轴(无板)」)。 - 板从同一份 beats 生成(
effective_beats单一真源)——先规划后画板, 板与时间轴天然一致。不是每镜都要出板:0.3 元/板花在重点镜(复杂调度/ 多主体/精确卡点/动作戏),普通镜 beats+时间轴已足够。 - 没写 beats 也没出板的镜:引擎不注入时间轴(自动拆拍只在板/beats 语境下
生效),发出去的就是
video_prompt原文——所以它必须自带先后次序的详细分段 (起势→推进→收束,每阶段一个主动词);更推荐直接补 beats。 - 改了 video_prompt/beats 板不会自动跟上:板条与
sketch list会报 「⚠ 拍序列已变」(与「⚠ 时长已变」同制度,判据gen.sketch.sig拍序列指纹), gen-video 附板前也会点名——重点镜记得sketch gen --only N --force重生, 否则板与时间轴说的是两套动作,模型会二选一或折中。
与 3D 导演台、深度捕捉的互斥(铁律)
一个镜要么走 previz(首帧/末帧/V2V),要么走深度控制视频(实拍运动 V2V),要么走
简笔板(时间轴+参考图),绝不同发——三者都在向模型描述"这几秒怎么运动",同发
必然打架。仲裁单一真源 sketchboard.active_guide:显式 shots[].guide 恒赢(即便
指向空槽也不静默回落,引擎会告警);缺省自动仲裁 previz > control > sketch。
表态入口:sketch use --shot N --guide sketch|previz|control|auto,或 Studio 分镜卡的
仲裁徽章(配置了两路及以上时才出现,点击轮换)。缺省档(章不衔接)简笔镜就是全能参考:
时间轴管过程、板与设定图管外观,一镜一片;开了章级衔接(frame_chain: true)的章里
简笔镜与链末帧并存(时间轴管过程、链末帧管收束),板只当拍表不附发——要板随请求发
须逐镜「板作参考」表态(sketch ref,代价见「边界与成本」)。
工作流(五步,逐门确认)
- 写 beats(规划优先的默认动作,见铁律〇):Read 分镜脚本(narration/action/
video_prompt/end_state/light_shift)与小说原文对应段落,把每镜按时长拆成
对应拍数(2
3 秒一拍:5s→23 拍、8s→3~4 拍)写进shots[].sketch.beats——正式通道是agent plan的 ChapterPlan(sketch.beats白名单,merge 语义不动引擎管的sheet, 带expected_revision并发保护)。拆拍工法见references/board-craft.md。绝不发明剧情——细节从原作搬运。 没写 beats 也能生成:分镜词足够详细时,引擎按运动设计句读自动拆拍 (sketchboard.auto_beats,纯标点切分零语义改写,authored beats 恒优先)—— 板与时间轴取同一份拍序列,自动拆拍的时间轴会替代散文正文(同句不发两遍)。 自动拆拍秒段只能均分;节奏要精确(爆发拍 0.4s、余韵拍 1.2s)就手写 beats。 秒段基准=实际请求秒数(引擎按request_seconds铺,不是裸dur):手写t必须首尾相接、末拍收在实际秒数上——sketch gen与 Studio 会做覆盖体检(断档/ 重叠/收不到位报 ⚠);板生成后镜头时长一变,板条与sketch list会打「⚠ 时长已变」, 重生即可(灯箱「↻ 重新生成」)。 - 先 1 镜出板验证:
sketch gen --chapter x/ch --only 1,Read 板图做四查 (见下),过了再sketch gen全量(并发缺省 4)。 - 质检四查(引擎无 OCR,必须逐板 Read):① 格数与编号齐全、按时间推进;
② 秒段标签与 beats 对拍;③ 每格动作与该拍 action 一致且有可见运动(静态站姿
=坏板);④ 五色箭头在场且红/蓝语义不串。坏板
--force重生或改 beats 措辞。 - 表态 guide:该镜要走板就
sketch use --shot N --guide sketch(若该镜从未 配 previz,自动仲裁已选 sketch,可省)。 - (仅衔接章)挑镜开板作参考:本章开了
frame_chain: true且某镜的动作调度 复杂到时间轴文字说不清时,sketch ref --shots N --state on——开一镜断一条接缝, 只给真需要的镜开;缺省章(不衔接)板在盘即自动附发,无需此开关。 - 审后发:
gen-video --chapter x/ch --dry-run逐镜核对时间轴提示词与附板 标记(缺省 native 镜显「全能参考(分镜图+简笔板·一镜一片)」;无板显 「全能参考(分镜图·一镜一片)」;dubbed 显「参考图=分镜图+简笔板」;衔接章的 首帧任务镜照常标末帧、板不附),无误后去掉 --dry-run 正式生成。
beats 快则(起承收结构 · 拍数按秒数配)
- 拍数上限 = 秒数 ÷ 1.2(每拍 ≥1.2s,硬底线 0.8s/拍)——abyss 镜1 的教训:
9 拍铺 5s(0.56s/拍),Seedance 只挑 2-3 个主事件演完整、其余拍整段丢弃
(转夹具/报纸颤/影子移/直身搁枪全没出现)。手写口径是 2
3 秒一拍:5s 镜 23 拍、8s 镜 34 拍、 12s+ 长镜才配 56 拍;9 拍只在 12s 以上、且逐拍都有独立主动词时才成立。 上面那条「秒数 ÷ 1.2」是引擎代切(sketch gen无 beats 时自动拆)的收敛上限, 不是手写目标——两个数一个管「引擎别塞太密」、一个管「你写多粗」,别互相套用 (手写口径的真源是kinema/SKILL.md的「拍数按 2~3 秒一拍切」,本文与它同源)。次要氛围件(报纸颤/影子移)挂进主拍的 action 从句, 别独立占拍。 - 自动拆拍已由引擎按时长收敛(
auto_beat_cap:min(12, 秒数÷1.2)再向下取到 最近的整齐拍数,下限 2 拍,均匀并拍保时序不丢句)——不写 beats 直接sketch gen时,5s/7s 镜出 4 拍、8s 出 6 拍、10s 出 8 拍,不是固定 9 格。 素材不足不凭空造拍。 - 版式:网格恒按拍数恰好填满(
grid_of,引擎自动算,你不用管)—— 2/3 拍=单行、4 拍=2×2、6 拍=2×3、8 拍=2×4、9 拍=3×3、10 拍=2×5、12 拍=3×4。 优先写整齐拍数 2/3/4/6/8/9/10/12:5/7/11 拍排不成矩形,末行只能居中留半排 (引擎会明说「最后一行 N 格居中」并禁止补空框,但满格版面每格更大更好读)。 历史事故:列数硬编码为 3 时,4 拍算出「2×3 网格共 4 个面板」自相矛盾,模型只能猜—— 同为 4 拍,一张排成 2×2 满格、另一张照 2×3 画完留了两个空白框。 - 手写 beats 引擎一个字不动(创作资产):超密只报「⚠ 拍密度」给建议, 该并哪几拍是你的判断——见警必改,别指望引擎替你合。
- 拍 1
2 起:入拍即动(承接上一镜末态,绝不从静止慢慢起);中段 推进: 每拍一个主动词、动作连续递进,微表情/次要运动挂在主动作上;末 12 拍 收: 减速收束,末拍=end_state 的画面。 - 打斗镜的手写
t按「停—爆—停」配拍(蓄势 0.81.2s → 爆发 0.40.6s×23 → 亮相/受击 0.81.2s,绝不均分)——完整工法见kinema/references/action-direction.md(因人设招/拆镜/升格纪律都在那)。 - 每拍
{"t":"0-1.5s","action":"…","camera":"…","framing":"…","light":"…","sound":"…"}——action必填(具体、物理、可画出来的运动),其余按需;t缺省引擎按dur均分,写显式t时须覆盖全时长不留洞。 - authored beats 写全后,
video_prompt转职为「全局层」——只消重,绝不收敛成 一句总括(一句话正文是硬违规,prompt_thin按 ≥140 字警戒(地板真源 = 引擎variation.MIN_VIDEO_PROMPT_CHARS);两档规则真源kinema/SKILL.md「运动规划两档」)。分工对齐视频模型官方的分层提示结构 (全局描述定风格质感、分段描述管动作运镜):逐拍的「谁+做什么+镜头怎么动」归 beats(时间轴会原样发出,与拍逐句重复的动作句从正文删去——同句发两遍既费 预算又稀释时间轴权重);正文保留并写厚跨拍的东西:动作的力学、物理反馈与 次级动画、材质与光的响应、情绪质感与氛围。引擎只替代自动拆拍的散文,authored 的逐句重复要靠你自己收。 - 拍数区间 2~12(
AUTO_BEATS_MIN/PANEL_MAX);九格是版式上限不是拍数指标——只有 12s 以上的长镜才配得起 9 拍。
命令速查
python3 -m kinema sketch gen --chapter x/ch [--only 1,3] [--force] [--mock] [--concurrency N]
python3 -m kinema sketch use --chapter x/ch --shot N|--all --guide sketch|previz|control|auto
python3 -m kinema sketch list --chapter x/ch # beats/板/guide/生效路径一览
python3 -m kinema sketch clear --chapter x/ch --shot N # 摘板挂载(文件与 beats 保留)
python3 -m kinema gen-video --chapter x/ch --dry-run # 审时间轴(板附发标记同源)
Studio:章节页「SK 简笔分镜台」区块(3D 导演台正下方)——统计三格 + 「▦ 生成 简笔板」选镜弹层 + 「⧉ 分镜板指令」(交回本 skill 写 beats)+ 板缩略条 (SHOT 签点击跳分镜卡·右上 ⧉ 复制单板改图指令·灯箱内逐拍对照表 + ↻ 重新生成); 分镜卡「▦ 简笔」角标看板、仲裁徽章切路径。
边界与成本
- 板绝不进
shots[].image/clip(分镜画面与成片位;板是预演观看物,落<章节>_work/sketch/,不走审阅状态机、不做版本栈,--force直接覆盖)。 - 板生成刻意不带画风前缀、不注入 moodboard 垫图——板是素描基调、不掺成片画风,
彩色垫图混入就是"给板上成片色"的邀请函;版式一致性靠引擎内置版式蓝图自动垫
(
engine/kinema/assets/blueprints/sketch1/2/3_template.png三张同版式样板: 单人动作/双人对话/双人战斗,只学版式与标注画法、绝不复制其人物与标题文字)。 蓝图放在引擎包内而不是本 skill 目录是刻意的:它是引擎生成时自动垫的运行时 资产(转 base64 塞进 ref_images),搬进.claude/skills/后pip install的用户 那里根本不存在、垫图会静默失效。设计归属仍在 skill(契约由sketchboard.board_prompt定义),出处与重做方法见engine/kinema/assets/README.md。设定图侧有同款蓝图 (角色/道具各一张简笔线稿char_template/prop_template,见sheets.templates_for)。 - 成片防泄漏:板附发时引擎两处同时防——正文头部注入「板不是画面参考、只是分镜 脚本,格线与箭头是标注符号而非画面元素」,同一批词再补进负面串(标注箭头/红蓝 箭头/分镜格线/铅笔素描…)。只在正文说一次压不住:16 镜里 6 镜带板,2 镜把 红蓝箭头画进了开头几帧。绝不手工删改提示词绕过引擎拼装。
- 成本:板=一张图价(Seedream 0.3 元);时间轴文本零成本。
- 附板是逐镜取舍,缺省不附:能力闸(只有 seedance/mock 支持参考图)× 两条通道:
dubbed 参考媒体模式与 native 缺省档(全能参考·一镜一片)板在盘即附;只有
衔接章(
frame_chain: true)里板让位给首帧任务,须sketch ref --shots N --state on显式切回参考孤岛(判据真源sketchboard.reference_shot)。衔接章里的 取舍要点:换来板与设定图入场(板级走位与机位节奏),代价是这一镜没有首/末帧槽 ——它既不向下一镜发末帧、上一镜也焊不到它身上(分镜图降级成众多参考图之一, 不再是第 0 帧硬锁),开头几帧由几张参考图调和而来、两侧接缝改软切。
开了「板作参考」=这一镜是链上孤岛(强制要求 · 仅衔接章)
开关一开,这一镜的两侧焊缝就都断了——不是只断后面那一条。引擎会在上下两处
各自动落一个 seamless 无缝转场(0.1s ≈3 帧柔切、静音、transition.auto="island"),
成片里的形态就是:正常衔接 → 软切 → 这一镜独立成段 → 软切 → 正常衔接。
指挥层三条硬规矩:
- 不要手工在孤岛镜两侧再加转场。同一处已有转场时引擎不再补软切,你手写的
fade_black会原样保留——那是「叙事标点 + 参考模式断缝」两件事叠在一处, 看上去像是章节在这里跳了两次。用户点名要叙事转场时才插,并告诉他它替代掉的是软切。 - 不要连开一片。相邻两镜都开 = 中间那条缝两端都不成立,整段被切得七零八落。 板级调度是给「这一镜的走位必须精确」的单镜用的,不是全章档位。
- 开完必须重看链态:
gen-video --dry-run会打印每一处「自动插入无缝转场」 与逐镜链态;或跑kinema transition sync单独同步一次(零成本)。 禁止在没看链态的情况下直接gen-video烧钱——开关改的是整章的接缝结构。
细则(拆拍工法 / 箭头标注规范 / 板提示词契约逐段 / 艺术身份板选用):
references/board-craft.md。
Signals
- GitHub stars
- 83
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
kinema-sketchboard- Source
- github.com/chillzhuang/kinema