freshcrate
Skin:/
Home > MCP Servers > story-shot-agent

story-shot-agent

剧本分镜智能体(PenShot):剧本→分镜→片段→prompt | 基于 LangGraph+LLM,自动解析任意格式剧本,生成 Sora/Veo/Runway 等模型可用的连贯text-to-video提示词。保持角色/剧情跨片段一致,支持 MCP/REST API/函数调用 | Python库 + A2A集成。(LLM-powered screenplay-to-video-prompt a

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

剧本分镜智能体(PenShot):剧本→分镜→片段→prompt | 基于 LangGraph+LLM,自动解析任意格式剧本,生成 Sora/Veo/Runway 等模型可用的连贯text-to-video提示词。保持角色/剧情跨片段一致,支持 MCP/REST API/函数调用 | Python库 + A2A集成。(LLM-powered screenplay-to-video-prompt agent. Break scripts into Sora/Veo-ready shots with character consistency. LangGraph + Chroma + MCP)

README

剧本分镜智能体 (Penshot)

一个基于多智能体协作的剧本分镜系统,能够将多种格式的剧本拆分为符合 AI 文生视频时长的脚本单元,输出高质量分镜片段描述,并保证叙事连续性。系统基于 LangChain + LangGraph 构建,通过 LLM 将任意格式剧本解析转换为符合主流模型的“Text to Video”提示词片段,支持任务池优先级排队、多层级记忆管理与 Chroma 向量检索。

中文 | English | 文档 | PyPI

License: MIT Python 3.10+ LangGraph PyPI Downloads GitHub stars


核心功能

特性 说明
智能剧本解析 自动识别场景、对话和动作指令,理解故事结构,支持长文本分段处理
精准时序规划 按镜头粒度智能切分内容,分配合理时长,严格适配 AI 视频生成模型的时长限制
连续性守护 基于任务池优先级排队、多层级记忆(短期/中期/长期)与 Chroma 向量检索,确保相邻分镜间角色状态、场景和情节高度一致
高质量提示词输出 生成详细的中英双语画面描述、负面提示词及音频提示词,开箱即用
多模型兼容 支持 OpenAI、Qwen、DeepSeek、Ollama 等主流 LLM 提供商,可插拔切换
多协议集成 提供 Python SDK、REST API、LangGraph 节点、A2A 协作协议与 MCP 标准接口
健壮性与可追溯 内置自动重试、错误降级机制,每个分镜片段均可双向追溯至原剧本位置

系统架构与创作流程

flowchart TD
    subgraph Input [输入层]
        A1[客户端 / 上游智能体] --> A2[REST API / MCP / A2A]
        A2 --> A3[任务管理器]
    end

    subgraph Core [LangGraph 多智能体核心工作流]
        direction TB
        
        P1[剧本解析智能体] --> P2[分镜生成智能体]
        P2 --> P3[视频分割智能体]
        P3 --> P4[提示词转换智能体]
        P4 --> P5[质量审计智能体]
        P5 --> P6[连续性守护智能体]
        P6 --> P7[辅助生成智能体<br/>三视图/背景图/关键帧]
        
        subgraph Control [控制节点]
            C1[循环检查] --> C2[错误处理]
            C2 --> C3[人工干预]
            C3 --> C4[结果生成]
        end
        
        P1 -.->|重试/修复| Control
        P2 -.->|重试/修复| Control
        P3 -.->|重试/修复| Control
        P4 -.->|重试/修复| Control
        P5 -.->|重试/修复| Control
        P6 -.->|重试/修复| Control
        Control -.->|路由决策| P1
    end

    subgraph Memory [记忆层]
        M1[(短期记忆)]
        M2[(中期记忆)]
        M3[(长期记忆)]
        M4[(向量数据库<br/>Chroma)]
        
        M1 <--> Core
        M2 <--> Core
        M3 <--> Core
        M4 <--> Core
    end

    subgraph Output [输出层]
        O1[Workflow Output Fixer<br/>片段序列修复] --> O2[结果格式化]
        O2 --> O3[JSON / SDK / MCP / A2A]
    end

    subgraph Downstream [下游渲染]
        D1[多模型适配器] --> D2[Sora/Veo/Runway/可灵/SVD]
        D2 --> D3[FFmpeg 合成]
        D3 --> D4[最终成片]
    end

    A3 --> P1
    P7 --> O1
    O3 --> D1
Loading

该系统为典型的自然语言处理(NLP)应用场景,通过多智能体协作与记忆机制实现端到端的分镜转码。详细架构设计、记忆池实现与一致性保障机制请参考:《剧本分镜智能体架构设计与实现》


快速开始

1. 环境准备

# 方式 A:直接安装 PyPI 包(推荐)
pip install penshot

# 方式 B:开发模式安装(源码)
git clone https://github.com/neopen/story-shot-agent.git
cd story-shot-agent
pip install -e .

2. 环境配置

cp .env.example .env

编辑 .env 文件,配置必要的 LLM 与 Embedding 参数:

########################## LLM 模型配置 #########################
PENSHOT_LLM__DEFAULT__BASE_URL=https://dashscope-intl.aliyuncs.com/api/v1
PENSHOT_LLM__DEFAULT__API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PENSHOT_LLM__DEFAULT__MODEL_NAME=qwen-plus
PENSHOT_LLM__DEFAULT__TIMEOUT=30

########################## 嵌入模型配置 #########################
PENSHOT_EMBED__DEFAULT__BASE_URL=https://dashscope-intl.aliyuncs.com/api/v1
PENSHOT_EMBED__DEFAULT__API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PENSHOT_EMBED__DEFAULT__MODEL_NAME=text-embedding-v4

########################## Redis 配置 ##########################
PENSHOT_REDIS_URL=redis://:123456@localhost:6379/0

3. 启动服务

python main.py

服务默认运行于 http://0.0.0.0:8000,提供完整的 REST API 接口。

4. API 调用示例

提交分镜任务:

curl -X POST 'http://localhost:8000/api/v1/storyboard' \
-H 'Content-Type: application/json' \
-d '{
  "script": "深夜11点,城市公寓客厅,窗外大雨滂沱。林然裹着旧羊毛毯蜷在沙发里,电视静音播放着黑白老电影..."
}'

