ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

火宝短剧分镜拆解 Agent 全解析:把剧本切成 8–15 秒视频生成任务的工程化方案

火宝短剧分镜拆解 Agent 全解析:把剧本切成 8–15 秒视频生成任务的工程化方案 AI 应用人工智能媒体生成音视频AI Agent后端前端【免费下载链接】huobao-drama 火宝短剧 - 基于AI的一站式短剧生成平台 《一句话生成完整短剧从剧本到成片全自动化》 Huobao Drama - An AI-Powered End-to-End Short Drama Generator One Sentence to Complete Drama: Fully Automated from Script to Final Video项目地址https://gitcode.com/gh_mirrors/hu/huobao-drama点击查看免费下载本文基于火宝短剧Huobao Drama后端工作区中的分镜拆解系统提示词文档 storyboard_breaker.ko.md韩语语言变体展开讲解这套「一句话生成完整短剧」流水线中最关键的中间环节将一集剧本自动拆解为多个可直接驱动视频生成的分镜段落。读完本文你将掌握「一个分镜段落 一个视频生成任务」的核心定义、四步拆解工作流、段落字段规范、时长锚定与台词下限规则、video_prompt 的 3 秒分段写法以及这些规则在 storyboard-tools.ts 中的真实落库实现。核心定义一个分镜段落就是一个视频生成任务分镜拆解 Agent 的角色定位是「资深影视分镜师」它不输出任何分析文本而是把剧本直接拆成分镜方案并同步产出可供视频生成直接消费的提示词。文档给出的核心定义是一个分镜 一个「分镜段落」segment 一个视频生成任务。每个段落满足以下结构约束时长8–15 秒内部承载2–4 个子镜头子镜头之间可以切镜允许改变画面尺寸景别、拍摄角度、拍摄对象用硬切衔接子镜头之间不跨场景一个段落只发生在一个场景内scene_id是段落级绑定即段与段之间才能切换场景。补充指南 SKILL.ko.md 还细化到「每个子镜头 2–6 秒聚焦一个画面单元一个动作、一个反应、一个特写」。这套粒度设计的背后是视频生成模型的现实约束单次生成任务的时长上限与画面一致性都有限8–15 秒恰好是多数视频模型可接受的单任务区间而「段落内切镜不跨场」保证了参考图场景/角色/道具素材在一个任务内保持一致。在数据库层面这个定义被直接落实为 sqlite-schema.ts 中的storyboards表一行分镜记录对应一个段落通过episode_id关联到集scene_id段级绑定场景storyboard_number表示段落在整集中的顺序duration存段落时长video_prompt/description/atmosphere等字段与文档中的段落字段一一对应角色与道具则通过storyboard_characters、storyboard_props两张关联表以多对多方式挂接。四步工作流读上下文 → 节拍识别 → 总量锚定 → 拆子镜头并保存系统提示词规定的工作流程共四步与 SKILL.ko.md 中的「拆分流程四步」完全一致调用read_storyboard_context读取剧本、角色列表、场景列表、道具列表以及已有分镜摘要节拍识别先识别剧本的叙事节拍——文档列举了【开场】【触发】【高潮】【收尾】这类标记韩语原文写作【오프닝】【촉발】【클라이맥스】【마무리】以及叙事转折点地点转移、规则揭示、情绪爆发、反转。规则是节拍边界强制切段同一节拍内的子镜头优先归入同一段落不把一条因果链铺垫-发生-反应切散到不同段落总量锚定目标总时长 剧本字数 ÷ 500 字/分钟段落数 ≈ 目标总时长 ÷ 12 秒允许 ±20% 浮动既不明显超出也不明显不足段落内拆子镜头按动作切换点、视角切换点、对象切换点切分子镜头为每个段落补全全部字段后调用save_storyboards保存。read_storyboard_context上下文从哪来这个工具在 storyboard-tools.ts 中实现。它从请求上下文RequestContext中取出episodeId/dramaId然后读取该集的剧本ep.scriptContent || ep.content并按「当前剧已关联到本集」的过滤逻辑返回charactersid / name / role / description / appearance / styling / image_url / reference_imagesscenesid / location / time / prompt / lighting / image_url / storyboard_countpropsid / name / type / description / image_urlexisting_storyboards已保存的分镜摘要含shot_number / title / scene_id / character_ids / prop_ids / shot_type / duration / description / atmosphere / video_prompt。这与文档中「角色名/场景名必须与 read_storyboard_context 返回的列表完全一致」的约束互为印证引用名必须以工具返回值中的name/location为准不能缩写或加额外符号。save_storyboards分批保存与 replace_existing 语义保存环节有两个关键规则源码在 storyboard-tools.ts 中逐条落地第一批必须带replace_existing: true源码会先删除该集全部旧分镜及其角色/道具关联记录再写入新数据保证整集重新生成时不留旧镜头L267-L277的清理逻辑后续批次省略replace_existing追加保存每批最多8 个段落shot_number必须按顺序递增按shot_number幂等 upsert源码维护shotToId映射同一shot_number已存在时走更新而非重复插入L279-L322因此分批保存、重试都不会产生重复分镜整集时长自动回写保存完成后以「当前全部存活分镜的时长之和 ÷ 60 向上取整」更新该集durationL324-L333这正是文档「段落总时长 8–15 秒」规则在集层面的汇总体现。段落字段规范七个生产字段逐项拆解每个段落必须填写以下字段文档规定zod 校验结构见 storyboard-tools.ts字段说明取值约束character_ids当前段落涉及的角色 ID 列表可为空也可多个必须从characters中选择prop_ids当前段落出现的关键道具 ID 列表道具被看到、使用或特写时绑定可为空必须从props中选择scene_id段落绑定场景能匹配scenes中已有场景时必须填写正确 ID无匹配置空duration段落总时长8–15 秒且满足台词时长下限description画面描述按【镜头1】【镜头2】…逐子镜头写观众实际看到和听到的内容atmosphere氛围、光线、色调、环境感受为后续 video_prompt 提供氛围来源video_prompt该段落的视频生成提示词规则见下文description逐子镜头的视听脚本description是段落里的人读脚本格式要求严格画面信息写在前谁 具体动作 肢体细节 表情该子镜头有台词时以「角色名说「台词」」写进对应【镜头N】内旁白写作「旁白内容」。没有台词的段落description中不写台词即可但画面描述与atmosphere仍必须完整——这是硬要求因为无台词段落依然要支撑后续视频生成与导出。video_prompt可直接投喂视频模型的提示词video_prompt是文档着墨最多的规则区也是整个 Agent 产出的核心资产按 3 秒为一段、每段单独一行换行分隔description中的每个【镜头N】映射为1–2 个连续的 3 秒段顺序一致、不遗漏、不新增子镜头切镜点对齐【镜头N】结构每段先写画面谁 动作 景别/角度再写该段时间内的台词/旁白——台词必须从description对应【镜头N】内提取禁止创作 description 之外的新台词提到场景用场景名、提到角色用角色名名字必须与read_storyboard_context返回的列表完全一致——这是为了在视频生成时挂接参考素材图片氛围、光线描述取自该段atmosphere一个段落内允许切镜但不跨场景模型自适应用户消息中会告知本次视频模型Agent 按该模型的特性与时长限制调整写法未告知时按通用视频模型方式写。测试 video-prompt-references-structure.test.mjs 专门锁定了这套格式断言源码与 SKILL 中必须使用场景名/角色名引用而非location/role之类的 XML 标签并确认名字在视频提示词生成环节会被替换为图片N名字这样的参考图标记。关于后者的完整替换规则可查看 index.ts 中prompt_generator的系统提示词它负责为单个分镜生成/重写video_prompt并在保存时只回传storyboard_id与video_prompt两个键。时长规则三条硬约束保证节奏可看、台词能演完时长是分镜拆解中最容易被模型「拍脑袋」的维度因此文档给出了三条数值化的硬规则总量锚定目标总时长 剧本字数 ÷ 500 字/分钟段落数 ≈ 目标总时长 ÷ 12 秒允许 ±20% 浮动。例如一段 600 字的剧本目标总时长约 72 秒段落数约 6 段。节奏分层按段落功能而非一刀切地定时长——段落类型时长适用场景过渡段8–10 秒赶路、空镜、环境建立、转场叙事段10–15 秒常规剧情推进、对话爆点段12–15 秒特写、规则揭示、情感爆发、反转子镜头节奏放慢单个子镜头可停留 4–6 秒台词时长下限防「台词塞不下」段落时长 ≥ 段内台词与旁白总字数写在 description 中的部分÷ 4.5 字/秒 2 秒表演余量装不下的台词必须拆到下一个段落不允许把演不完的台词硬塞进一个段落。这一规则从源头保证了视频成片不会出现「角色还没说完话就切走」的翻车。硬约束输出只允许工具调用系统提示词对输出行为做了严格限定这是 Agent 能在无人值守流水线中稳定工作的前提不要输出任何规划、分析、推理或解释性文本不要复述剧本不要写「我正在…」「首先我需要…」这类话——思考留在模型内部输出只允许工具调用每个输出步骤必须是工具调用或完成后的简短结束语禁止先输出大段文字再调用工具内容过多需要分多批时在连续的工具调用中完成全部批次中间不要插入文字全部段落保存完成前不要结束——只保存部分段落就停止是不被允许的。这些约束与 agents/index.ts 中storyboard_breaker的默认提示词一致同时该文件还实现了两个配套工程手段关闭 thinking 模式AI_DISABLE_THINKING避免中转站因 reasoning_content 无法回传而 400 拒绝以及抬高输出上限AI_MAX_TOKENS默认 16384防止长剧本分批保存时工具调用被截断导致「Agent 正常结束但什么都没保存」。场景、角色、道具的绑定规则与底层校验三者的绑定规则在文档「额外要求」部分给出核心是一切引用都来自read_storyboard_context的返回值场景优先复用返回的scene_id不要凭空创造新场景location time能明确匹配时必须回填正确scene_id剧本内容明显落在已有场景时不要重复创造新场景描述角色character_ids必须从返回的角色列表选择段落里明确出场、被看见、发生动作或说话的角色都应绑定纯环境段落、空镜、物件特写可传空数组道具prop_ids必须从返回的props列表选择道具被角色使用、交接、特写或在画面中明显可见且对叙事有意义时绑定与剧情无关的背景物品、场景陈设不绑定没有道具的段落传空数组。绑定道具会作为视频生成的参考图白底单品图保证道具外观跨段落一致。源码侧storyboard-tools.ts 的validateStoryboardBindings会在每次保存/更新前执行校验scene_id、character_id、prop_id必须属于当前剧且未被软删除不属于当前剧直接抛错对于属于本剧但尚未关联到当前集的对象会自动补关联写入episode_scenes/episode_characters/episode_props实现「拆分的瞬间完成绑定」。REST 层 storyboards.ts 也有同构的校验只允许当前集已关联的对象二者共同守住数据完整性。另外update_storyboard工具L344-L437专门过滤了模型回传的垃圾值——字符串为null/undefined的字段会被直接丢弃避免覆盖已有内容。多语言变体同一份规则、多份语言渲染本关联文档是韩语变体storyboard_breaker.ko.md同级目录还存有中文基础版 storyboard_breaker.md、英文storyboard_breaker.en.md、日文storyboard_breaker.ja.md。加载机制在 prompts.ts 中promptFilePath(type, lang)按语言拼出prompts/type.lang.mdzh/空 使用基础版loadAgentPromptFile非 zh 时优先语言变体缺失回退基础版frontmatter 只解析name/model两个标量字段无需 yaml 依赖model永远只从基础版解析避免多语言文件漂移。同构的多语言体系也覆盖到技能规范SKILL.ko.md 与 SKILL.md 等按语言存放由loadAgentSkills随内容语言切换。最终agents/index.ts 的buildInstructions把「基础提示词 技能全文 目标语言指令块」拼接为最终 system promptbuildModel则解析基础版 frontmatter 并允许请求级modelOverride/textConfigId覆盖。下游消费video_prompt 如何驱动视频生成分镜拆解产出的video_prompt会被两条链路消费批量视频提示词补全video-prompts.ts 中startVideoPromptBatch会找出该集所有缺失video_prompt的分镜逐个运行prompt_generatorAgent 生成提示词——注意它会把该集锁定的视频配置videoConfigId对应的服务商与模型名拼进用户消息「视频模型:xxx请根据该模型的特性和时长限制生成」这正是文档「用户消息中会告知本次视频模型」规则的运行时来源且以实际落库为准判定成败Agent 跑完但video_prompt仍为空则记为失败。视频生成任务generation.ts 的GenerateVideoParams接收storyboardId prompt配合referenceImageUrls由角色名/场景名解析出的参考图经各视频适配器如 aliyun-wan-video.ts、minimax-video.ts发起生成产物video_url、首帧/末帧图、字幕地址再回写到storyboards表。至此「剧本 → 分镜段落 → video_prompt → 视频成片」的整条链路闭合分镜拆解 Agent 是其中把「叙事」翻译成「可执行视频任务」的枢纽而本文讲解的每一条规则段落粒度、时长锚定、3 秒分段、引用、绑定校验最终都以数据库字段和工具校验的形式固化在源码中保证整集重新生成时旧镜头被清空、新分镜按序落库、绑定关系一致、时长可核算。赞分享AI 应用人工智能媒体生成音视频AI Agent后端前端【免费下载链接】huobao-drama 火宝短剧 - 基于AI的一站式短剧生成平台 《一句话生成完整短剧从剧本到成片全自动化》 Huobao Drama - An AI-Powered End-to-End Short Drama Generator One Sentence to Complete Drama: Fully Automated from Script to Final Video项目地址https://gitcode.com/gh_mirrors/hu/huobao-drama点击查看免费下载相关推荐OpenProject 6.0.5 发布说明详解工作包、Wiki、仓库与成本模块的修复清单及源码定位OpenProject 6.0.5 发布说明详解工作包、Wiki、仓库与成本模块的修复清单及源码定位 本文基于 OpenProject 仓库中的官方发布说明文AI 应用人工智能媒体生成音视频AI Agent后端前端火宝短剧 script_rewriter Agent 提示词设计解析韩语版剧本改写如何把小说自动转成格式化短剧剧本火宝短剧 script_rewriter Agent 提示词设计解析韩语版剧本改写如何把小说自动转成格式化短剧剧本 导读 本文围绕火宝短剧Huobao DrAI 应用人工智能媒体生成音视频AI Agent后端前端火宝短剧Huobao Drama工程架构全解AI 短剧生成流水线、Mastra Agent 编排与开发命令指南火宝短剧Huobao Drama工程架构全解AI 短剧生成流水线、Mastra Agent 编排与开发命令指南 火宝短剧Huobao Drama是一套AI 应用人工智能媒体生成音视频AI Agent后端前端上一篇OpsCloud4一款全面的云上运维管理平台下一篇PatrOwlManager开源安全运营编排平台创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表