跳到正文
cccskills
免费在 GitHub 公开中文介绍

StoryFilm

将Markdown故事制作成带旁白的动画短片。它按情节制作画面,保持人物和场景的视觉一致,添加同步字幕与转场,并检查成片。

原文查看原文说明

Turns a story markdown file into a narrated animated film, a new reading format where the listener is read to and sees the story as it is told: beats from paragraphs, a bible so every character and place looks the same in every shot, one painting per beat in one style, Fish Audio narration in the story's voice with word timings, a HyperFrames film with camera moves, dissolves, scene breaks, a caption line and title cards, read back and verified. USE WHEN animated reading, story film, film this story, animate this story, illustrated audiobook, narrated story video, turn this story into a movie, storyboard this story, paint the shots, render the story film. NOT FOR the principal's own recordings, argument-first video essays, one-off motion graphics (Remotion), single illustrations (Art), writing the story itself (WriteStory).

danielmiessler/LifeOS星标 19,635(GitHub 19,635 + cccskills 0)

实测评分 未实测

查看安装方法

适用场景

  • 把故事做成配图旁白视频
  • 将小说改成有旁白的影像
  • 为每个场景制作分镜
  • 保持人物在各场景中的形象一致

中文介绍

功能

StoryFilm可以把Markdown格式的故事制作成结合旁白与画面的动画短片。它会从文字中划分情节段落,准备人物和地点的设定资料以保持视觉一致,并为每个段落制作一幅画面。技能使用Fish Audio生成贴合故事语气的旁白,再将画面、与音频时间同步的字幕、镜头运动、场景转场和标题卡组合成视频。完成后会检查成片,核对画面、字幕和音频是否存在错位等问题。你可以先查看分镜再开始制作,也可以要求它连续完成整个流程。

适用场景

当你想让读者一边听故事、一边观看对应画面时,可以使用它。需要把小说或故事做成各场景画风统一、人物形象连贯的视频时也适用。

使用示例

  • “请把这个故事文件制作成动画短片。”
  • “第12场看起来像餐厅,请修改这一场的画面。”
  • “调整人物的年龄和面部设定,并重绘相关场景。”

注意事项

首次设置需要Fish Audio和Google的密钥,以及ffmpeg等工具。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
A良好资料说明没有上传或发布流程,须通过评审并执行交付命令才会交付。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足需要Fish Audio和Google密钥及`ffmpeg`;资料指出首次设置参见`Setup.md`。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月28日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(26)

  • SKILL.md7.8 KB
  • Intents/Full.md4.7 KB
  • Intents/Produce.md10.8 KB
  • Intents/Storyboard.md4.6 KB
  • References/StoryboardSchema.md2.0 KB
  • Setup.md4.7 KB
  • Tools/.gitignore14 B
  • Tools/Build.ts6.6 KB
  • Tools/bun.lock9.1 KB
  • Tools/Characters.ts5.0 KB
  • Tools/FilmComposition.ts8.0 KB
  • Tools/FilmRuntime.ts4.2 KB
  • Tools/FilmTimeline.ts12.7 KB
  • Tools/Intake.ts5.0 KB
  • Tools/Lib.ts16.8 KB
  • Tools/Motion.ts3.0 KB
  • Tools/Narrate.ts22.8 KB
  • Tools/package.json642 B
  • Tools/Paint.ts10.2 KB
  • Tools/Run.ts11.2 KB
  • Tools/SerifFont.ts6.8 KB
  • Tools/Setup.ts3.1 KB
  • Tools/Shots.ts5.4 KB
  • Tools/StoryboardLint.ts4.9 KB
  • Tools/tsconfig.json400 B
  • Tools/Verify.ts24.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

StoryFilm

A story goes in; a verified film of it comes out. One creative stage (the storyboard) and a deterministic tail (bible, shots, narration, render, verification, critique, delivery).