查询任务状态:

curl 'http://localhost:8000/api/v1/status/{task_id}'

获取任务结果:

curl 'http://localhost:8000/api/v1/result/{task_id}'

多场景集成方式

1. Python SDK 调用

from penshot.api import create_penshot_agent

agent = create_penshot_agent(max_concurrent=5)

script = "早晨,一个女孩在咖啡馆读书,阳光透过窗户..."
task_id = agent.breakdown_script_async(
    script,
    callback=lambda r: print(f"任务 {r.task_id} 已完成")
)

status = agent.get_task_status(task_id)
result = await agent.wait_for_result_async(task_id)

完整示例:direct_usage.py

2. 嵌入 FastAPI Web 应用

可通过标准 HTTP 接口集成至现有业务系统:

from fastapi import FastAPI, HTTPException
from penshot.api import create_penshot_agent

app = FastAPI(title="Penshot API", version="0.1.0")
agent = create_penshot_agent(max_concurrent=5)

@app.post("/api/generate")
async def generate(script_text: str):
    task_id = agent.breakdown_script_async(script_text)
    return {"task_id": task_id, "status": "PENDING"}

完整示例:web_app.py

3. LangGraph 节点集成

支持作为独立 Node 接入 LangChain/LangGraph 工作流,实现端到端自动化流水线。 完整示例:langgraph_integration.py

4. A2A 协议协作

支持与上游剧本创作 Agent、下游文生视频/剪辑 Agent 进行上下文传递与任务编排。 完整示例:a2a_integration.py

5. MCP (Model Context Protocol) 支持

启动 MCP Server:

python -m penshot.mcp_server --max-concurrent 5 --queue-size 500

客户端调用工具 breakdown_script 与 get_task_result 即可无缝接入支持 MCP 的 IDE 或 Agent 框架。 完整示例:mcp_client.py


输出数据结构

系统返回标准化的 JSON 格式,包含视频提示词、负面提示词、时长估算、风格参数及配套的音频提示词:

{
  "fragments": [
    {
      "fragment_id": "frag_001",
      "prompt": "Cinematic wide shot: midnight 11 PM in a compact urban apartment living room...",
      "negative_prompt": "cartoon, anime, 3D render, bright lighting, text, watermark...",
      "duration": 4.2,
      "model": "runway_gen2",
      "style": "cinematic 35mm film, moody realism, shallow depth of field...",
      "audio_prompt": {
        "audio_id": "audio_001",
        "prompt": "Low-frequency rain ambience (intensity 0.95), distant muffled TV static...",
        "model_type": "AudioLDM_3",
        "audio_style": "cinematic"
      }
    }
  ]
}

系统说明与注意事项

类别 说明
网络依赖 需稳定访问外部 LLM API,建议配置代理或国内镜像源
长文本处理 超长剧本建议分段输入,系统已内置上下文记忆与 RAG 机制
生成时长 AI 视频模型输出时长可能存在 ±10% 偏差,属行业正常现象
多语言支持 当前针对中文剧本深度优化,其他语言效果持续迭代中
声音同步 当前提供音频提示词,口型同步与环境音融合需下游工具配合
错误处理 内置自动重试与降级机制,极端异常情况可能需人工介入

开发路线图

