小说封面不求人:AI一键免费生成,51mazi太牛了
📖 小说封面不求人:AI一键免费生成,51mazi太牛了
💡 写小说最烦的两件事:一是起名,二是做封面。起名可以交给 AI,封面呢?找设计师贵、自己不会 PS、模板又太丑……本文介绍 51mazi 里「AI 生成小说封面」的完整体验:从提示词里自动带上书名和笔名,到多尺寸、多张生成、确认后一键设为封面,全部在写作软件里完成。文末附实现思路与 GitHub 链接,欢迎直接拿代码、提需求、点 Star。
📋 目录
😫 封面之痛:很多作者的共同烦恼
小说写完了,总要有个封面。现实往往是:
- 找设计师:贵、排期长、沟通成本高,改一版又要加钱
- 自己 PS:不会用、没时间学,模板字体丑、排版土
- 在线模板:千篇一律、书名笔名位置固定,很难做出「这本书」的感觉
- 随便找图:版权风险、和内容不搭,平台审核还容易翻车
结果就是:很多作者要么将就一张图用到底,要么反复折腾,耽误写下一本的时间。
更理想的方式:在写作软件里,根据「书名 + 笔名 + 风格描述」一键生成多张候选图,选一张确认就成正式封面,全程不离开创作环境。这就是 51mazi 里「AI 生成小说封面」要解决的问题。

