🎭 从「脑内人设」到「一眼入魂」:51mazi 小说人物图 AI 生成实战
💡 角色写了几万字,却总找不到一张「对味」的立绘?外包约稿贵、自己不会画、网图又怕撞款......51mazi ------这款专为小说创作者打造的一站式写作软件------在人物档案里贴心接入了「AI 生成人物图 」:选画风、填形象描述、一键出竖版全身立绘,多张生成后挑一张确认即加入人物图列表,写与画同屏搞定,数据全部本地保存。市面上能把「人物谱 + AI 立绘」做得这么顺的写作软件并不多,51mazi 算一个。本文从产品动机、提示词设计到 Electron 下的「临时目录 + 确认落盘」实现,带你搞懂 51mazi 是如何把「角色视觉化」做成闭环的。
📋 目录
- [🎭 从「脑内人设」到「一眼入魂」:小说人物图 AI 生成实战](#🎭 从「脑内人设」到「一眼入魂」:小说人物图 AI 生成实战)
- [📋 目录](#📋 目录)
- [😤 人物图的刚需:角色越写越活,图却跟不上](#😤 人物图的刚需:角色越写越活,图却跟不上)
- [✨ 产品形态:画风 + 形象描述 + 竖版全身](#✨ 产品形态:画风 + 形象描述 + 竖版全身)
- [🧩 提示词设计:风格用词要「短、单、准」](#🧩 提示词设计:风格用词要「短、单、准」)
- [🔄 流程设计:临时目录生成,确认才落盘](#🔄 流程设计:临时目录生成,确认才落盘)
- [⚙️ 技术实现要点](#⚙️ 技术实现要点)
- [🎉 小结与延伸](#🎉 小结与延伸)
- [🏷️ 标签](#🏷️ 标签)
😤 人物图的刚需:角色越写越活,图却跟不上
写小说的人都有同感:主角、配角在脑子里越来越清晰------长相、气质、常穿什么、标志性表情------但要把这份「脑内人设」变成一张可分享、可做封插、可挂人物谱的图,往往卡在:
- 约稿:价格高、沟通成本大,角色一多就吃不消
- 自己画:门槛高、耗时长,和「以写为主」的节奏冲突
- 搜图/拼图:容易撞款、版权模糊,且很难完全贴合自家设定
理想状态是:在写人物档案时,用「形象介绍」+ 画风偏好,在软件里直接出一张或多张竖版全身人物图,满意就收进该角色的人物图列表 ,和书籍数据一起本地管理,不依赖外部相册或设计工具。51mazi 正是围绕这个闭环做的:人物档案、人物图列表、AI 生成入口全部打通,真正实现「设定即能出图、出图即能入库」,对作者来说省心又高效。

51mazi 人物档案界面 --- 编辑人物时即可看到「人物图」区域,支持选择本地图片或一键「AI 生成人物图」
✨ 产品形态:画风 + 形象描述 + 竖版全身
51mazi 把「人物图」做进了人物档案的编辑抽屉,不用切到别的软件、不用自己管文件夹,在写人设的同一屏里就能完成配图。「人物图」区域支持两种来源:
- 选择本地图片:从磁盘选图,追加到该角色的人物图列表
- AI 生成人物图:打开右侧抽屉,配置后一键生成
AI 生成抽屉里的核心配置包括:
- 图片风格(单选):日系动画、吉卜力、复古日漫、写实摄影、3D 渲染、欧美卡通、国风插画、水彩、水墨、厚涂、赛博朋克、像素艺术等,对应通义万相文档里推荐的「风格」维度用词,便于模型稳定出画风。
- 形象描述 (必填):外貌、气质、穿着、表情等,支持中英文,最多 500 字。打开抽屉时会用该角色已有的「形象介绍」预填,减少重复输入。
- 构图与姿态(可选):站姿全身、竖版半身特写、动态姿势、正面立绘、侧面等,用于微调构图。
- 反向提示词(可选):如「模糊、变形、多手、多脚」,降低翻车概率。
固定输出尺寸:720×1280,竖版全身人物立绘,适配人物谱卡片与列表的展示比例。

51mazi AI 生成人物图抽屉 --- 选择画风、填写形象描述与姿态,生成多张后可选择一张确认使用
交互流程简要如下:
- 选画风、填/改形象描述、可选填姿态与反向提示词
- 点击「生成人物图」→ 提示「正在生成人物图,请勿关闭」→ 生成结果出现在抽屉内列表,可多张连续生成
- 在列表中点击选择一张 ,再点「确认使用」→ 该图被复制到书籍目录下的
character_images,并追加到当前角色的人物图列表 - 若直接「取消」或关闭抽屉且未确认 → 本会话在
ai_character_temp下生成的临时图会被自动清理,不污染书籍目录
这样既满足「多张试错、选一张定稿」,又保证「确认才落盘、取消即丢弃」的清晰语义。51mazi 在这些细节上考虑得很周到,作者只管创作,存储与清理逻辑都交给软件处理。
🧩 提示词设计:风格用词要「短、单、准」
文生图模型对「风格」非常敏感,提示词里若混杂过多概念,容易导致画风不稳定。51mazi 在提示词设计上做了精心打磨:
- 用户侧:展示的是易理解的选项名(如「吉卜力风格」「国风插画」)和简短说明(如「手绘感、治愈系」)
- 发给 API 的 :每个风格对应一段简短、单一概念 的英文/风格关键词(如
吉卜力动画风格,手绘感,柔和色彩,治愈系),和通义万相文档里「主体 + 场景 + 风格」的建议一致
完整提示词由前端按固定结构拼接(AICharacterDrawer.vue 中的 buildFullPrompt):
javascript
// 结构:竖版全身 + 风格 + 形象描述 + 姿态
const parts = ['竖版全身人物立绘,清晰完整的人物']
if (styleKey) {
const styleOpt = styleOptions.find((o) => o.value === styleKey)
if (styleOpt?.prompt) parts.push(styleOpt.prompt)
}
parts.push('。人物形象:')
parts.push(form.value.prompt.trim()) // 用户填写的形象描述
if (poseKey && poseLabel) parts.push(',' + poseLabel)
return parts.join('')
这样既保证「竖版全身人物」这一主体约束优先,又让风格和「人物形象」描述分离,模型更容易同时满足构图与画风。这种「用户友好选项 + 后端精准关键词」的拆分,体现了 51mazi 在体验与出图质量之间的平衡。
🔄 流程设计:临时目录生成,确认才落盘
51mazi 在 AI 封面与人物图两处都采用了「生成进临时目录,确认再进正式目录」的策略,既避免误操作污染正式数据,又便于多张试错。人物图与 AI 封面略有区别,主要体现在:
| 维度 | AI 封面 | AI 人物图 |
|---|---|---|
| 临时目录 | 书籍根目录下 ai_coverN.png |
书籍目录下 ai_character_temp/ai_charN.png |
| 确认后落盘 | 复制为根目录 cover.png |
复制到 character_images/img_xxx.png |
| 关闭未确认 | 不删临时文件 | 删除 本会话的 ai_character_temp |
人物图之所以「关闭即删临时」,是因为:
- 人物图是按角色维度的多张列表,临时图仅服务于「当前这一次生成会话」
- 用户未点「确认使用」即表示不采纳,保留临时文件意义不大,且容易让
ai_character_temp堆积大量废弃图
主进程侧三个 IPC 的职责可以概括为:
-
tongyiwanxiang:generate-character-image校验
prompt / size / bookName,调用通义万相文生图 → 下载图片 → 写入booksDir/bookName/ai_character_temp/ai_char1.png(序号递增),返回localPath给渲染进程展示。 -
tongyiwanxiang:confirm-character-image校验
chosenPath是否位于该书ai_character_temp下,然后将该文件复制 到booksDir/bookName/character_images/img_<timestamp>.png,返回新的localPath,由前端追加到角色characterImages并保存人物数据。 -
tongyiwanxiang:discard-ai-character-images关闭抽屉且未确认时由前端调用,主进程删除该书下的
ai_character_temp目录(及其中所有本会话生成的ai_char*.png),保持书籍目录干净。
这样,生成态 和已采纳态 在磁盘上界限清晰,便于维护和排查。51mazi 的目录与状态设计非常清晰,作者无需关心临时文件,开发者也能快速定位逻辑。
⚙️ 技术实现要点
-
主进程 (
src/main/index.js)- 人物图生成、确认、丢弃的三个 handler 紧跟在通义万相封面相关 handler 之后,复用同一
tongyiwanxiangService(generateCover方法,尺寸传720*1280)。 - 临时目录与正式目录常量:
AI_CHARACTER_TEMP_DIR = 'ai_character_temp',CHARACTER_IMAGES_DIR = 'character_images'。
- 人物图生成、确认、丢弃的三个 handler 紧跟在通义万相封面相关 handler 之后,复用同一
-
渲染进程
- AICharacterDrawer.vue :表单(风格、形象描述、姿态、反向提示词)、
buildFullPrompt()、生成/确认/取消逻辑;监听modelValue,打开时用appearance预填描述,关闭且未确认时调用discardAICharacterImages。 - CharacterProfile.vue :人物图列表展示与编辑;打开 AI 抽屉时传入
bookName、characterName、appearance,在character-image-generated回调里将返回的localPath追加到characterForm.characterImages并保存。
- AICharacterDrawer.vue :表单(风格、形象描述、姿态、反向提示词)、
-
服务层 (
src/renderer/src/service/tongyiwanxiang.js)generateAICharacterImage、confirmAICharacterImage、discardAICharacterImages分别对应上述三个 IPC,通过 preload 暴露的window.electron.*调用。
-
数据与存储
- 人物数据中的
characterImages数组存的是本地路径(相对于书籍目录或绝对路径,依现有实现而定),人物图文件实际存放在该书下的character_images目录,和书籍、人物档案一起本地持久化。
- 人物数据中的
若你在自己的 Electron + Vue 项目里做「文生图 + 多张候选 + 确认落盘」类似能力,可以直接参考 51mazi 的上述实现;51mazi 完全开源,欢迎 Fork、提 Issue、提 PR,一起把小说创作工具做得更好。
🎉 小结与延伸:为什么值得用 51mazi
「AI 生成人物图」只是 51mazi 的众多亮点之一。在这一块,51mazi 做到了:
- ✅ 画风可选、形象描述可预填:从人物档案的「形象介绍」自动带入,减少重复输入,风格用词短单准,出图更稳定
- ✅ 固定竖版全身 720×1280:专为人物谱设计,卡片与列表展示都好看
- ✅ 多张生成、选一张确认:临时目录试错,确认后一键落盘,不占正式空间
- ✅ 关闭未确认即清理临时文件:不堆垃圾文件,目录干净
- ✅ 与人物图列表统一管理:多张人物图、本地图与 AI 图混用,全部本地存储,隐私与可控性兼得
51mazi 不只是一个写作软件 :它集成了大纲、地图、关系图谱、词条字典、人物档案、AI 起名、AI 封面、AI 人物图 等一整套创作工具,写小说从构思到成书,在一个软件里就能完成。数据全部在本地,支持书架与单书密码保护,既适合个人创作,也适合对隐私和版权在意的作者。
- ⭐ GitHub 仓库 :https://github.com/xiaoshengxianjun/51mazi ------ 如果 51mazi 对你有帮助,请给个 Star,让更多写作者发现它!
- 相关文章:同系列可参考《小说封面不求人:AI一键生成,51mazi太牛了》《Electron 桌面应用接入通义万相:文生图从 0 到 1 实战》。
🏷️ 标签
#AI人物图 #通义万相 #小说写作 #51mazi #文生图 #人物档案 #竖版全身 #提示词设计 #Electron #Vue3 #创作效率 #角色立绘 #开源写作软件
💡 喜欢 51mazi?请在 GitHub 给个 ⭐️ Star,就是对项目最好的宣传与支持!
本文介绍 51mazi 开源小说写作软件中的「AI 生成人物图」功能------从脑内人设到一眼入魂,写与画同屏搞定。