短期规划

  • 智能长镜头分割逻辑优化,保持动作连贯性
  • 角色服装、位置、道具的一致性校验器
  • 针对 Sora、Pika 等模型的提示词格式专项适配
  • 规则引擎与 LLM 混合处理架构
  • 完整英文剧本支持与节点失败智能降级
  • 片段置信度评分与调试模式(中间结果保存)

中期规划

  • 复杂镜头语言支持(推拉摇移跟)
  • 情感分析驱动视觉风格自动调整
  • 超长剧本分块处理 + 向量数据库上下文记忆
  • 多剧本批量队列处理与 Web 可视化界面
  • 角色/场景参考图接入与多格式导出(XML/EDL/JSON)

长期规划

  • 多模态输入(图+音+文混合)
  • 实时低分辨率预览与自动连续性修复
  • 专业剪辑软件插件(Premiere/FCP/DaVinci)
  • 多人协同、版本控制与从用户反馈中自动学习进化
  • 剧本-片段双向追溯、语义对齐度检测与多轮修正机制

终极目标

实现任意长度/语言/类型剧本的零信息损失视觉化,输出达到专业导演分镜水准的标准化工作流。系统具备风格可定制、结果可追溯、自动优化循环与跨模态高度一致性能力。


贡献指南

欢迎通过 Issue 或 Pull Request 参与项目共建:

  • 报告问题:请提供复现步骤、环境信息与错误日志
  • 功能建议:使用 Enhancement 标签
  • 代码优化:性能调优、架构重构或补充测试用例
  • 文档完善:翻译、示例补充或技术细节修正

开发环境快速搭建:

git clone https://github.com/neopen/story-shot-agent.git
cd story-shot-agent
pip install -e ".[dev]"
pytest tests/

许可证

本项目采用 MIT 开源协议,详见 LICENSE 文件。 Copyright (c) 2025 HiPeng


联系方式

感谢 LangChain、LangGraph、Chroma、Ollama 及开源社区的技术支持。如本项目对您的工作有帮助,欢迎 Star 关注与反馈。

Release History

