MM-StoryAgent 是一个创新的多模态视频生成系统,通过多智能体协作实现从文本到视频的端到端生成。系统整合了大语言模型(LLM)和多种专家工具,能够自动生成包含图像、语音、字幕的高质量叙事视频。
- 多模态协同:整合文本、图像、语音等多种模态,实现沉浸式视频生成
- 智能代理系统:采用多智能体架构,各模态独立处理并协同工作
- 灵活可扩展:支持自定义代理工具,可根据需求替换或扩展功能模块
- 高质量故事:基于多阶段流水线生成结构完整、内容丰富的故事
- 场景丰富:支持童话故事、科普内容、产品教程等24种组合场景
- API 驱动:使用阿里云通义万相等 API 服务,无需本地 GPU
- 儿童故事绘本视频生成
- 教育科普内容制作
- 产品演示视频创作
- 长文本可视化呈现
- 创意视频原型设计
- ……
| 模块 | 功能 | 技术栈 |
|---|---|---|
| Story Agent | 故事生成、大纲规划、多轮对话优化 | LangChain, 通义千问 API |
| Image Agent | 图像生成、风格控制、一致性保持 | 通义万相 API, Stable Diffusion |
| Speech Agent | 语音合成、多语言支持、情感表达 | Edge-TTS, 阿里云语音 |
| Sound Agent | 音效生成、场景音效匹配 | AudioLDM2, Freesound API, Pixabay Audio |
| Music Agent | 背景音乐生成 | MusicGen |
| Video Generation Agent | 图生视频、动态效果生成 | 即梦 API |
| Data Analysis Agent | 数据处理、图表生成、可视化 | Pandas, Matplotlib, Seaborn |
| Video Composer | 视频合成、字幕叠加、转场效果 | MoviePy, OpenCV |
| 模块 | 功能 | 说明 |
|---|---|---|
| Sentiment Analyzer | 情感分析、情绪识别 | 百度 AI API |
| Keyword Extractor | 关键词提取、主题分析 | Spacy, NER |
| Document Processor | 长文本处理、文档解析 | PyPDF2, python-docx, ebooklib |
| Prompt Utils | 提示词管理、模板生成 | 支持中英文 |
| LLM | 大语言模型调用封装 | 通义千问 API |
| 模块 | 功能 | 技术栈 |
|---|---|---|
| Web UI | 可视化交互界面、分镜编辑 | Vue.js, Node.js |
- 操作系统:Windows 10/11, Linux, macOS
- Python 版本:3.8 或更高
- 内存:至少 8GB RAM
- 网络:需要稳定的互联网连接(访问阿里云 API)
- GPU:可选(使用 API 模式无需 GPU)
git clone https://github.com/Bobchasm/MM_StoryAgent.git
cd MM_StoryAgent# 安装基础依赖
pip install -r requirements.txt
# 安装项目包
pip install -e .依赖说明:
torch,transformers- 深度学习框架dashscope- 阿里云通义 APImoviepy- 视频处理edge-tts- 语音合成langchain- 长文本处理pandas,matplotlib- 数据分析与可视化
ImageMagick安装说明:
-
需要ImageMagick来渲染字幕文字
-
选择ImageMagick-7.x.x-Q16-HDRI-x64-dll.exe
-
安装时勾选:Install legacy utilities
-
改一个地方的代码:
-
修改文件: mm_story_agent/video_compose_agent.py开头的位置,改为配置ImageMagick路径:
IMAGEMAGICK_BINARY = r"E:\444SoftWare\ImageMagic251008\ImageMagick-7.1.2-Q16-HDRI\magick.exe" os.environ['IMAGEMAGICK_BINARY'] = IMAGEMAGICK_BINARY
-
重启终端
创建 .env 文件或设置系统环境变量:
Windows (PowerShell):
# 必需的 API 密钥
$env:DASHSCOPE_API_KEY="your-dashscope-api-key"
$env:ALIYUN_APP_KEY="your-aliyun-app-key"
$env:ALIYUN_ACCESS_KEY_ID="your-access-key-id"
$env:ALIYUN_ACCESS_KEY_SECRET="your-access-key-secret"
# 可选的百度 API(用于情感分析)
$env:BAIDU_API_KEY="your-baidu-api-key"
$env:BAIDU_SECRET_KEY="your-baidu-secret-key"Linux/macOS (Bash):
export DASHSCOPE_API_KEY="your-dashscope-api-key"
export ALIYUN_APP_KEY="your-aliyun-app-key"
export ALIYUN_ACCESS_KEY_ID="your-access-key-id"
export ALIYUN_ACCESS_KEY_SECRET="your-access-key-secret"或创建 .env 文件:
DASHSCOPE_API_KEY=your-dashscope-api-key
ALIYUN_APP_KEY=your-aliyun-app-key
ALIYUN_ACCESS_KEY_ID=your-access-key-id
ALIYUN_ACCESS_KEY_SECRET=your-access-key-secret
BAIDU_API_KEY=your-baidu-api-key
BAIDU_SECRET_KEY=your-baidu-secret-key阿里云 DashScope:
- 访问 DashScope 控制台
- 创建 API Key 获取
DASHSCOPE_API_KEY
阿里云 AccessKey:
- 访问 阿里云 RAM 控制台
- 创建 AccessKey 获取
ALIYUN_ACCESS_KEY_ID和ALIYUN_ACCESS_KEY_SECRET
阿里云智能语音:
- 访问 智能语音交互控制台
- 创建应用获取
ALIYUN_APP_KEY
百度 AI(可选):
- 访问 百度 AI 开放平台
- 创建应用获取 API Key 和 Secret Key
项目提供可视化 Web 界面,支持图形化操作:
# 配置环境变量,每次打开终端时运行一次
./scripts/setup_env.ps1
# 安装前端依赖
cd web_ui/client
npm install
# 启动前端(开发模式)
npm run dev
# 安装后端依赖
cd ../server
npm install
# 启动后端服务
node index.js访问 http://localhost:5173 使用 Web 界面。
MM_StoryAgent/
├── mm_story_agent/ # 核心代码目录
│ ├── modality_agents/ # 各模态智能体
│ │ ├── story_agent.py # 故事生成
│ │ ├── image_agent.py # 图像生成
│ │ ├── speech_agent.py # 语音合成
│ │ ├── sound_agent.py # 音效生成
│ │ ├── music_agent.py # 音乐生成
│ │ ├── data_analysis_agent.py # 数据分析
│ │ ├── video_generation_agent.py # 视频生成
│ │ ├── freesound_agent.py # Freesound 音效
│ │ ├── pixabay_audio_agent.py # Pixabay 音频
│ │ ├── llm.py # LLM 封装
│ │ └── __init__.py
│ ├── utils/ # 工具函数
│ │ ├── keyword_extractor.py # 关键词提取
│ │ ├── sentiment_analyzer.py # 情感分析
│ │ ├── document_processor.py # 文档处理
│ │ ├── prompt_utils.py # 提示词工具
│ │ ├── import_utils.py # 导入工具
│ │ └── llm_output_check.py # LLM 输出检查
│ ├── mm_story_agent.py # 主控制器
│ ├── video_compose_agent.py # 视频合成
│ ├── base.py # 基础工具注册
│ ├── prompts_zh.py # 中文提示词
│ ├── prompts_en.py # 英文提示词
│ └── env_loader.py # 环境变量加载
│
├── configs/ # 配置文件
│
├── web_ui/ # Web 界面
│ ├── client/ # 前端 (Vue.js)
│ └── server/ # 后端 (Node.js)
├── scripts/ # 辅助脚本
├── documents/ # 文档目录
├── story_eval/ # 评估数据
├── tests/ # 测试文件
├── run.py # 主入口
├── compose_final_video.py # 合成视频
├── requirements.txt # Python 依赖
├── package.json # Node.js 依赖
├── README.md # 本文件
└── README_EN.md # 英文说明
A:
- 确保 Python 版本 >= 3.8
- 使用国内镜像加速:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt - Windows 用户可能需要安装 Visual Studio Build Tools
A:
- 检查环境变量是否正确设置
- 验证 API Key 是否有效
- 检查网络连接,确保能访问阿里云服务
- 查看 API 配额是否充足
A:
- 检查 FFmpeg 是否正确安装
- 确保字体文件路径正确(Windows:
C:/Windows/Fonts/msyh.ttc) - 查看日志中的具体错误信息
A:
- 使用 API 模式而非本地模型
- 减少
num_outline数量 - 降低图像分辨率(修改 width/height)
A: 项目已配置跳过 SSL 验证(仅用于开发环境)。如需在生产环境使用,请正确配置证书。
A:
- 使用 API 模式(比本地模型快)
- 减少故事页数
- 检查网络连接速度
- 考虑使用代理加速国际服务访问
更多详细文档请参考 documents/ 目录:
欢迎贡献代码、报告问题或提出建议!
本项目采用 ISC 许可证。详见 LICENSE 文件。
如有问题或建议,请通过以下方式联系:
- Tel: 17850362981
- zengyicydd@tju.edu.cn
- gaocan@tju.edu.cn
- yxy641121@gmail.com
- daimingjing142857@tju.edu.cn
- jsyy@tju.edu.cn
如果这个项目对你有帮助,请给我们一个 ⭐ Star!
Made with ❤️ by MM-StoryAgent Team