Skip to content
Marketing
Skill

/short-drama

制作多集 AI 微短剧:建立剧集圣经和角色参考,完成分集剧本、逐镜 I2V、对白审计、配音字幕 BGM 与成片,保持跨镜跨集一致性。 当用户说“AI/横屏/竖屏/微短剧、拍短剧、分集剧本、连续剧情视频、做几集短剧”时使用。 单条非剧情视频用 auto-short-video;只写单条脚本用 video-script;只生成一个视频片段用 ai-video-gen。

BOOST
From plugin
easel
3.3k114 skills
Install
$ npx -y skills add zju-real/easel --skill short-drama --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/short-drama

Context preview

The summary Claude sees to decide when to auto-load this skill.

制作多集 AI 微短剧:建立剧集圣经和角色参考,完成分集剧本、逐镜 I2V、对白审计、配音字幕 BGM 与成片,保持跨镜跨集一致性。 当用户说“AI/横屏/竖屏/微短剧、拍短剧、分集剧本、连续剧情视频、做几集短剧”时使用。 单条非剧情视频用 auto-short-video;只写单条脚本用 video-script;只生成一个视频片段用 ai-video-gen。

SKILL.md

short-drama.SKILL.md
name: short-drama
description: >
  制作多集 AI 微短剧:建立剧集圣经和角色参考,完成分集剧本、逐镜 I2V、对白审计、配音字幕 BGM 与成片,保持跨镜跨集一致性。
  当用户说“AI/横屏/竖屏/微短剧、拍短剧、分集剧本、连续剧情视频、做几集短剧”时使用。
  单条非剧情视频用 auto-short-video;只写单条脚本用 video-script;只生成一个视频片段用 ai-video-gen。
layer: produce

AI 短剧制作(横屏/竖屏微短剧,多集)

> **配置检查路径铁律**:整条流水线开始前先 `cd` 到 `AGENTS.md` 末尾给出的 Easel 项目根,确认 `.env` 与 `skills/shared/scripts/` 存在。生图、视频、配音配置必须从这里运行注册表/`check`;不得在 OpenClaw workspace 使用 `./shared/scripts/...`,不得用 `env` / `printenv` 判定缺少 `IMG_BASE_URL`、`VOICE_BASE_URL` 或 Key。发现缺项先核对 `pwd`,回项目根并显式传 `--env-file .env` 重查。

⛔ 三条铁律(最容易翻车,动手前先记死)

1. **每镜必须「图生视频」成动态片段——绝不能拿静态图冒充。** 关键帧图(frame)只是 I2V 的**首帧**,必须再用 **ai-video-gen `image2video`** 驱动成会动的 `clip`。跳过这步 = 一堆静态图配音,垃圾。合成前 `storyboard` 会**硬拦**只有 frame 没 clip 的镜头。 2. **配音必须闭源云 provider(有情感、像真人)——绝不用 edge(AI 味平读)。** 先 `.env` 配 `VOICE_PROVIDER` + `voice_clone.py check` 验 key;配了 key 后 `dubbing align/dub` **合成前就硬拦** edge,任何角色(含旁白)想落到 edge 直接失败。只有完全没 key 才 `--allow-edge` 兜底。 3. **原生音频优先、环境音每镜必留、台词务必喂给模型。** 视频模型原生音频(环境音/脚步/物理音效)质量好,**环境音默认整轨全用**。**头号要点:生视频必须把台词写进 `generation_prompt`(`prepare` 生成)喂给模型**,否则模型不知说啥、台词全错。默认 **native-first**(让模型逐字说、能说就用、不默认丢 TTS)→ `audit` 逐镜 ASR 核验:对上用原生对白(常态)、说错转 `dub` 换 TTS、旁白/动作镜走 TTS/环境音。决策与探针细节见步骤 16/18 及 `references/native-audio-workflow.md`。 4. **画面/声音/字幕按时间线对齐,自然播放。** 画面用真实片段全长(台词只占其中一段,按实际说话时间放置),**绝不慢放/循环/冻结**;片段盖不住台词就重生成/拆镜(`align` 硬拦)。

> **⚠️ 不许抄近路(执行纪律,最常翻车)**:`prepare → drama_ops.py generate(生视频) → audit → align` 是**不可跳的链**,脚本已加**链式硬门**:① 生视频**必须走 `drama_ops.py generate`**(它逐镜读 `generation_prompt` 自己调视频模型,agent 无从传成只有画面的 prompt)——别再逐镜手调 ai-video-gen;② `generate`/`audit` 见有台词的镜缺 `generation_prompt` → 判定「没跑 prepare」直接失败;③ `align` 见缺 `clip-audit.json` → 判定「没跑 audit」直接失败(不再静默把全部对白降级成 TTS)。「手调生视频只传画面 prompt + 直接 TTS」这条错误捷径会被拦回来——才有「台词喂给模型 + 用视频原声」。

> 编排层 SKILL:创意(圣经/剧本/分镜/lines)你 LLM 写,生成动作全委派已有 SKILL(ai-image-gen/ai-video-gen/ai-music),确定性 IO 走 `scripts/drama_ops.py` + `scripts/dubbing.py`;角色一致性靠「先定参考图再 I2V」+ 剧集圣经锁成同一部剧。

输入

| 字段 | 必填 | 说明 | |------|------|------| | 题材/梗概 | 是 | 一句话剧情或改编源(没给就问) | | 集数 | 否 | 由题材/需求定,**不强制**(微短剧常 10–30 集只是常见值;起号测试可先 1–3 集验证链路) | | 单集时长 | 否 | **不强制固定分钟数**——由题材/平台/剧情节奏定,几十秒到数分钟皆可;成片总时长 = 各镜片段时长之和(脚本不设上限,用户说多长就多长) | | 画幅 | 是 | 用户或上游任务未明确横版/竖版(或 16:9/9:16/具体分辨率)时,制作前必须追问并等确认;不得按平台、Profile 或默认值静默推断,已明确则不重复问 | | 视觉风格 | 否 | 都市港风/古装/校园/悬疑…(定统一风格前缀)|

产物结构(`outputs/剧名/`)

series-bible.md         剧集圣经(戏剧承诺+角色表【行动模型+want/need/wound/flaw+可跟随四问+音色档案】+剧情线+情绪曲线/爽点节奏+反派阶梯+分集反转+钩子+风格前缀)
cast.json               选角表(角色→音色:edge 音色 + pitch/rate,或克隆音色)
ref_index.json          参考图索引(C 角色 / S 场景 / P 道具,跨镜跨集复用)
refs/                   参考图(C01_林策.png ...)
episodes/ep01/
  script.md             本集剧本(因果节拍四幕 + 对白 + 集末钩子)
  lines.json            本集逐行对白({speaker,text,emotion,shot,at?},shot=所属镜头、at=镜内起始秒/对齐说话时刻,喂时间线配音)
  shots.json            本集分镜(逐镜:时间轴 prompt + @参考 + 尾帧描述 + 可选 sfx[定时音效];align 回写每镜 duration)
  shots/                逐镜关键帧图 + 生成的片段
  voice.mp3 / voice.srt 多角色配音(每角色独立声线、镜对齐)+ 同轴字幕
  timing.json           逐镜时长 + 逐行起止(align 产出,留档/校验)
  clip-audit.json       原生音轨、ASR、语言、说话时间与 native/dub/regenerate 决策
  final.mp4             本集成片
progress.json           逐集/逐镜生成进度(控费、断点续跑)

脚本(相对项目根):`skills/openclaw/short-drama/scripts/drama_ops.py`(资产/分镜/进度)、 `skills/openclaw/short-drama/scripts/dubbing.py`(多角色配音); 合成器复用:`skills/openclaw/auto-short-video/scripts/assemble.py`。

执行步骤

> ⚠️ 生图/生视频/配音是**异步 + 按量计费**。**先出 Plan**(几集、每集几镜、调哪些付费 API、 > 大致耗时/花费),确认后再跑。起号测试建议先跑 **1 集** 验证全链路再放量。

0. 剧集策划(新脑子,必做)

1. **选题材 + 定爽点**:先读 `references/genre-hooks-handbook.md` 选一个主题材(逆袭/战神/重生复仇/甜宠/马甲…)+ 其核心爽点,避免「剧情太简单/太散」。 2. **搭骨架**:`python skills/openclaw/short-drama/scripts/drama_ops.py scaffold --series "<剧名>"`。 3. **过故事引擎**(治「剧情简单/人物扁平」,写 bible 前必做):读 `references/story-engine.md`——

  • 写**戏剧承诺**一句话并过其自检(主体/追求/昂贵阻力/反复回报,换名不失独特、阻力有筹码、主角有能动性、中段有回报);
  • 每个主要角色建 **8 字段行动模型 + want/need/wound/flaw/弧光 + 可跟随四问(ep1 可见其一)**;
  • 反派按 `references/satisfaction-and-villain.md` 排 **4 层阶梯**(治工具人/爽点通胀)。

