这是一个基于AI的小说转视频自动化生成系统,集成了多种AI工具(TTS、图像生成等),能够将小说文本转换为带有音频和图像的视频内容。
- MCP服务器 (
pkg/mcp) - 提供标准化工具接口 - Web服务器 (
cmd/web_server) - 提供用户界面 - 工作流处理器 (
pkg/workflow) - 协调各组件工作 - 工具适配器 (
pkg/tools) - 封装具体AI服务调用
novel-video-workflow/
├── cmd/ # 命令行工具入口
│ ├── full_workflow/ # 完整工作流执行器
│ ├── ollama_mcp_bridge/ # Ollama MCP桥接器
│ └── web_server/ # Web服务器
├── pkg/ # 核心包
│ ├── mcp/ # MCP协议实现
│ ├── tools/ # 各类AI工具适配器
│ │ ├── drawthings/ # 图像生成工具
│ │ ├── indextts2/ # TTS语音合成
│ │ └── aegisub/ # 字幕处理
│ ├── workflow/ # 工作流处理器
│ └── utils/ # 工具函数
├── assets/ # 静态资源
│ └── ref_audio/ # 参考音频
├── input/ # 输入小说目录
├── output/ # 输出目录
├── config.yaml # 系统配置
└── main.go # 主程序入口
main.go- 系统主入口,支持多种运行模式:mcp: 启动MCP服务器供AI代理调用web: 启动Web界面供用户操作batch: 批量处理模式- 默认: 同时启动MCP和Web服务
server.go- MCP协议服务器核心实现handler.go- 工具调用处理器,包含所有可用工具的实现adapter.go- MCP协议适配器
client.go- Drawthings API客户端ollama_client.go- Ollama API客户端,用于智能提示词生成chapter_image_generator.go- 章节图像生成器,将文本转换为图像
client.go- IndexTTS2 API客户端,用于语音合成
aegisub_generator.go- Aegisub字幕生成器quick_audio_gen.sh- 快速音频生成脚本
processor.go- 核心工作流处理器,协调各组件执行
web_server.go- Web界面实现,包含:- 实时日志展示
- 工具调用界面
- 文件上传功能
- WebSocket实时通信
config.yaml- 系统配置,包含API端点、模型设置等
assets/ref_audio/- 参考音频文件,用于TTS克隆声音input/- 小说输入目录output/- 生成结果输出目录
generate_indextts2_audio- 生成TTS音频generate_subtitles_from_indextts2- 生成字幕file_split_novel_into_chapters- 分割小说章节generate_image_from_text- 文本转图像generate_image_from_image- 图像转图像generate_images_from_chapter- 章节转图像generate_images_from_chapter_with_ai_prompt- AI智能提示词图像生成
go run main.go mcp启动MCP服务器,供AI代理调用工具。
go run main.go web启动Web界面,地址:http://localhost:8080
go run main.go batch执行完整批处理工作流。
go run main.go同时启动MCP和Web服务。
- 安装Go 1.25+
- 安装Ollama并下载模型
- 安装Drawthings
- 安装IndexTTS2服务
-
准备参考音频
- 将参考音频文件放入
assets/ref_audio/目录 - 推荐使用高质量人声音频
- 将参考音频文件放入
-
配置系统
- 修改
config.yaml中的API端点和参数
- 修改
-
启动系统
go run main.go
-
使用Web界面
- 访问 http://localhost:8080
- 上传小说文件夹或使用单个工具
-
使用MCP服务
- AI代理可通过MCP协议调用各种工具
- 输入 - 提供小说文本
- 预处理 - 分割章节、提取关键信息
- 音频生成 - 使用TTS生成语音
- 图像生成 - 使用AI生成匹配图像
- 后期处理 - 生成字幕、合成视频
- 输出 - 生成最终视频内容
- 克隆仓库
- 安装依赖:
go mod tidy - 启动服务:
go run main.go
- Web服务器:http://localhost:8080
- MCP服务器:stdio协议(通过MCP客户端调用)
- Ollama服务:http://localhost:11434
- Drawthings服务:http://localhost:7861
- IndexTTS2:http://localhost:7860
- 在
pkg/mcp/handler.go中添加工具处理函数 - 注册工具到MCP服务器
- 如需要,更新Web界面以支持新工具
- 单元测试:
go test ./... - 集成测试:使用Web界面进行端到端测试
- 工具测试:直接调用MCP工具
- 使用zap日志库
- 支持结构化日志
- Web界面实时显示日志
- 确保所有依赖服务正常运行
- 配置文件路径使用相对路径以提高移植性
- 音频和图像生成需要较长时间,请耐心等待
- 大文件处理时注意内存使用情况