SceneKraft MCP——文本→ 故事板→ 视频(测试版)
作者:snippetWizard
SceneKraft MCP将纯文本转换为视觉计划(故事板),并可选地转换为组装的垂直视频。它将管道作为Python模块和MCP工具公开,以便代理客户端可以对其进行编排。
- 使用LLM(OpenAI、Ollama或离线模拟)进行文本到场景分解。
- Pydantic支持的镜头、场景和故事板模型。
- 可选稳定扩散帧生成+MoviePy组装成垂直MP4。
- 基于文件的生成故事板存储。
- MCP服务器(可选),因此精通工具的LLM可以直接调用它。
此存储库是测试版本。更多功能正在开发中,包括云上传和跨平台社交调度。
什么是MCP?模型上下文协议是一种轻量级协议,允许LLM安全一致地与本地/远程工具通信。在这里,我们提供了一个简单的MCP服务器,它公开了一个“create_storyboard”工具。
为什么是这个项目?计划拍摄很耗时。这个想法来自于为独奏创作者提供一个零摩擦的循环:描述一个场景→ 制定一个结构化的拍摄计划→ (可选)生成视觉效果→ 制作一个视频草稿。这是一个用于脚本到屏幕实验的快速原型制作通道。
管道概述(文件和流)
- 输入(您的文本/脚本)
- 入口点: - examples/test_scene_local.py:1 --仅生成故事板。 - examples/script_to_video.py:1 --完整故事板→ 帧→ 视频演示。
- 解析脚本→ 场景
- scenecraft_mcp/engine/script_parser.py:1 - parse_script(script) --将整个文本视为一个场景的最小解析器(稍后可替换为真正的slugline解析器)。
- 平面射击(LLM)
- scenecraft_mcp/engine/shot_planner.py:1 - plan_shots(scene_text, scene_number, style_preset) → list[Shot] - _build_system_prompt(...), _build_user_prompt(...) 工艺提示指示。 - 用途 scenecraft_mcp/llm/factory.py:1 → get_llm_client() 选择提供商。 - 供应商(实施 LLMClient): - scenecraft_mcp/llm/base.py:1 --抽象接口(complete_json, complete_text). - scenecraft_mcp/llm/openai_client.py:1 --调用OpenAI Chat Completions并解析严格的JSON。 - scenecraft_mcp/llm/ollama_client.py:1 --致电当地Ollama /api/chat 并解析JSON。 - scenecraft_mcp/llm/mock_client.py:1 --本地演示的离线确定性模拟(默认为 .env). - 配置: - scenecraft_mcp/config.py:1 — LLMProvider enum(openai, ollama, mock)以及环境驱动的设置。
- 数据模型和存储
- scenecraft_mcp/models.py:1 --Pydantic模型: Shot, Scene, Storyboard,枚举(ShotType, CameraAngle等等)。 - scenecraft_mcp/storage/repository.py:1 --repo接口。 - scenecraft_mcp/storage/file_repository.py:1 --基于JSON的持久化 ~/.scenecraft_mcp/projects/. - scenecraft_mcp/utils/ids.py:1 — generate_project_id() 喜欢 proj_ab12cd34.
- 可选:帧生成(稳定扩散)
- scenecraft_mcp/video/framegen_sd.py:1 — SDFrameGenerator.generate_frame(...) - 加载稳定扩散管道(例如。, runwayml/stable-diffusion-v1-5)在CPU/GPU上。 - 每次拍摄产生风格化的垂直9:16 PNG。
- 可选:视频组装(MoviePy)
- scenecraft_mcp/video/assembler.py:1 — assemble_video(frames, output_path, fps=24) - 调整每个镜头的图像大小并将其连接成垂直MP4(需要ffmpeg)。
- MCP服务器(可选集成)
- scenecraft_mcp/mcp_server.py:1 — build_server() 带着一个 create_storyboard(script, title=None) 工具。 - 将故事板创建暴露给MCP兼容主机(例如Claude Desktop)一次 mcp 已安装。
安装
核心(故事板+MCP):
pip install -r requirements.txt可选(帧+视频):
- ffmpeg(MoviePy要求)
- Python包:
pip install moviepy diffusers
# Then install PyTorch appropriate for your system:
# CPU-only example:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu提示:对于NVIDIA GPU,请使用PyTorch官方网站获取正确的CUDA控制盘:https://pytorch.org/get-started/locally/
配置
复制 .env (已包含)并设置提供者:
# LLM Provider (openai / ollama / mock)
LLM_PROVIDER=mock
# OpenAI
OPENAI_API_KEY=sk-your-key
OPENAI_MODEL=gpt-4.1-mini
# Ollama
OLLAMA_MODEL=llama3
OLLAMA_BASE_URL=http://127.0.0.1:11434
# Performance
LOW_LATENCY_MODE=truemock完全离线运行,以进行可预测的本地演示。ollama需要ollama serve和一个拉模型一样llama3.openai需要有效的OPENAI_API_KEY.
快速入门
仅故事板(默认离线):
python examples/test_scene_local.py故事板→ 框架→ 视频(需要可选deps):
python examples/script_to_video.py输出:
- 故事板JSON: `~/.scenecraft_mcp/projects/
.json`
- 框架:
outputs/frames/*.png - 视频: `outputs/videos/
.mp4`
使用MCP服务器(可选)
pip install mcp
python -m scenecraft_mcp.mcp_server将此服务器连接到MCP兼容主机(例如,Claude Desktop)。工具 create_storyboard 接受 script 并返回 { project_id, scene_count, shot_count }.
这解决了什么
- 快速构思:将草稿描述转化为结构化的拍摄计划。
- 一致的视觉语言:拍摄类型、角度、持续时间作为数据捕获,而不是散文。
- 可扩展管道:在不改变流的情况下交换LLM、模型或帧生成器。
- 自动化就绪:MCP工具界面和基于文件的输出易于编排。
路线图(测试版——即将推出)
- 视频生成后的云上传(S3/GCS/AAzure)。
- 自动脚本,按id/日期获取并自动发布到YouTube和Instagram。
- 一次性安排整个月的内容。
- 用于多场景脚本的更好的文本到场景解析器。
- 过渡、字幕/叠加、TTS/VO集成、音乐床。
- 更多的MCP工具和更丰富的模式。
请继续关注——更多的MCP项目即将推出。在GitHub上发布并关注:snippetWizard。敬请期待!
逐个文件快速参考
scenecraft_mcp/engine/script_parser.py:1—parse_script(script)→ 最小单场景字典。scenecraft_mcp/engine/shot_planner.py:1—plan_shots(...)调用LLM进行输出ShotPlan.scenecraft_mcp/llm/factory.py:1—get_llm_client()来自env配置的提供程序。scenecraft_mcp/llm/openai_client.py:1--OpenAI JSON完成。scenecraft_mcp/llm/ollama_client.py:1--Ollama JSON完成。scenecraft_mcp/llm/mock_client.py:1--离线JSON合成演示。scenecraft_mcp/models.py:1--核心Pydantic模型和枚举。scenecraft_mcp/storage/file_repository.py:1--保存/加载Storyboard到~/.scenecraft_mcp/projects/.scenecraft_mcp/video/framegen_sd.py:1--每次拍摄稳定的扩散图像生成器。scenecraft_mcp/video/assembler.py:1--MoviePy图像序列→ MP4.scenecraft_mcp/mcp_server.py:1--MCP工具create_storyboard.examples/test_scene_local.py:1--故事板演示。examples/script_to_video.py:1--完整的管道演示。
许可证
该项目根据MIT许可证获得许可。看 LICENSE 了解详情。
版权所有(c)2025 snippetWizard