4. 写 `series-bible.md`(读 `references/series-bible-schema.md`,已含上述深度字段):一句话卖点、**戏剧承诺**、世界观、**角色表(行动模型+深度)**、剧情主线、**情绪曲线 + 爽点节奏表 + 反派阶梯**、**分集大纲(每集:剧情 + 因果反转点 + 集末悬念)**、**统一视觉风格前缀**。 5. **过 A/B 门**:按 `references/drama-review-rubric.md` 的 A(故事引擎门)+ B(人物可跟随门)逐项**引证自评**,任一 ⛔ 硬伤必修再往下。

1. 分集剧本(因果节拍 + 台词功底,别写流水账)

6. 每集读 `references/four-act-drama.md`、`references/causal-beats.md`、`references/vertical-pacing.md` 和 **`references/dialogue-craft.md`**,按**因果节拍**写 `episodes/epNN/script.md`: 目标(3秒钩)→阻碍→转折(爽/虐爆点)→集末钩子,相邻节拍用「因为/所以」串;**爽点密度**每 15–30s 一个情绪事件。

  • **反转按因果生成**:每个反转过 `genre-hooks-handbook.md` 的「因果反转一句话测试」+ 公平揭示 5 问,填不出=空降反转,重做。
  • **台词按 `dialogue-craft.md`**:禁直给/禁全员一个腔(过 swap-test)/曝光转冲突/每人有想要+想藏/每集 ≥1 金句/单行 ≤15 字。
  • **每句台词必须标清说话人**:剧本里对白一律写成 **`角色名:台词`**(角色名用 cast/bible 里的准确名字,别用「他/她/众人」)——后续抽 lines.json 时 speaker 直接照抄,避免配音配错角色。

7. **写完过 C/D/E 门**:按 `references/drama-review-rubric.md` 的 C(反转揭示)+ D(节奏)+ E(台词)逐项**引具体节拍/台词**自评,任一 ⛔ 硬伤(无 ep1 钩/腔调雷同/空降反转)必修,别凑合。

2. 角色 / 场景定妆(一致性地基)

8. 用 **ai-image-gen** 为每个角色生成**定妆参考图**(正面/多角度,喂角色外貌关键词 + 统一风格前缀);关键场景/道具同理。 9. 逐个登记进索引(自动分配 C/S/P 编号):

   python skills/openclaw/short-drama/scripts/drama_ops.py ref add --series "<剧名>" \
     --kind character --name 林策 --image refs/C01_林策.png --desc "男主,冷峻西装" --style "都市港风"

读 `references/character-consistency.md` 了解为什么必须先定参考图。 9.5 **⛔ 定妆图必须肉眼复核(做完图绝不跳过)**:用图片工具**逐张看每个角色定妆图**,确认发型/年龄/服装/气质**符合角色设定**,逐个记录:

   python skills/openclaw/short-drama/scripts/drama_ops.py ref review --series "<剧名>" \
     --code C01 --observation "看到:冷峻短发西装男,符合男主设定"

形象跑偏(如男主长成大叔、萝莉长成成年)→ 重生成定妆图再复核,**别拿跑偏形象往下生视频**(跨镜长相全崩)。角色定妆图没复核,后面 `generate` 会**硬拦**。

2.5 选角(角色→音色,多声线关键,**闭源优先 + 音色贴角色**)

10. 读 `skills/shared/references/voice-casting.md`。**音色由角色的真实定妆参考图形象决定**——先看 §2 生成出来的定妆图长什么样,按 voice-casting.md〇.6「形象原型 → 音色速查」对号入座:图里是**萝莉就配萝莉音(女童声/高而快)**、御姐配成熟音、大叔配低沉老成音、霸总配浑厚音…**绝不能形象与音色错位**(女主配大妈音、小孩配成年音 = 出戏)。**每个角色用 `--archetype` 写形象原型、`--ref` 绑定其定妆图 C 编号**(`cast check` 会核对:ref_index

Read more
Ships witheasel

An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。

Get the whole plugin
Stats
3,463
Stars
528
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
2h ago
Last commit
1mo ago
Created
4d ago
Added

Repo: zju-real/easel

Other skills on easel.

asset-manager
Skill

asset-manager

outputs/ 目录下的产物管理:按日期/平台/类型归档、打标签、搜索历史内容、生成素材清单。 当用户说"整理素材"、"归档"、"找之前的内容"、"搜索历史"、"素材管理"、…

@zju-real@zju-realView Skill
audio-editing
Skill

audio-editing

通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成…

@zju-real@zju-realView Skill