51mazi 书架界面 — 在这里管理书籍,编辑书籍时可打开「AI 生成封面」一键做封面
🤖 AI 封面的优势:快、可控、可迭代
把通义万相(文生图)接到写作软件里之后,可以做到:
- ✅ 快:几十秒出一张图,不用等设计师、不用学 PS
- ✅ 可控:提示词里明确写「封面上必须显示书名《xxx》和作者笔名 xxx」,模型会尽量把文字画进图里
- ✅ 可迭代:一次生成多张(ai_cover1.png、ai_cover2.png…),不满意就「再生成一张」,直到挑中再「确认使用」
- ✅ 本地落盘:所有生成的图都保存在书籍根目录,确认的那张复制为
cover.png,和书籍数据一起管理,不依赖云端相册
对作者来说,封面从「外包/自学/凑合」变成「在软件里点几下就能搞定」的流程。
🎯 功能长什么样:从填写到确认
在 51mazi 里,从书架进入「编辑书籍」即可看到封面相关入口,打开「AI 生成封面」弹框后,流程大致是:
-
填写笔名、选尺寸
笔名会写进提示词,让封面上出现作者名;尺寸支持常见比例(如 600×800、1280×1280 等),对应不同平台要求。 -
写封面要求(风格/元素)
用户自由描述:古风、现代、玄幻、简约、要有山有海等。这部分会和「书名」「笔名」一起拼成完整提示词发给通义万相。 -
点「生成封面」
弹框内提示「正在努力生图中,不要关闭弹框」,避免用户误关;生成完成后图片出现在列表里,自动选中最新一张。 -
多张候选、确认一张
可继续「再生成一张」,所有图按ai_cover1.png、ai_cover2.png… 保存在书籍根目录;选一张点「确认使用」,这张会被复制为cover.png,作为该书的正式封面。 -
取消/关闭
关闭弹框不会删除已生成的ai_cover*.png,方便以后在文件夹里再看或换用。
整体设计原则:生成即保存、确认即定稿,不依赖「会话状态」,所有结果都落在书籍目录里,和 51mazi 的本地存储理念一致。
💡 核心设计:提示词里必须带上书名和笔名
很多文生图接口只会「按你写的提示词画图」。如果只写「古风、山水、唯美」,模型不会自动知道要在封面上写哪本书、哪个作者,所以必须在提示词里显式写清。
在 51mazi 里,发送给通义万相的提示词是「三段式」拼接的:
-
书名(必填)
- 例如:
封面上必须清晰、醒目地显示书名《xxx》,书名需易于辨认。 - 这里的
xxx来自当前书籍的书名(如 props.bookName)。
- 例如:
-
笔名(选填)
- 若用户填了笔名:
封面上必须清晰显示作者笔名:xxx。 - 若未填笔名,这段就不加。
- 若用户填了笔名:
-
风格与画面(用户填写)
- 若用户写了「封面要求」:
风格与画面要求:用户输入的内容 - 若未写:默认
封面风格为小说封面,美观大气。
- 若用户写了「封面要求」:
最终发给 API 的 prompt 就是这三段拼在一起的一条长文本。这样模型会被明确要求:把书名和笔名画在封面上,再在用户描述的风格下发挥,大大降低「只有图、没有字」的情况。
前端示例(逻辑在 AICoverDrawer.vue 的 handleGenerate):
const titlePart = `封面上必须清晰、醒目地显示书名《${bookName}》,书名需易于辨认。`
const authorPart = penName ? `封面上必须清晰显示作者笔名:${penName}。` : ''
const stylePart = userPrompt ? `风格与画面要求:${userPrompt}` : '封面风格为小说封面,美观大气。'
const fullPrompt = `${titlePart}${authorPart}${stylePart}`
await generateAICover({ prompt: fullPrompt, size, bookName, negativePrompt })
通义万相是中文友好的,这种提示词能明显提升「封面上有书名、笔名」的出图率。
🎨 体验细节:生图提示、保存规则
-
生图过程
点击「生成封面」后,除了按钮 loading,还会弹出ElMessage.info('正在努力生图中,不要关闭弹框'),并在弹框内显示一条不可关闭的提示:「正在努力生图中,请勿关闭弹框」,避免用户误关导致「不知道生成没生成」。 -
保存规则
- 每次生成的图:保存到该书根目录,文件名为
ai_cover1.png、ai_cover2.png… 按已有文件自动递增。 - 用户点「确认使用」的那张:在同一目录下复制为
cover.png(正式封面),原来的ai_coverN.png仍保留,不删除。 - 关闭弹框不做任何删除,所有
ai_cover*.png都保留,方便日后查看或更换。
- 每次生成的图:保存到该书根目录,文件名为
这样既满足「自动保存、按序命名」,又满足「最终确认的图就是 cover.png」的需求。
⚡ 技术要点与代码位置
- 主进程:调用通义万相 API、下载图片、按
ai_coverN.png写入书籍目录;确认时把选中文件复制为cover.png。详见src/main/index.js中tongyiwanxiang:generate-cover与tongyiwanxiang:confirm-cover。 - 服务层:
src/main/services/tongyiwanxiang.js封装文生图请求与错误码解析。 - 前端:
src/renderer/src/components/AICoverDrawer.vue负责表单、提示词拼接、生成/确认/取消的交互;src/renderer/src/service/tongyiwanxiang.js封装对window.electron.generateAICover、confirmAICover的调用。
若你要在自己的 Electron + Vue 项目里做类似功能,可以直接参考上述文件;51mazi 为开源项目,欢迎 Fork、提 Issue、提 PR。
🎉 小结与 GitHub
「AI 生成小说封面」在 51mazi 里实现了:
- ✅ 提示词里强制书名 + 笔名,减少「只有图没有字」的情况
- ✅ 多尺寸、多张生成,自动保存为
ai_cover1.png、ai_cover2.png… - ✅ 确认使用即复制为 cover.png,和书籍数据一起本地管理
- ✅ 生图过程有明确提示,避免误关弹框
- ✅ 关闭不删图,历史生成结果都留在书籍目录里
如果你也在做写作/内容工具,想加「一键生成封面」能力,可以把 51mazi 当参考实现;如果你只是作者,想找一个「能写又能做封面」的本地写作软件,也欢迎直接试用并到 GitHub 反馈。
- GitHub 仓库:https://github.com/xiaoshengxianjun/51mazi ⭐ 给个 Star 支持一下!
- 相关文章:Electron 接入通义万相的技术细节可看同系列博客《Electron 桌面应用接入通义万相:文生图从 0 到 1 实战》。
🏷️ 标签
#AI封面 #通义万相 #小说写作 #51mazi #文生图 #写作软件 #Electron #Vue3 #提示词 #创作效率
💡 如果这篇文章对你有帮助,请在GitHub上给个 ⭐️ 支持一下!
本文基于 51mazi 开源项目,AI 生成小说封面功能
更多推荐



所有评论(0)