VersionChangesUrgencyDate
v0.3.11## [0.3.11](https://github.com/neopen/story-shot-agent/compare/v0.3.10...v0.3.11) (2026-10-14) ### 🐛 Bug Fixes (问题修复) * 修复qwen模型依赖问题 ([#69](https://github.com/neopen/story-shot-agent/issues/69)) ([9225455](https://github.com/neopen/story-shot-agent/commit/922545582b0bcae936a0bd74e0566f5d23b5fb37))High10/14/2026
v0.3.10## [0.3.10](https://github.com/neopen/story-shot-agent/compare/v0.3.9...v0.3.10) (2026-10-13) ### ♻️ Code Refactoring (代码重构) * Docker 配置 ([#67](https://github.com/neopen/story-shot-agent/issues/67)) ([d00c0b0](https://github.com/neopen/story-shot-agent/commit/d00c0b0cc7841b7298bb36e98aeec20ae4c9b4e3))High10/13/2026
v0.3.8## [0.3.8](https://github.com/neopen/story-shot-agent/compare/v0.3.7...v0.3.8) (2026-09-19) ### 🐛 Bug Fixes (问题修复) * 修复并完善基于本地规则解析剧本,如果LLM异常将自动启用规则解析,但是效果将大打折扣 ([#60](https://github.com/neopen/story-shot-agent/issues/60)) ([f47d086](https://github.com/neopen/story-shot-agent/commit/f47d08650dc665760a18a7692fd77ba0330ff27a)) * 修复 Redis 连接及其相关配置适配 * 新增 LLM 的自动依赖检测 * 优化 Chroma 初始化,使用异步方式避免服务阻塞 ### 🔧 Other Changes (其他变更) * Delete .qoder directory ([50dff09](https://github.com/neHigh9/19/2026
v0.3.7## What's Changed - Switch Docker publish from GHCR to Docker Hub (#27) @neopen - Dev (#26) @neopen - Create auto-merge.yml (#24) @neopen - Refactor flake8 lint command in CI workflow (#21) @neopen - Update .flake8 (#20) @neopen - Update ci.yml (#19) @neopen - Update .flake8 configuration for line length and exclusions (#18) @neopen - Dev (#17) @neopen - Dev (#16) @neopen - 整理claude skill文档 (#13) @neopen - Update ci.yml (#14) @neopen ## 🧰 Maintenance & Docs - Dev (#32) @neopeHigh9/2/2026
v0.3.6- 完善客户端脚本 - 完整性修复 - 规范性优化 - 边缘检查 - 其他相关功能优化High7/23/2026
v0.3.5- 重构提示词的音频输出结构 - 修复质量审查智能体问题(LLM+规则),统一修复模型 - 修复各个智能体阶段的质量审查问题 - 其他已知问题优化High7/17/2026
main@2026-06-16Latest activity on main branchHigh6/16/2026
v0.2.4Latest release: v0.2.4High4/21/2026
main@2026-04-21Latest activity on main branchHigh4/21/2026
v0.2.3- langchain、LLM 及相关依赖版本升级,提高稳定性 - 优化工作流重试机制,避免无限循环 - 添加剧本ID,根据剧本分类记忆,节省token和内存 - 支持自定义视频风格参数 - 优化其他已知异常 - 解决一般标准性问题Medium4/6/2026
v0.2.2- 统一标准化客户端接口 - 优化工作流逻辑和基类接口 - 引入嵌入模型,支持长记忆 - 引入记忆分层架构的“记忆管理”,解决各个阶段涉及的一致性问题 - 优化状态管理机制 - 修复 MCP Server 相关问题,并优化 客户端示例 - 优化统一环境变量 - 细粒度任务池进度,实时跟踪流程进度 - 提供 HTTP 服务,支持命令启动 - 其他相关问题的优化Medium4/1/2026
v0.2.1- 增强质量审查智能体功能,修复 各个阶段 智能体的存在的问题 - 修复增强工作流逻辑和相关功能 - 修复 function_calls ,解决已知异常问题 - 添加连续性守护节点,完善其检测功能 - 修复任务池响应问题,并为缓存添加过期时间 - 统一输出数据模型(标准json) - 解决其他已知问题Medium3/29/2026
v0.2.0- 优化任务池:支持任务并发和等待,支持持久化和停止恢复 - 提示词优化:增加更多细节和统一标准 - 优化质量审查智能体,支持更细致的审查 - 新增 Function Call 接口、命令行工具 和 MCP Server,支持 Claude、Cursor 等 MCP 兼容智能体调用 - 优化拓展 REST API 接口,支持批量和同步提交 - 优化用法示例,支持更多方式使用案例 - 优化语言配置 - 解决合规性问题 - 解决其他异常问题 **包名存在问题,下一版本解决,统一使用 penshot 名,neoshot 将用于 AI Agent video系列项目中,敬请期待**Medium3/25/2026
v0.1.3-beta- 解析并添加音频提示词,与视频保持同步(台词、背景声、画外音等) - 优化提示词管理,解决片段衔接和切割丢失问题 - 解决动作、特写、道具等解析丢失问题 - 标准化全局上下文信息 - 参数校验和合规性优化 - 标准化API输出 - 优化其他已知问题 - 解决智能体安装集成调用异常问题Low3/6/2026
v0.1.2-alpha1. 优化视频分割功能 2. 完善质量审查,从多个方面检测和修复相关问题 3. 增强提示词管理,增加特写和细节描述,使得情感层次更加丰富 4. 解决其他已知缺陷 5. **包可能存在问题**,请安装最新版Low2/28/2026
v0.1.1-alpha.1一个基于LLM的多智能体协作系统,实现从原始文字剧本到AI视频生成指令的端到端自动化转换。 系统通过剧本解析智能体将非结构化剧本转化为结构化元素序列,镜头分割智能体将剧本元素映射为具体的镜头语言描述,视频切割智能体对长镜头进行智能分割(2-5秒),提示词转换智能体将镜头描述编译为适配多模型的AI视频生成提示词,质量审查智能体对片段时长、提示词质量、角色一致性、场景连贯性进行全面验证并生成改进报告。 整个流程基于LangGraph工作流引擎构建,支持智能决策、循环检测、错误重试与自动降级,可在无需人工干预的情况下完成从剧本输入到可执行AI视频指令集的完整转换链路。 ### 核心功能 1. **智能剧本解析** - 自动提取场景、角色、动作、对话,生成结构化剧本分析 2. **AI分镜生成** - 13种镜头类型分类,LLM驱动镜头拆分与描述生成 3. **视频片段分割** - 长镜头智能分割(5秒阈值),AI决策+规则分割双引擎 4. **提示词工程** - 自动转换Runway Gen2/Sora/Pika等模型提示词 5. **质量审查系统** - 时Low2/12/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

langroidHarness LLMs with Multi-Agent Programming0.69.14
aiA productive AI coworker that learns, self-improves, and ships work.main@2026-10-23
fim-oneLLM-powered Agent Runtime with Dynamic DAG Planning & Concurrent Executionmaster@2026-10-23
synapse-aiBuild AI agents that actually do things. Synapse is an open-source platform for creating, connecting, and orchestrating AI agents powered by any LLM — local or cloud.v1.9.2
ChatSpatial🧬 Analyze spatial transcriptomics data through natural language conversation. Stop writing code, start having conversations with your data. MCP server for Claude Code and Codex.v1.6.0

More in MCP Servers

litellmPython SDK, Proxy Server (AI Gateway) to call 100+ LLM APIs in OpenAI (or native) format, with cost tracking, guardrails, loadbalancing and logging. [Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropi
claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.
mcp-for-beginnersThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for
casdoorAn open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA,