Mq AI Novel2Comic
mq-ai-Novel2Comic 项目是基于人工智能技术的小说转漫画自动化工具,核心目标是打破小说文本与漫画图像的创作壁垒,为用户提供 “文本输入→漫画输出” 的低成本、高效率可视化解决方案,降低非专业创作者的漫画制作门槛。
Install / Use
npx skills add lmqvq/mq-ai-Novel2ComicInstalls into whichever agent you are using.
README
Novel2Comic - 基于AI的小说漫画生成平台
项目名称: Novel2Comic 技术栈: Spring Boot 3.5 + Spring AI + Vue 3 + 智谱AI + 硅基流动 项目版本: v1.2.0 开发语言: Java 21 前端框架: Vue 3 + Element Plus
📚 目录
📖 项目概述
项目背景
随着AIGC技术的快速发展,文本到图像的生成能力已经达到商业化水平。当前网络文学市场规模超过300亿元,但传统的小说改编漫画流程存在以下问题:
- 成本高昂: 专业漫画师制作一页漫画需要500-2000元
- 周期漫长: 一部短篇漫画(20-30页)需要1-2个月
- 人才稀缺: 优秀的漫画师供不应求
- 创作门槛: 普通作者难以将文字可视化
项目定位
Novel2Comic是一个基于大语言模型(LLM)和文生图AIGC技术的小说转漫画自动化生成平台,旨在帮助创作者以极低成本快速产出可视化内容。
核心价值
- ✅ 降本增效: 将漫画制作成本降低90%,时间缩短95%
- ✅ 智能分镜: 自动理解小说情节,设计合理的漫画分镜
- ✅ 角色一致: 基于向量检索技术保证角色外观一致性
- ✅ 多种风格: 支持日式、国风、写实等多种漫画风格
🎬 演示视频
完整功能演示视频:点击观看 B站视频
📺 视频展示了从小说上传、角色提取、分镜生成到漫画预览的完整流程。
🎯 议题一问题回答
1. 目标用户与痛点分析
1.1 目标用户类型
本产品面向三类核心用户群体:
用户群体1:网文作者/编剧 🎭
用户画像
- 年龄: 20-35岁
- 职业: 网络作家、自由编剧、内容创作者
- 技术能力: 低,不会画画,缺乏设计技能
- 付费意愿: 高(¥50-200/月)
核心痛点
- 宣传物料制作难: 想为自己的小说制作宣传物料,但缺乏绘画能力
- 外包成本高: 外包漫画制作动辄数千元,对于新人作者负担太重
- 验证周期长: 无法快速验证故事的视觉呈现效果,影响创作方向调整
用户故事
作为一名网络小说作者
我想要将我的小说章节转换为漫画分镜
以便在发布新章节时配上漫画宣传图
这样可以提高读者的点击率和订阅转化率
验收标准:
- 可以上传3000字的小说文本
- 系统自动提取主要角色和场景
- 生成6-10张风格统一的漫画分镜
- 角色在不同分镜中外观保持一致
- 总耗时不超过3分钟
用户群体2:漫画爱好者/二创作者 🎨
用户画像
- 年龄: 18-30岁
- 职业: 学生、职场新人、动漫爱好者
- 技术能力: 低,有创作热情但不会画画
- 付费意愿: 中(¥20-50/月)
核心痛点
- 同人创作门槛高: 喜欢某部小说但没有官方漫画版,想做同人创作但不会画画
- 角色可视化需求: 想看到自己喜欢的角色可视化形象,但只有文字描述
- 分享表达欲望: 想在B站/微博分享自己的创作,获得社区认可
用户故事
作为一名漫画爱好者
我想要看到我喜欢的网文小说的可视化呈现
以便更沉浸地理解故事情节
这样我可以分享到B站/微博获得其他粉丝的认可
验收标准:
- 可以输入小说文本或提供小说章节链接
- 可以选择喜欢的漫画风格(日漫/国漫/写实)
- 生成的漫画图片可以下载
- 可以一键分享到社交平台
用户群体3:自媒体内容创作者 📱
用户画像
- 年龄: 25-40岁
- 职业: 公众号运营、短视频创作者、知识博主
- 技术能力: 中,熟悉内容运营,需要高效工具
- 付费意愿: 高(¥100-500/月)
核心痛点
- 素材需求量大: 需要大量视觉素材配合内容输出,传统方式效率低
- 版权问题困扰: 网络图片存在版权风险,原创成本高
- 制作成本高: 外包设计费用高,自己制作耗时长
用户故事
作为一名公众号运营者
我想要为我的故事类文章快速配图
以便提升文章的视觉吸引力
这样可以提高文章的打开率和分享率
验收标准:
- 可以批量上传多个段落
- 每个段落生成1-2张配图
- 图片风格统一,符合文章调性
- 支持批量下载和水印添加
1.2 用户痛点总结
| 维度 | 群体1:网文作者 | 群体2:漫画爱好者 | 群体3:自媒体创作者 | |-----|---------------|-----------------|-------------------| | 核心诉求 | 宣传推广 | 娱乐消费 | 内容生产 | | 主要痛点 | 制作成本高、周期长 | 创作门槛高 | 素材版权问题 | | 付费意愿 | 高(¥50-200/月) | 中(¥20-50/月) | 高(¥100-500/月) | | 使用频次 | 中(周更) | 高(日更) | 高(日更) | | 质量要求 | 高 | 中 | 中高 |
2. 实现挑战与应对策略
挑战1:角色外观一致性 🎭
问题描述 传统AI绘画工具每次生成的角色外观都不同,同一个角色在不同分镜中可能发色、服装完全不同,导致无法形成连贯的漫画。这是小说转漫画最核心的技术挑战。
应对策略 采用向量检索(RAG)+ 角色档案库技术
技术实现
- 首次提取: LLM从小说文本中提取角色的详细特征描述(外貌、服装、气质)
- 向量化存储: 将角色描述通过Embedding模型向量化,存入向量数据库(使用Spring AI的VectorStore)
- 一致性检索: 每次生成图片时,通过向量检索召回该角色的标准描述(Top-1召回)
- Prompt增强: 将标准描述注入到图像生成Prompt中,确保外观一致
预期效果
- 角色外观相似度:>85%(通过余弦相似度验证)
- 首次提取准确率:>90%
- 检索响应时间:<50ms
关键代码示例
@Service
public class CharacterConsistencyService {
@Resource
private VectorStore vectorStore; // Spring AI向量存储
/**
* 存储角色特征向量
*/
public void storeCharacter(String novelId, String characterName, String description) {
Document doc = new Document(description,
Map.of("novel_id", novelId, "character_name", characterName));
vectorStore.add(List.of(doc));
}
/**
* 检索一致的角色描述(生成图片时调用)
*/
public String getConsistentDescription(String novelId, String characterName) {
List<Document> results = vectorStore.similaritySearch(
SearchRequest.query(novelId + " " + characterName).withTopK(1)
);
return results.isEmpty() ? "" : results.get(0).getContent();
}
}
挑战2:图片生成速度慢 ⏱️
问题描述 一个章节可能需要生成8-12张图片,如果顺序生成需要10-15分钟,用户等待时间过长,体验极差。
应对策略 采用异步批量并行生成技术
技术实现
@Service
public class ImageGenerateService {
@Async("comicTaskExecutor")
public CompletableFuture<ComicPanel> generatePanelAsync(StoryboardPanel panel) {
// 单个分镜异步生成逻辑
String prompt = buildPrompt(panel);
String imageUrl = aigcClient.generateImage(prompt);
return CompletableFuture.completedFuture(new ComicPanel(imageUrl));
}
public List<ComicPanel> generateBatch(List<StoryboardPanel> panels) {
// 创建异步任务列表
List<CompletableFuture<ComicPanel>> futures = panels.stream()
.map(this::generatePanelAsync)
.toList();
// 等待所有任务完成
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
// 收集结果
return futures.stream().map(CompletableFuture::join).toList();
}
}
预期效果
- 10张图片并行生成:~2-3分钟(取决于最慢的一张)
- 顺序生成:~10-15分钟
- 提速:70-80%
挑战3:API调用成本高 💰
问题描述 AIGC API按次计费,频繁生成会导致成本高昂。用户可能对同一段文本多次调整,造成重复生成。例如:
- 单次图片生成成本:~¥0.08/张
- 10张图片:¥0.8
- 用户重复调整3次:¥2.4
- 月度成本不可控
应对策略 采用语义缓存 + 多级缓存技术
技术架构
请求 → L1缓存(Caffeine内存缓存,30分钟过期)
↓ 未命中
L2缓存(Redis分布式缓存,6小时过期)
↓ 未命中
语义缓存(Embedding向量相似度>0.85直接返回)
↓ 未命中
调用AIGC API生成
↓
回填所有缓存层
语义缓存实现
@Service
public class SemanticCacheService {
@Resource
private EmbeddingModel embeddingModel; // Spring AI Embedding
/**
* 检查语义缓存(相似度>0.85则命中)
*/
public Optional<String> checkCache(String prompt) {
float[] queryEmbedding = embeddingModel.embed(prompt);
// 遍历已缓存的prompt,计算余弦相似度
for (CachedPrompt cached : getAllCachedPrompts()) {
double similarity = cosineSimilarity(queryEmbedding, cached.getEmbedding());
if (similarity > 0.85) { // 阈值0.85
log.info("语义缓存命中,相似度:{}", similarity);
return Optional.of(cached.getImageUrl());
}
}
return Optional.empty();
}
}
预期效果
- 重复请求响应时间:260ms → 60ms(实测数据)
- 语义缓存命中率:~40-50%
- 成本降低:60-70%
挑战4:分镜设计不合理 🎬
问题描述 纯文本难以直接转换为合理的漫画分镜,需要考虑镜头语言、画面节奏、情绪表达等专业知识。
应对策略 采用LLM分镜脚本生成 + 规则引擎验证
技术实现
- 情节分析: LLM识别对话、动作、环境描写
- 镜头语言选择:
- 对话场景 → 中景/特写
- 动作场景 → 全景/广角
- 情绪高潮 → 特写/仰视/俯视
- 规则验证:
- 单页不超过4个分镜
- 对话场景必须包含角色
- 连续分镜避免镜头跳跃过大
Prompt模板
请为以下小说场景设计漫画分镜:
场景描述:{sceneText}
要求:
1. 判断场景类型:对话/动作/环境描写/情绪转折
2. 选择合适的镜头类型:特写/中景/全景/仰视/俯视
3. 确定画面元素:主要角色及位置、背景环境、情绪氛围
4. 生成英文绘画prompt
输出JSON格式:
{
"scene_type": "dialogue",
"shot_type": "medium",
"characters": ["李明", "王芳"],
"environment": "咖啡厅室内",
"mood": "温馨明亮",
"prompt": "Two people talking in a cozy coffee shop..."
}
预期效果
- 分镜合理性:>85%(人工评估)
- 镜头类型准确率:>90%
挑战5:系统并发与稳定性 🚀
问题描述 多用户同时生成漫画时,可能出现:
- 线程池耗尽
- 数据库连接池耗尽
- API限流
- 内存溢出
应对策略 采用任务队列 + 限流 + 降级策略
技术实现
- 线程池配置: 核心线程数 = CPU核心数,最大线程数 = CPU核心数 × 2
- API限流: 全局限流100 QPS,单用户限流10次/分钟
- 降级策略: API失败后降级到缓存结果,缓存未命中则返回默认图片
- 任务队列: Redis队列 + WebSocket实时推送进度
预期效果
- 并发处理能力:100 QPS
- 系统可用性:>99.5%
3. AIGC模型选择与对比
3.1 文本生成模型(LLM)选择
需求分析 文本生成模型用于:
- 小说结构分析(提取角色、场景、情节)
- 角色特征提取(外貌、服装、气质)
- 分镜脚本设计(镜头类型、构图、氛围)
- Prompt优化(生成高质量的绘画提示词)
对比表
| 模型 | 中文能力 | 成本(1M tokens) | 网络访问 | Spring AI支持 | 推荐度 | |-----|---------|------------------|---------|--------------|--------| | 智谱GLM-4 | ⭐⭐⭐⭐⭐ | ¥5 | 直接访问 | ✅ | ⭐⭐⭐⭐⭐ | | 通义千问Qwen-Plus | ⭐⭐⭐⭐⭐ | ¥4 | 直接访问 | ✅ | ⭐⭐⭐⭐ | | DeepSeek V3 | ⭐⭐⭐⭐ | ¥1 | 直接访问 | ✅ | ⭐⭐⭐⭐ | | GPT-4 | ⭐⭐⭐⭐⭐ | ¥120 | 需代理 | ✅ | ⭐⭐⭐ | | Claude 3 | ⭐⭐⭐⭐ | ¥80 | 需代理 | ✅ | ⭐⭐⭐ |
最终选择:智谱GLM-4
选择理由
- ✅ 中文优化: 对中文小说理解最好,训练数据包含大量中文文学作品
- ✅ 成本优势: 是GPT-4的1/24,性价比最高
- ✅ 网络直达: 无需代理,开发调试方便,国内访问速度快
- ✅ Spring AI支持: 可直接使用Spring AI的统一API,代码简洁
- ✅ 免费额度: 新用户有免费试用额度,降低试用成本
- ✅ API稳定: 智谱AI是清华系公司,技术实力强,API稳定可靠
- ✅ 长文本支持: 支持128K上下文,足够处理长篇小说
实际测试表现
- 角色提取准确率:92%
- 场景分析准确率:88%
- Prompt质量:优秀
- 响应速度:平均1.5秒
3.2 图像生成模型(AIGC)选择
需求分析 图像生成模型用于:
- 根据Prompt生成漫画风格图片
- 支持多种风格(日漫、国漫、写实)
- 保证一定的角色一致性
- 控制生成成本
对比表
| 模型 | 质量 | 漫画风格 | 一致性 | 成本/张 | 中文支持 | 推荐度 | |-----|-----|---------|--------|--------|---------|--------| | 硅基流动Flux | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ¥0.05 | ✅ | ⭐⭐⭐⭐⭐ | | 通义万相Wanx | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ¥0.08 | ✅ | ⭐⭐⭐⭐ | | DALL-E 3 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ¥0.4 | ❌ | ⭐⭐⭐ | | Midjourney | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | $30/月 | ❌ | ⭐⭐ | | SD-XL | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | 自部署 | ✅ | ⭐⭐⭐ |
最终选择:硅基流动(SiliconFlow)Flux模型
选择理由
- ✅ 质量顶级: Flux模型是当前开源最强的文生图模型,质量接近Midjourney
- ✅ 漫画风格丰富: 支持日漫、国漫、写实等多种风格,可通过Prompt控制
- ✅ 成本最低: ¥0.05/张,是DALL-E的1/8,是通义万相的5/8
- ✅ 中文Prompt支持: 理解中文提示词,无需翻译成英文
- ✅ API简单: RESTful API调用方便,文档清晰
- ✅ 速度快: 平均生成时间15-20秒,支持异步调用
- ✅ 国内访问: 服务器在国内,网络延迟低
- ✅ 免费额度: 新用户赠送免费额度,方便测试
技术优势
- Flux模型: 基于扩散模型,生成质量高
- LoRA支持: 未来可训练专属角色LoRA,提升一致性
- 批量并发: 支持批量请求,适合异步并行生成
实际测试表现
- 图片质量:优秀
- 风格还原度:90%
- 生成成功率:98%
- 平均生成时间:18秒
3.3 为什么不选择其他模型?
为什么不选择GPT-4 + DALL-E?
- ❌ 成本过高:是国产模型的20-30倍
- ❌ 需要代理:国内访问不稳定,影响用户体验
- ❌ API配额限制:免费额度有限,商业化成本高
为什么不选择Midjourney?
- ❌ 无API接口:需要通过Discord Bot调用,不适合自动化
- ❌ 订阅制收费:$30/月起,无法按量计费
- ❌ 角色一致性差:无法保证同一角色外观统一
为什么不选择Stable Diffusion自部署?
- ❌ 硬件成本高:需要高端GPU(RTX 4090或更高),单卡成本1.5万+
- ❌ 运维成本高:需要专人维护,学习成本高
- ❌ 扩展性差:并发能力受限于GPU数量
3.4 模型切换策略
系统采用策略模式设计,支持灵活切换AIGC服务商:
public interface AigcService {
String generateImage(String prompt);
}
@Service("siliconflowService")
public class SiliconFlowServiceImpl implements AigcService {
// 硅基流动实现
}
@Service("wanxService")
public class WanxServiceImpl implements AigcService {
// 通义万相实现
}
// 配置文件切换
aigc:
provider: siliconflow # 可切换为:wanx, mock
配置说明
- 开发环境:使用
mock模式,返回测试图片,无API成本 - 生产环境:使用`sil
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR

