Community图像github.com

LordVayron/video-factory

创建并维护可复用的角色、场景和风格圣经(bible/),包括角色表、语音选择和语音样本,以及通过用户自己的照片和语音进行“克隆我”/AI 影响者录入。当故事需要尚未存在的角色或地点、角色在镜头间漂移,或用户说出“克隆我”、“制作 AI 影响者”、“新角色”时使用。

video-factory 是什么?

该技能(Skill)是一个用于 AI 视频生成流程中角色、场景和风格管理的综合性工具。它被称为“视频工厂”,主要功能是维护一个可复用的“圣经”(bible/)目录,确保角色外观和场景风格在多个项目间保持一致。技能支持详细的角色配置,包括外观描述(look)、角色表(character sheet)、语音(voice)以及动作/台词癖好(running gag/catchphrase)。对于写实风格,它提供了一种“原生参考”(native reference)技术,通过在场景内部生成角色并提取其图像作为参考,避免角色看起来像是被粘贴上去的。此外,该技能还支持“克隆我”/AI 影响者功能,允许用户上传自己的照片和语音样本,生成数字分身。该技能主要在 Claude Code 或类似 AI 编码代理(如 Cursor、Codex)上使用,通过 `node engine/gen.mjs`、`node engine/cast.mjs` 等命令行工具操作,并依赖 ElevenLabs 进行语音合成。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LordVayron/video-factory/tree/HEAD/.claude/skills/cast

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

角色与圣经

所有内容在各项目间复用,因此值得一次性做好。

角色 (bible/characters/<id>/)

