❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦
🎬 "家长解放双手!开源AI自动生成双语故事书:角色永不穿帮+专业配音"
大家好,我是蚝油菜花。你是否也经历过这些崩溃瞬间——
- 👉 深夜赶工做幼儿园手绘故事书,画到凌晨3点熊猫眼+2
- 👉 某宝找插画师反复修改角色,花费上千元仍出现「柯南脸变形记」
- 👉 想给孩子双语启蒙,自己英语发音却被嘲笑「工地散装」...
今天要揭秘上海交大与阿里联合研发的 MM-StoryAgent ,这个开源框架正在颠覆儿童内容创作!
它能用多智能体协作:
- ✅ AI编剧生成教育性故事+自动分镜
- ✅ 角色一致性引擎杜绝「孙悟空秒变猪八戒」
- ✅ 好莱坞级音效自动配旁白+背景音乐
已有200+国际学校用它制作课件,接下来手把手教你用Stable Diffusion+GPT-4打造专属故事王国!
🚀 快速阅读
MM-StoryAgent 是一个开源的多模态、多智能体框架,用于生成沉浸式的有声故事绘本视频。
- 核心功能:支持高质量故事生成、多模态内容生成、角色一致性、模态对齐和灵活的模块化设计。
- 技术原理:基于多智能体协作架构和多模态生成技术,结合大型语言模型、扩散模型和音频生成模型,实现文本、图像、音频的自动生成与对齐。
MM-StoryAgent 是什么
MM-StoryAgent 是上海交通大学X-LANCE实验室和阿里巴巴集团联合推出的开源多模态、多智能体框架,用于生成沉浸式的有声故事绘本视频。该框架结合了大型语言模型(LLMs)和多种模态的生成工具(如文本、图像、音频),通过多阶段写作流程和模态特定的提示修订机制,提升故事的吸引力和沉浸感。
MM-StoryAgent 支持灵活的模块化设计,开发者可以根据需求替换不同的生成模型和API。该框架在图像、语音、音乐和音效之间实现了更好的对齐效果,为儿童故事书的自动化创作提供了高效、灵活且富有表现力的解决方案。
MM-StoryAgent 的主要功能
- 高质量故事生成:基于多智能体协作和多阶段写作流程,生成具有吸引力、教育性和情感共鸣的故事内容。
- 多模态内容生成:结合文本、图像、语音、音乐和音效等多种模态,为用户带来丰富的沉浸式体验。
- 角色一致性:在图像生成中,基于角色提取和提示修订,确保故事中的角色在视觉上保持一致。
- 模态对齐:基于提示修订和对比学习模型,优化文本与图像、音频之间的对齐效果,提升整体故事的连贯性。
- 灵活的模块化设计:支持灵活替换生成模块(如不同的文本生成模型、图像生成模型等),便于开发者根据需求进行定制和优化。
MM-StoryAgent 的技术原理
- 多智能体协作架构:模拟业余作者与专家之间的对话,生成故事大纲和章节内容。对话过程模拟人类的头脑风暴,为故事提供更丰富的创意和吸引力。针对图像、音频等不同模态的需求,将文本故事转化为适合生成模型的提示内容。基于“修订者-审核者”的多轮协作,优化提示的质量。
- 多模态生成技术:
- 文本生成:基于大型语言模型(LLMs)生成故事文本。
- 图像生成:用扩散模型(如 StoryDiffusion)生成与故事内容一致的图像,并通过角色提取确保角色在多帧图像中保持一致。
- 音频生成:基于文本到语音(TTS)模型生成旁白,用 AudioLDM2 或 MusicGen 等模型生成音效和背景音乐。
- 视频合成:将生成的图像、音频和文本内容合成,形成完整的有声故事视频。
- 模态对齐优化:用对比学习模型(如 CLIP、CLAP)评估生成内容与文本之间的对齐程度,基于提示修订机制优化生成效果。
- 模块化设计:框架支持灵活替换不同的生成模型和API,开发者根据需求选择更先进的模型提升生成质量。
如何运行 MM-StoryAgent
1. 安装依赖
首先,安装所需的依赖项并将此仓库安装为包:
pip install -r requirements.txt pip install -e .
AI 代码解读
2. 快速开始
MM-StoryAgent 可以通过配置文件调用:
python run.py -c configs/mm_story_agent.yaml
AI 代码解读
3. 自定义代理
自定义新代理可以参考 music_agent.py。代理类应实现 __init__
和 call
方法,如下所示:
from typing import Dict
from mm_story_agent.base import register_tool
@register_tool("my_speech_agent")
class MySpeechAgent:
def __init__(self, cfg: Dict):
self.attr1 = cfg.attr1
self.attr2 = cfg.attr2
...
def call(self, params: Dict):
voice = params["voice"]
speed = params["speed"]
...
AI 代码解读
然后,通过修改配置文件调用代理:
speech_generation:
tool: my_speech_agent
cfg:
attr1: val1
attr2: val2
params:
voice: en_female
speed: 1.0
AI 代码解读
资源
- GitHub 仓库:https://github.com/X-PLUG/MM_StoryAgent
- 在线体验Demo:https://huggingface.co/spaces/wsntxxn/MM-StoryAgent
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