SkillAgentSearch skills...

Mq AI Novel2Comic

mq-ai-Novel2Comic 项目是基于人工智能技术的小说转漫画自动化工具,核心目标是打破小说文本与漫画图像的创作壁垒,为用户提供 “文本输入→漫画输出” 的低成本、高效率可视化解决方案,降低非专业创作者的漫画制作门槛。

Install / Use

npx skills add lmqvq/mq-ai-Novel2Comic

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Supported Platforms

Universal

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站视频

Novel2Comic 演示视频

📺 视频展示了从小说上传、角色提取、分镜生成到漫画预览的完整流程。


🎯 议题一问题回答

1. 目标用户与痛点分析

1.1 目标用户类型

本产品面向三类核心用户群体:

用户群体1:网文作者/编剧 🎭

用户画像

  • 年龄: 20-35岁
  • 职业: 网络作家、自由编剧、内容创作者
  • 技术能力: 低,不会画画,缺乏设计技能
  • 付费意愿: 高(¥50-200/月)

核心痛点

  1. 宣传物料制作难: 想为自己的小说制作宣传物料,但缺乏绘画能力
  2. 外包成本高: 外包漫画制作动辄数千元,对于新人作者负担太重
  3. 验证周期长: 无法快速验证故事的视觉呈现效果,影响创作方向调整

用户故事

作为一名网络小说作者
我想要将我的小说章节转换为漫画分镜
以便在发布新章节时配上漫画宣传图
这样可以提高读者的点击率和订阅转化率

验收标准:
- 可以上传3000字的小说文本
- 系统自动提取主要角色和场景
- 生成6-10张风格统一的漫画分镜
- 角色在不同分镜中外观保持一致
- 总耗时不超过3分钟
用户群体2:漫画爱好者/二创作者 🎨

用户画像

  • 年龄: 18-30岁
  • 职业: 学生、职场新人、动漫爱好者
  • 技术能力: 低,有创作热情但不会画画
  • 付费意愿: 中(¥20-50/月)

核心痛点

  1. 同人创作门槛高: 喜欢某部小说但没有官方漫画版,想做同人创作但不会画画
  2. 角色可视化需求: 想看到自己喜欢的角色可视化形象,但只有文字描述
  3. 分享表达欲望: 想在B站/微博分享自己的创作,获得社区认可

用户故事

作为一名漫画爱好者
我想要看到我喜欢的网文小说的可视化呈现
以便更沉浸地理解故事情节
这样我可以分享到B站/微博获得其他粉丝的认可

验收标准:
- 可以输入小说文本或提供小说章节链接
- 可以选择喜欢的漫画风格(日漫/国漫/写实)
- 生成的漫画图片可以下载
- 可以一键分享到社交平台
用户群体3:自媒体内容创作者 📱

用户画像

  • 年龄: 25-40岁
  • 职业: 公众号运营、短视频创作者、知识博主
  • 技术能力: 中,熟悉内容运营,需要高效工具
  • 付费意愿: 高(¥100-500/月)

核心痛点

  1. 素材需求量大: 需要大量视觉素材配合内容输出,传统方式效率低
  2. 版权问题困扰: 网络图片存在版权风险,原创成本高
  3. 制作成本高: 外包设计费用高,自己制作耗时长

用户故事

作为一名公众号运营者
我想要为我的故事类文章快速配图
以便提升文章的视觉吸引力
这样可以提高文章的打开率和分享率

验收标准:
- 可以批量上传多个段落
- 每个段落生成1-2张配图
- 图片风格统一,符合文章调性
- 支持批量下载和水印添加

1.2 用户痛点总结

| 维度 | 群体1:网文作者 | 群体2:漫画爱好者 | 群体3:自媒体创作者 | |-----|---------------|-----------------|-------------------| | 核心诉求 | 宣传推广 | 娱乐消费 | 内容生产 | | 主要痛点 | 制作成本高、周期长 | 创作门槛高 | 素材版权问题 | | 付费意愿 | 高(¥50-200/月) | 中(¥20-50/月) | 高(¥100-500/月) | | 使用频次 | 中(周更) | 高(日更) | 高(日更) | | 质量要求 | 高 | 中 | 中高 |


2. 实现挑战与应对策略

挑战1:角色外观一致性 🎭

问题描述 传统AI绘画工具每次生成的角色外观都不同,同一个角色在不同分镜中可能发色、服装完全不同,导致无法形成连贯的漫画。这是小说转漫画最核心的技术挑战。

应对策略 采用向量检索(RAG)+ 角色档案库技术

技术实现

  1. 首次提取: LLM从小说文本中提取角色的详细特征描述(外貌、服装、气质)
  2. 向量化存储: 将角色描述通过Embedding模型向量化,存入向量数据库(使用Spring AI的VectorStore)
  3. 一致性检索: 每次生成图片时,通过向量检索召回该角色的标准描述(Top-1召回)
  4. 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分镜脚本生成 + 规则引擎验证

技术实现

  1. 情节分析: LLM识别对话、动作、环境描写
  2. 镜头语言选择:
    • 对话场景 → 中景/特写
    • 动作场景 → 全景/广角
    • 情绪高潮 → 特写/仰视/俯视
  3. 规则验证:
    • 单页不超过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限流
  • 内存溢出

应对策略 采用任务队列 + 限流 + 降级策略

技术实现

  1. 线程池配置: 核心线程数 = CPU核心数,最大线程数 = CPU核心数 × 2
  2. API限流: 全局限流100 QPS,单用户限流10次/分钟
  3. 降级策略: API失败后降级到缓存结果,缓存未命中则返回默认图片
  4. 任务队列: 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

选择理由

  1. 中文优化: 对中文小说理解最好,训练数据包含大量中文文学作品
  2. 成本优势: 是GPT-4的1/24,性价比最高
  3. 网络直达: 无需代理,开发调试方便,国内访问速度快
  4. Spring AI支持: 可直接使用Spring AI的统一API,代码简洁
  5. 免费额度: 新用户有免费试用额度,降低试用成本
  6. API稳定: 智谱AI是清华系公司,技术实力强,API稳定可靠
  7. 长文本支持: 支持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模型

选择理由

  1. 质量顶级: Flux模型是当前开源最强的文生图模型,质量接近Midjourney
  2. 漫画风格丰富: 支持日漫、国漫、写实等多种风格,可通过Prompt控制
  3. 成本最低: ¥0.05/张,是DALL-E的1/8,是通义万相的5/8
  4. 中文Prompt支持: 理解中文提示词,无需翻译成英文
  5. API简单: RESTful API调用方便,文档清晰
  6. 速度快: 平均生成时间15-20秒,支持异步调用
  7. 国内访问: 服务器在国内,网络延迟低
  8. 免费额度: 新用户赠送免费额度,方便测试

技术优势

  • 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

View on GitHub
GitHub Stars41
CategoryDevelopment
Updated6d ago
Forks11

Languages

Java

Security Score

75/100

Audited on Aug 1, 2026

No findings