Ideal State

  • A story file becomes a film a viewer accepts as one made thing: the same faces first frame to last, each painting fitting its beat, the caption in step with the voice.
  • Every film is read back before anyone sees it: Out/verify.json green and complete, the Assay video eval set (video-eval) passed in the verify stage as Intents/Produce.md declares it, the review sheets looked at, and the ArtDirection critique passed on the exact bytes delivered.
  • Nothing reaches the principal as a first draft: the film and its sheets land in the downloads folder only through Run.ts --deliver, after a passing critique and a Proof receipt.
  • Expensive stages run once per change: the storyboard is reviewed and linted before any painting, and every later stage is hash-cached so an edit redoes only what it touched.
  • Nothing leaves review: the skill has no upload or publish path.

Intent Routing

IntentTriggerFile
Full"film this story", "animated reading of X", "turn this story into a movie", anything that starts from a story fileIntents/Full.md
Storyboard"storyboard this", "write the bible", "plan the shots", a redo of the creative stage after intakeIntents/Storyboard.md
Produce"paint the shots", "render it", "re-render after an edit", "verify the film"Intents/Produce.md
FileRead when
References/StoryboardSchema.mdwriting or editing Storyboard.json
ISA.mdchanging what the skill does: its ideal state, criteria and decisions
Setup.mdfirst-time setup: Fish Audio and Google keys, ffmpeg and the other programs, optional Config.json

Full is Intake → Storyboard → Produce. The storyboard is the review checkpoint when the principal wants one: it is cheap to change and forty paintings are not. Skip it by saying so ("straight through").

Run Layout

<run>/
  run.json  Beats.json  Storyboard.json  pronunciations.json (optional)
  Bible/<id>.<hash>.png        style plate + reference sheets
  Shots/<beat>.<hash>.png      one painting per beat · contact-sheet.png
  Narration/<beat>.<hash>.{mp3,align.json,wav}  narration.wav  timeline.json
  Out/composition/             the HyperFrames project Build.ts writes (index.html, plan.js, film.js, shots/, narration.wav)
  Out/film.mp4  render.json  render.log  verify.json  Critique.json  frames/  caption-check/  review/{contact-sheet,motion-strip}.png

Data & Config

First-time setup (accounts, keys, files to fill in): Setup.md.

  • Voice: --voice, else the story's audio_voice frontmatter, else the DA's main voice from LIFEOS_CONFIG.toml. The value is a role (main, presenter, principal), fish:<reference id>, or the voice_id of a [da.voices.*] profile that has a fish_reference_id; any other id stops with an error naming where to add one. Narration is Fish Audio Drama 3 (FishTTS.ts) and takes no model flag; the DA's own voice reads at its configured fish_speed, any other voice at natural pace. Key: FISH_API_KEY in the env file; the principal role also needs FISH_PRINCIPAL_VOICE_ID.
  • Images: the geminiImage lane in LIFEOS/TOOLS/models.ts on GOOGLE_API_KEY, 16:9 at 2K, reference images attached per shot.
  • LIFEOS/USER/CUSTOMIZATIONS/SKILLS/StoryFilm/Config.json: runsRoot (default ~/StoryFilms; LIFEOS_STORYFILM_DIR overrides), fonts.serif / fonts.serifItalic (paths to licensed faces; path.ttc#<index> names one face of a collection), embedded into each composition as @font-face data. No font configured means the default serif, Source Serif 4 roman and italic (SIL Open Font License), installed by Setup.ts as the pinned @fontsource/source-serif-4 dependency.
  • LIFEOS/USER/CUSTOMIZATIONS/SKILLS/StoryFilm/PREFERENCES.md: the principal's casting and register taste for the Storyboard intent. Config.json provingRun names the run slug the skill ISA's proving-run checks use (Setup.ts --proving-run prints it).
  • Pronunciations: USER/PRINCIPAL/PRONUNCIATIONS.json plus a per-run pronunciations.json, applied to spoken text only; the caption shows the story's words.
  • Run.ts refuses a run dir under the config tree or the user-data repo (symlinks dereferenced first).

Gotchas

  • The image model copies whatever is in the style plate, including things that are not style (2026-09-17, first run). A violet dot in the plate put a stray bead on a character sheet. Keep the plate's subject empty (the prompt asks for an empty interior) and say in each bible desc what the character must NOT carry.
  • The story file can change under a run. Intake reads the frontmatter once; a voice or prose edit in the source after intake is invisible until Intake.ts runs again (2026-09-17: the narrator was re-cast in the story file after the first intake, and the first film went out in the old voice). Re-run Intake before any re-narration and diff the beat count.
  • bun test <bare path> drops child-process output (Bun 1.3.6). Always bun test ./skills/StoryFilm/Tools.

Examples

Example 1: a story file to a film

User: "Turn the story at stories/the-lighthouse.md into an animated reading"
→ Full: Intake writes Beats.json; the Storyboard intent writes the bible and one shot per beat; lint exits 0
→ Run.ts: bible painted, shots painted (4 at a time, cached by hash), narration synthesized, film rendered, verify.json green, review sheets written
→ ArtDirection critique of Out/film.mp4 passes into Out/Critique.json; Run.ts --from sheet --deliver lands the film and sheets in the downloads folder

Example 2: one painting is wrong

User: "The kitchen in beat 12 looks like a restaurant — fix it"
→ Edit that shot's prompt in Storyboard.json (and the place's bible desc if the sheet is the problem)
→ Run.ts --from lint --to shots repaints that one beat (everything else is cached); Run.ts --from build re-renders and re-verifies

