ARTICLE DETAIL

资讯详情

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

剧本丢进去,角色怎么自动冒出来?ViMax CharacterExtractor 角色提取原理拆解

剧本丢进去,角色怎么自动冒出来?ViMax CharacterExtractor 角色提取原理拆解 剧本丢进去角色怎么自动冒出来ViMax CharacterExtractor 角色提取原理拆解【免费下载链接】ViMaxViMax: Agentic Video Generation (Director, Screenwriter, Producer, and Video Generator All-in-One)项目地址: https://gitcode.com/GitHub_Trending/ai/ViMax一段剧本里她那个女生年轻女子连着出现其实全是同一个人系统怎么知道ViMax 的 CharacterExtractor 角色提取模块就是干这个的下面把这套人物识别拆开讲。模块定位一句话上游 pipeline 把整段剧本塞给它它吐出一份能直接喂给画图模型的角色档案清单。剧本转视频pipelines/script2video_pipeline.py和想法转视频pipelines/idea2video_pipeline.py两条链路都会实例化它提取完马上交给下游的CharacterPortraitsGenerator给每个角色画定妆照。全部逻辑就一个文件agents/character_extractor.py。 它是怎么认人的可以把它当成角色管理处的登记窗口。剧本先被SCRIPT标签包住塞进模型相当于把一沓材料装进文件夹并贴好标题。系统提示词同时给模型戴上电影剧本分析专家的帽子识别才开始。识别的关键不是关键词匹配而是把整段交给大模型读完再判断指向同一个人的她那个女生年轻女子全归进同一份档案只选最不容易混淆的当档案名只被顺嘴一提的路人甲则干脆不给建档相当于一人一档。档案名解决了还有一层麻烦剧本只写了年轻女子长什么样没提。登记员不会留白它会基于上下文设计出合理的特征还顺手保证片里几个角色长得不像——就像选角导演发现两个角色撞脸时会给其中一个换个造型。最后模型的回答不是自由文本解析器把它翻译成固定 JSON 结构再落成对象解析失败会自动重试 3 次。三个值得细看的设计流水线里有三处细节值得单独掰开看。人物合并是怎么做的麻烦在于同一个人有五种叫法不合并的话下游会把她和年轻女子画成两张脸视频里直接多出一个人物。解法是提示词里一条硬规则# 系统提示词中的合并规则同一实体的所有名字归入一个角色 - Group all names referring to the same entity under one character. Select the most appropriate name as the characters identifier.两个附带细节真人公众人物保留本名没给名字的允许用职业或外形特征the barista当档案名。整个过程纯靠上下文推断不需要任何人工维护的映射表。合并只是把谁定下来了紧接着的问题是档案上写什么。特征补全与差异化怎么保证剧本对长相描写往往很吝啬画图模型又吃不了年轻漂亮这种抽象词两个角色长得再像画面里就像同一个人换了衣服。提示词因此给了两条规矩特征缺失时补出可信的设计且描述必须具体到画得出来衣服颜色、五官特征不许用抽象词同时要求不同角色的外形尽量拉开差距。更关键的一手是把特征拆成两层静态的脸、体型基本不变和动态的服装、配饰可以按场景换。这样同一个角色跨场景脸是同一张衣服却能换。提示词还特意禁止把性格、人物关系写进特征里——那些画不出来写了只会污染提示词。档案内容定了还剩最后一关怎么让机器读得懂。结构化输出靠什么落地模型的回答是自由文本下游画图模型没法直接吃。落地靠 LangChain一套 LLM 应用开发工具链里的 PydanticOutputParser它强制模型按指定 JSON 格式作答并直接解析成 Pydantic一个做数据校验的 Python 库模型目标模型是interfaces/character.py里定义的CharacterInScene。字段很干净# interfaces/character.py 里 CharacterInScene 的关键字段 idx: int # 角色编号从0开始 identifier_in_scene: str # 场景内称呼如 Alice static_features: str # 脸、体型等稳定特征 dynamic_features: str # 服装配饰按场景可变可为空每次提取的结果就是一摞这样的档案pipeline 会存进工作目录的characters.json下次跑的时候文件在就直接复用不再重新提取。 跑起来要动哪几个文件克隆仓库git clone https://gitcode.com/GitHub_Trending/ai/ViMaxconfigs/script2video.yaml或idea2video.yamlchat_model段决定 CharacterExtractor 用哪个大模型认人图像、视频段跟这一步无关入口main_script2video.py剧本走Script2VideoPipeline不手动传角色列表时会自动触发提取并落盘写在最后这个模块解决的是把剧本里散落的角色变成画图模型能直接消费的结构化档案它不做的也很明确不分析人物关系和性格提示词里明确禁止也不做跨场景、跨事件的追踪——那是 pipeline 里CharacterInEvent等更高层模型的事。想验证本文的说法最快的路径是打开interfaces/character.py对照字段和 examples再跑一次main_script2video.py看工作目录下的characters.json。这类文本角色识别在剧本人物分析、游戏 NPC 设定生成等场景也都能用得上。【免费下载链接】ViMaxViMax: Agentic Video Generation (Director, Screenwriter, Producer, and Video Generator All-in-One)项目地址: https://gitcode.com/GitHub_Trending/ai/ViMax创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表