character.json 字段:id、name、species、look(一个密集的句子:身体、面部、头发/皮毛、衣橱、一件标志性配饰,以及每个显眼标记的名称:雀斑、痣、疤痕、眼镜、耳环。提示检查会拒绝任何遗漏了这些标记的视频提示,而身份评估会在每次拍摄中检查每一个标记)、traits、flaw、role(正经人 / 古怪角色 / ……)、voiceDesc、voice、sheets。

  1. 角色表: 一张 3:2、2K 的图像,在纯色背景上展示正面、四分之三侧面和全身。 node engine/gen.mjs still "<角色表提示>" bible/characters/<id>/sheet.png --ar 3:2 --size 2K 模板:"Character reference sheet on a plain warm cream (#F2E5D5) studio backdrop, photoreal, 35mm film look, soft even key light. The same character shown three times side by side: (1) front view, (2) three-quarter view, (3) full body. Character: . Identical wardrobe and markings in all three views. No text, no labels." 自己查看结果。对于错误的解剖结构、不匹配的视图、文字,重新生成。当一个视图不好时,使用 ffmpeg 裁剪而不是花钱重新生成。
  2. 语音:
    • voice.id:一个由 Kie 提供的 ElevenLabs 预设(列表见 engine/voices.txt,预览地址 https://static.aiquickdraw.com/elevenlabs/voice/<id>.mp3)。可选的语言覆盖 voice.en/voice.es。
    • voice.eleven:用户自己 ElevenLabs 账户上的一个语音,当 Kie 的端点失败时使用。免费计划只能使用预制的语音:onwK4e9ZLuTAKqWW03F9(Daniel, British)、TX3LPaxmHKxFdv7VOQHJ(Liam, young)、JBFqnCBsd6RMkjVDRZzb(George, warm British)、EXAVITQu4vr4xnSDxMaL(Sarah)、pNInz6obpgDQGcFmaJgB(Adam)。
    • voice.sampleText.{en,es}:约 8 秒的角色台词。
    • node engine/gen.mjs sample <id> --lang en 写入 voice-en.mp3。Seedance 将其用作 @audioN,因此语音在每个镜头中保持不变。
  3. 将一个动作或口头禅添加到 traits。
  4. 审批(流程 v5 角色门禁): 向创作者展示角色表、外观和语音样本;得到他们的同意后,运行 node engine/studio.mjs approve-character <id> --said "<他们的话>"(或 cast.mjs approve 用于风格内角色表)。使用 continuity.mjs <slug> --identity <take> --lock-anchor 从他们批准的拍摄中锁定面部锚点。

写实风格:原生参考(修复了“贴纸”外观的规则)

图像模型合成一张工作室参考照片到场景中,保留其姿势和光照,因此角色看起来像是粘贴进去的。对于任何写实风格:

  1. 首先制作空的场景底板。
  2. 在场景内仅通过文本生成每个角色(仅将场景底板作为参考),使用 Nano Banana Pro 以 2K 分辨率生成:"a frame grab ... a real, normal-sized <animal/person> ... lit by the same light as the room, soft shadow on the floor, same video texture ... not composited"。服装必须描述为契合不完美的真实服装("loose, bunches at the shoulders")。
  3. 从该帧中裁剪出角色 → ref-native.png,设置 "refs": ["ref-native.png"]。工作室 sheet.png 仅作为设计参考;切勿将其输入到镜头中。
  4. 使用写实的尺度词汇("normal-sized house cat, small next to the furniture")和自然的动物姿势。 写实角色除了风格内角色表外,最好还有一个原生参考(bible/characters/<id>/ref-native.png)。

场景 (bible/sets/<id>/set.json)

look(一个密集的句子)、plates(至少一个宽幅 9:16 的空场景底板)、geography(物体位置,以及谁站在画框的哪一侧)。 node engine/gen.mjs still "<风格字符串> wide establishing shot, empty of characters. <look>. No text, no people." bible/sets/<id>/plate-wide.png --size 2K

风格内角色表(阶段 3,当前方法)

node engine/cast.mjs sheet <char> --style <style> --set <set> 以该风格创建一个 2x2 角色表(写实风格:在场景底板内拍摄),将其拆分为 front、threeQuarter、profile 和 full 视图,放在 bible/characters/<char>/<style>/ 下,并记录在 character.json → looks.<style> 中。审查并评分:cast.mjs approve <char> --style <style> consistency=N anatomy=N design=N style=N layout=N。被拒绝的角色表:使用 --note "<修复>" 重新生成。然后镜头只获取其构图所需的视图。

风格

风格表位于 bible/styles/<id>/style.json,使用 engine/style.mjs 管理(参见工作室技能和 studio/references/styles.md)。

克隆我 / AI 影响者

仅用于用户本人的肖像或虚构人物。切勿克隆真实的第三方。

  1. 要求用户提供 6-12 张自己的照片(正面、四分之三侧面、侧面、两套服装、光线良好),放入 bible/characters/<id>/photos/,以及 1-2 分钟清晰的语音,放入 voice-source.mp3。
  2. 使用 Nano Banana 以照片为参考构建角色表(--ref 每张照片,最多 10 张):"Character reference sheet of this exact person…"。
  3. 语音:即时语音克隆需要 ElevenLabs 付费计划(Starter)。在 ElevenLabs UI 中克隆,然后将新的语音 ID 放入 voice.eleven 中,设置 "provider": "elevenlabs"。在此之前,选择最接近的预设。
  4. 对于说话头像内容,node engine/gen.mjs talk <photo-or-keyframe> <line.mp3> out.mp4 --model infinitetalk($0.015/s,480p 分辨率)。对于场景,在正常的镜头列表中使用该角色。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

LordVayron/video-factory

Turns an approved script into scenes, blocking sheets and shots (projects/<slug>/shotlist.json) built for continuity — each scene is storyboarded as one grid image and filmed as one multi-shot generation, so characters keep their positions, props and screen sides across cuts. Use after the script is approved, when shots break continuity, or when planning coverage for dialogue.

LordVayron/video-factory

Produces long-form ambient videos (10 minutes to 3 hours) — guided meditation, sleep stories, breathwork, affirmations, yoga nidra, focus/study music, ambient loops — with seamless looping AI scenes, a Suno music bed and an optional ElevenLabs voice-over with long pauses, delivered as 1080p YouTube video plus MP3. Use for "meditación", "meditation video", "sleep story", "música para dormir", "ambient loop", "focus music", "video largo de relajación", "yoga nidra", "affirmations".

LordVayron/video-factory

Produces an episode of a recurring series — 90s sitcom, comedy skit series, micro-drama / vertical novela, cartoon or anime series — with a locked cast, sets, voices and intro in series/<id>/, using flow v5 (writers' room script, radio cut, storyboards, Production Book with a locked budget, multi-shot scenes, continuity eval, auto edit with unified voices, series intro and outro). Use for "next episode", "otro episodio", "create a series", "crea una serie", "sitcom", "novela para TikTok", or any episode of an existing series in series/.

LordVayron/video-factory

First-run setup conversation for a new creator of the AI Video Factory. Asks exactly five short questions (what to create, where it will be published, language and tone, own brand/product/characters, budget per video), writes studio.json, creates the first project, and explains how to start other formats in new conversations. Use right after installation, when studio.json does not exist, or when the user says "onboarding", "empecemos", "set me up", "configura la fábrica", "what can I make?".

相关技能