Example 3: a character drifts

User: "Ana looks forty in half the shots"
→ Tighten her bible desc (age, face), Characters.ts --only ana repaints her sheet, Shots.ts --force repaints the shots that carry her ref (their hash changed with the sheet)

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

AnnualReports

免费有简介

按类别或厂商查找并获取网络安全报告,比较威胁、勒索软件、数据泄露、云安全和AI趋势。分析会注明每项数据的厂商、年份及报告,并分别呈现来源间的分歧。

  • 按类别查找威胁报告
  • 获取指定厂商的报告
  • 比较多家厂商的勒索软件趋势
danielmiessler/LifeOS2万2026年10月28日 更新

ApertureOscillation

免费有简介

通过三轮分析,对比单个功能或组件的设计需求与整个系统的目标,梳理两者的冲突、合适的实现范围,以及方案是否符合整体方向。

  • 判断服务或库是否应拆分
  • 比较功能需求与产品方向
  • 检查新组件是否符合现有系统
danielmiessler/LifeOS2万2026年10月28日 更新

Aphorisms

免费有简介

按文章主题寻找格言或引文,按相关程度排序,并附上作者和推荐理由。可添加带出处的引文、按主题研究思想家的言论、整理使用记录,帮助避免重复引用。

  • 为新闻简报寻找引文
  • 保存有出处且不重复的引文
  • 按主题研究思想家的言论
danielmiessler/LifeOS2万2026年10月28日 更新

Art

免费有简介

按用途选择制作流程,生成博客插图、技术图解、比较图、漫画和图标等视觉内容,并输出供预览的图像。

  • 制作博客标题图
  • 解释系统结构
  • 展示比较或时间线
danielmiessler/LifeOS2万2026年10月28日 更新

ArtDirection

免费有简介

依据简报和制作标准评估图片、影片、幻灯片及网站页面截图,由视觉评审给出评分和缺陷优先级,支持有限轮次的修改;通过评审后才能交付,并可记录人工评分供后续校准。

  • 按优先级整理图片修改项
  • 依标准评估影片或幻灯片
  • 发布前检查视觉效果
danielmiessler/LifeOS2万2026年10月28日 更新

ArXiv

免费有简介

按主题、研究领域或论文编号查找 arXiv 论文,并整理标题、作者、摘要和链接;查看新投稿,也可在有内容时获取 AlphaXiv 的人工智能生成概述。

  • 查看人工智能和机器学习新论文
  • 查找特定主题的论文
  • 按论文编号或 arXiv 网址查询
danielmiessler/LifeOS2万2026年10月28日 更新

查看 danielmiessler 的全部技能

报告此技能的问题