Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ZJU-REAL/Easelnpx agentmods add skills/zju-real/easel/short-dramaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zju-real/easel/short-drama)<a href="https://agentmods.dev/skills/zju-real/easel/short-drama"><img src="https://agentmods.dev/badge/skills/zju-real/easel/short-drama/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zju-real/easel/short-drama"><img src="https://agentmods.dev/badge/skills/zju-real/easel/short-drama.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00124 | $0.07719 |
| Opus 5 | $0.00062 | $0.03860 |
| Sonnet 5 | $0.00025 | $0.01544 |
| Haiku 4.5 | $0.00012 | $0.00772 |
Grade A, and why
short-drama scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 201 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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重查。
⛔ 三条铁律(最容易翻车,动手前先记死)
- 每镜必须「图生视频」成动态片段——绝不能拿静态图冒充。 关键帧图(frame)只是 I2V 的首帧,必须再用 ai-video-gen
image2video驱动成会动的clip。跳过这步 = 一堆静态图配音,垃圾。合成前storyboard会硬拦只有 frame 没 clip 的镜头。 - 配音必须闭源云 provider(有情感、像真人)——绝不用 edge(AI 味平读)。 先
.env配VOICE_PROVIDER+voice_clone.py check验 key;配了 key 后dubbing align/dub合成前就硬拦 edge,任何角色(含旁白)想落到 edge 直接失败。只有完全没 key 才--allow-edge兜底。 - 原生音频优先、环境音每镜必留、台词务必喂给模型。 视频模型原生音频(环境音/脚步/物理音效)质量好,环境音默认整轨全用。头号要点:生视频必须把台词写进
generation_prompt(prepare生成)喂给模型,否则模型不知说啥、台词全错。默认 native-first(让模型逐字说、能说就用、不默认丢 TTS)→audit逐镜 ASR 核验:对上用原生对白(常态)、说错转dub换 TTS、旁白/动作镜走 TTS/环境音。决策与探针细节见步骤 16/18 及references/native-audio-workflow.md。 - 画面/声音/字幕按时间线对齐,自然播放。 画面用真实片段全长(台词只占其中一段,按实际说话时间放置),绝不慢放/循环/冻结;片段盖不住台词就重生成/拆镜(
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 或默认值静默推断,已明确则不重复问 |
| 视觉风格 | 否 | 都市港风/古装/校园/悬疑…(定统一风格前缀) |
What ships with it
15 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- EASEL-META.md 2.9 KB
- references/causal-beats.md 3.2 KB
- references/character-consistency.md 3.3 KB
- references/dialogue-craft.md 4.2 KB
- references/drama-review-rubric.md 5.1 KB
- references/four-act-drama.md 2.7 KB
- references/genre-hooks-handbook.md 5.4 KB
- references/native-audio-workflow.md 6.1 KB
- references/satisfaction-and-villain.md 3.8 KB
- references/series-bible-schema.md 5.5 KB
- references/shot-prompt-format.md 6.4 KB
- references/story-engine.md 5.8 KB
- references/vertical-pacing.md 2.0 KB
- scripts/drama_ops.py 41 KB runs code
- scripts/dubbing.py 46 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 201 lines · 124 tokens per session scan A 67d61b77b4ec
short-drama is a skill published in the GitHub repository ZJU-REAL/Easel (794 stars, last pushed yesterday), licensed Apache-2.0. It adds 124 tokens to every session and 7,719 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ppt-generation
Generate PPTX presentations from slide plan + content.
chart-visualization
Generate charts: select type, extract data, render image.
jacky-motion2-0-srt
A workflow for turning a Chinese spoken script and matching SRT subtitle file into a single 16:9 HTML information animation. SRT is a subtitle file that stores text with start and end times; the animation follows those times and adds recorded-screen placeholders when needed.
video-podcast-maker
Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu / Douyin / WeChat Channels), or asks to learn visual design patterns from a reference video/image. Trigger when the user mentions creating a knowledge video…
video-podcast-maker-lite
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when the user wants a quick narrated video from a topic without the full video-podcast-maker machinery (no extra skills, no thumbnails/shorts/publish matrix). Do NOT…
video-podcast-maker-nano
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the pipeline logic and self-verified checkpoints…