
角色不跑偏ProjectDream 的角色库、定妆图和声线闭环本文继续记录 ProjectDream 的核心功能模块这一篇聚焦角色库、角色定妆图和角色一致性控制。一、前言在 AI 漫剧或短视频项目里角色一致性通常比“能不能生成”更难处理。如果同一个角色在不同镜头里长相变化太大用户很快就会出戏。ProjectDream 在角色这部分做得比较完整不只是保存一个名字而是把角色当成一个长期资产来管理。这一篇主要讲四件事角色库角色详情定妆图生成与确认声线绑定和改名同步二、模块定位角色库模块负责把剧本中的人物从普通文本变成可管理的角色实体。每个角色都有唯一 ID、名称、身份、性别、年龄段、外貌、性格、声线和定妆参考图。角色一致性模块则负责在静帧生成前校验角色是否可识别、是否已经绑定到角色库、是否具备清晰的性别年龄和参考图从而减少 AI 生成时的人物漂移。简单说角色库解决的是“这个人是谁”一致性模块解决的是“后面还像不像这个人”。三、角色库页面3.1 页面作用角色库是整个角色体系的入口页。在这里用户可以看到项目中的所有角色也可以手动创建角色或者直接基于总纲和剧本生成角色档案。3.2 页面流程角色库页的主要流程是用户进入角色库页面读取当前项目下的角色列表用户可以手动新增角色也可以点击 AI 生成角色进入角色详情后继续补充档案3.3 页面截图四、角色详情页4.1 页面作用角色详情页是角色管理的核心页面。它不是单纯展示信息而是围绕角色档案补全、定妆图、声线和改名同步做完整管理。4.2 页面区域角色详情页主要分成几个区域基础档案编辑AI 补全角色档案角色定妆图生成和确认声线推荐、试听和锁定改名影响预览和同步4.3 页面截图五、AI 生成角色档案5.1 功能说明ProjectDream 支持从总纲和剧本自动抽取角色信息。这个过程会从文本里提取姓名、戏剧身份、性格、固定外观和 TTS 音色然后写入角色表。这样用户就不需要每个角色都从头填一遍。5.2 流程AI 生成角色的流程大致如下POST /api/projects/:projectId/characters/generate - authenticate - 校验项目 - 读取总纲、场景、剧本 - aiGenerateCharacters() - normalizeCharactersPayload() - 去重并写入 characters5.3 角色信息角色音色的管理并不是随便选一个音色就结束而是要保存年龄段性别风格标签声线配置是否锁定这样后面的对白、旁白和口型同步才能保持一致。六、定妆图生成与确认6.1 功能说明角色定妆图是角色一致性的基础。系统会根据角色档案生成候选定妆图用户确认后写入reference_image_url。后续静帧生成时系统会读取这张图作为参考。6.2 页面流程定妆图的流程大致是进入角色详情页点击生成定妆图后端创建生成任务生成候选图用户确认其中一张作为主参考图6.3 关键接口POST /api/characters/:characterId/images/generate GET /api/characters/:characterId/images POST /api/character-images/:imageId/confirm6.4 数据表相关表主要是character_imagescharacterscharacter_images里会记录候选图的版本号、图片地址、提示词快照、模型名和状态。当前每个角色只允许一张confirmed定妆图这样后续静帧和视频生成才有明确参考。6.5 页面截图七、声线推荐与锁定7.1 功能说明角色不仅要像还要“听起来像”。ProjectDream 会根据角色的年龄段、性别和气质推荐声线然后支持试听和锁定。对白生成时会优先读取已经锁定的角色主音色。7.2 关键逻辑角色音色的管理并不是随便选一个音色就结束而是要保存年龄段性别风格标签声线配置是否锁定这样后面的对白、旁白和口型同步才能保持一致。7.3 真实接入真实接入记录里这部分已经完成了 DashScope TTS 的接入和真实验证。项目里支持角色短句试听声线推荐声线确认锁定后对白生成这样角色的声音不再是临时随机分配而是可以持续复用的配置。八、角色改名同步8.1 为什么要做同步角色改名不是简单把characters.name更新一下就完了。因为角色名会出现在很多地方项目简介总纲场景正文分镜动作分镜对白分镜视觉提示词如果只改角色表其他地方不动前后就会不一致。8.2 同步流程用户改名时系统会先预览影响范围。如果用户选择同步引用后端会生成改名计划并通过事务更新相关内容。8.3 涉及范围同步会覆盖项目描述总纲 JSON场景文本分镜动作分镜对白分镜视觉提示词这样可以避免角色名称在不同模块里前后不一致。8.4 关键接口POST /api/characters/:id/rename-preview PUT /api/characters/:id九、角色一致性校验9.1 校验目标角色一致性校验发生在静帧生成之前。系统会检查当前分镜中的角色是否已绑定角色库性别和年龄是否明确是否具备参考图是否能和分镜中的视觉描述匹配9.2 阻断条件下面这些情况会直接阻止静帧生成可见角色没有参考图分镜里出现人类主体但无法匹配角色库角色性别或年龄缺失角色识别上下文不完整这一步的目的很简单就是尽量在生成前把问题拦住而不是让模型生成完以后再修。十、总结角色库这部分在 ProjectDream 里很重要因为它不只是“存角色信息”而是把角色变成了可以持续管理的生产资产。从档案、定妆图、声线到改名同步和静帧校验整条链路都在围绕一个目标展开让角色在后面的分镜、静帧、视频里尽量保持稳定。下一篇会开始写分镜静帧视频音频相关功能