Skip to content

Bobchasm/MM_StoryAgent

Repository files navigation

MM-StoryAgent 视频生成系统

基于多智能体范式的沉浸式叙事视频生成框架

简体中文 | English

Python PyTorch License


项目简介

MM-StoryAgent 是一个创新的多模态视频生成系统,通过多智能体协作实现从文本到视频的端到端生成。系统整合了大语言模型(LLM)和多种专家工具,能够自动生成包含图像、语音、字幕的高质量叙事视频。

核心特性

  • 多模态协同:整合文本、图像、语音等多种模态,实现沉浸式视频生成
  • 智能代理系统:采用多智能体架构,各模态独立处理并协同工作
  • 灵活可扩展:支持自定义代理工具,可根据需求替换或扩展功能模块
  • 高质量故事:基于多阶段流水线生成结构完整、内容丰富的故事
  • 场景丰富:支持童话故事、科普内容、产品教程等24种组合场景
  • API 驱动:使用阿里云通义万相等 API 服务,无需本地 GPU

应用场景

  • 儿童故事绘本视频生成
  • 教育科普内容制作
  • 产品演示视频创作
  • 长文本可视化呈现
  • 创意视频原型设计
  • ……

核心模块

模态代理 (Modality Agents)

模块 功能 技术栈
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

工具模块 (Utils)

模块 功能 说明
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)

安装步骤

1. 克隆项目

git clone https://github.com/Bobchasm/MM_StoryAgent.git
cd MM_StoryAgent

2. 安装 Python 依赖

# 安装基础依赖
pip install -r requirements.txt

# 安装项目包
pip install -e .

依赖说明

  • torch, transformers - 深度学习框架
  • dashscope - 阿里云通义 API
  • moviepy - 视频处理
  • edge-tts - 语音合成
  • langchain - 长文本处理
  • pandas, matplotlib - 数据分析与可视化

ImageMagick安装说明

  • 需要ImageMagick来渲染字幕文字

  • 下载链接:https://imagemagick.org/script/download.php#windows

  • 选择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
  • 重启终端

3. 配置环境变量

创建 .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

4. 获取 API 密钥

阿里云 DashScope

  1. 访问 DashScope 控制台
  2. 创建 API Key 获取 DASHSCOPE_API_KEY

阿里云 AccessKey

  1. 访问 阿里云 RAM 控制台
  2. 创建 AccessKey 获取 ALIYUN_ACCESS_KEY_IDALIYUN_ACCESS_KEY_SECRET

阿里云智能语音

  1. 访问 智能语音交互控制台
  2. 创建应用获取 ALIYUN_APP_KEY

百度 AI(可选)

  1. 访问 百度 AI 开放平台
  2. 创建应用获取 API Key 和 Secret Key

启动 Web 界面

项目提供可视化 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                 # 英文说明

常见问题

Q1: 安装依赖时出错

A:

  • 确保 Python 版本 >= 3.8
  • 使用国内镜像加速:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
  • Windows 用户可能需要安装 Visual Studio Build Tools

Q2: API 调用失败

A:

  • 检查环境变量是否正确设置
  • 验证 API Key 是否有效
  • 检查网络连接,确保能访问阿里云服务
  • 查看 API 配额是否充足

Q3: 视频生成失败

A:

  • 检查 FFmpeg 是否正确安装
  • 确保字体文件路径正确(Windows: C:/Windows/Fonts/msyh.ttc
  • 查看日志中的具体错误信息

Q4: 内存不足

A:

  • 使用 API 模式而非本地模型
  • 减少 num_outline 数量
  • 降低图像分辨率(修改 width/height)

Q5: SSL 证书错误

A: 项目已配置跳过 SSL 验证(仅用于开发环境)。如需在生产环境使用,请正确配置证书。

Q6: 生成速度慢

A:

  • 使用 API 模式(比本地模型快)
  • 减少故事页数
  • 检查网络连接速度
  • 考虑使用代理加速国际服务访问

文档

更多详细文档请参考 documents/ 目录:

贡献

欢迎贡献代码、报告问题或提出建议!

许可证

本项目采用 ISC 许可证。详见 LICENSE 文件。

联系方式

如有问题或建议,请通过以下方式联系:


如果这个项目对你有帮助,请给我们一个 ⭐ Star!

Made with ❤️ by MM-StoryAgent Team

About

一个基于大模型的视频生成系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors