makalin/AnchorFrame

GitHub: makalin/AnchorFrame

基于ComfyUI的AI视频编排层,通过将角色、道具、背景作为有状态资产并自动注入IP-Adapter和ControlNet来解决跨镜头视觉一致性问题。

Stars: 0 | Forks: 0

# AnchorFrame ![AnchorFrame Logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9f17eaa64a162231.png) [](https://opensource.org/licenses/MIT) [](https://www.python.org/) [](https://github.com/comfyanonymous/ComfyUI) **AnchorFrame** 是一个用于生成式 AI 视频的开源编排层。它通过将角色、道具和背景作为**有状态资产**来处理,将 ComfyUI 转变为一个全自动的“电影工作室”。 它充当“导演”的角色,将一致的 embeddings (IP-Adapter, ControlNet) 注入到每一帧中,管理音频同步,甚至可以解析剧本。 ## 🚀 核心功能 * **The Vault (资产管理):** 只需上传一次角色。AnchorFrame 会计算并存储 embeddings。 * **LLM 导演:** 输入文本脚本(剧本格式),看着它转化为分镜头。 * **音频工作室:** 集成的 Text-to-Speech (ElevenLabs) 和 Lip Sync (Wav2Lip) 管道。 * **姿势代理:** 通过编程方式生成合成的 OpenPose 火柴人图形。 * **视频合成器:** 自动将生成的帧拼接成可供观看的 MP4 视频。 * **CLI:** 通过命令行管理项目。 ## 📦 安装 ### 前置条件 1. **Python 3.10+** 2. 一个运行中的 [ComfyUI](https://github.com/comfyanonymous/ComfyUI) 实例,并启用了 `--listen` 参数。 ### 设置 ``` git clone https://github.com/makalin/AnchorFrame.git cd AnchorFrame pip install -r requirements.txt ``` ### 配置 将 `.env.example` 重命名为 `.env` 并将其指向你的后端: ``` COMFY_UI_URL=http://127.0.0.1:8188 OUTPUT_DIR=./renders ELEVEN_LABS_API_KEY=your_key_here ``` ## 🎬 用法 ### “电影工作室”工作流 你可以使用主驱动程序运行完整的从脚本到视频的管道: ``` from anchorframe import Director from anchorframe.logic import LLMDirector from anchorframe.providers import LocalComfyProvider # 1. 初始化 director = Director("SciFi_Epic", provider=LocalComfyProvider("http://127.0.0.1:8188")) # 2. 编写脚本 script = """ [INT_SPACESHIP] CAPTAIN: "Shields are down!" (Action: looking at console) """ # 3. 指导 shots = LLMDirector().convert_script(script) for shot in shots: director.shoot(..., prompt=shot['prompt'], audio_text=shot['dialogue']) # 4. Action! director.action() ``` ### CLI ``` # 初始化一个新项目 python cli.py init MyMovie # 运行 demo python cli.py demo --dry-run # 创建/初始化 vault 文件 python cli.py vault init MyMovie # 在 vault 中添加/列出/展示 assets python cli.py vault add --project MyMovie --name Hero --image ref/hero.png --type person python cli.py vault list MyMovie python cli.py vault show --project MyMovie Hero # 将 frames 组合成视频 python cli.py assemble --dir MyMovie/renders --pattern "*.png" --fps 24 --out MyMovie/renders/final.mp4 ``` ## 🛠 架构 ``` graph LR A[User Script] --> B(LLM Director) B --> C[Shot List] C --> D{Director} D -->|TTS| E[Audio Files] D -->|Assets| F[ComfyUI API] F --> G[Video Frames] E & G --> H[Audio Sync] --> I[Final MP4] ``` ## 🔮 未来改进 - **镜头规划器**:`shots add/list/export` 以使运行可重现且可恢复。 - **运行/恢复编排**:带有 prompt_id 跟踪和重试逻辑的 `run --resume`。 - **后端工具**:用于 ComfyUI 调试的 `comfy ping/queue/history` 辅助工具。 - **图模板与验证**:适用于 IP-Adapter/ControlNet 的真实 ComfyUI 图,以及 `graph validate`。 - **Doctor 命令**:带有可操作修复建议的依赖/环境检查(ComfyUI 可达性、输出权限等)。 ## 📄 许可证 基于 MIT 许可证分发。 **AnchorFrame** 是 [Digital Vision](https://dv.com.tr) 的一个项目。 由 [@makalin](https://github.com/makalin) 维护。
标签:AI导演, AI短片, AI视频, ComfyUI, ControlNet, DLL 劫持, ElevenLabs, IP-Adapter, LLM, OpenPose, Python, Text-to-Speech, Unmanaged PE, Wav2Lip, 分镜生成, 剧本解析, 唇形同步, 大语言模型, 嵌入注入, 开源, 提示词工程, 无后门, 状态资产管理, 策略决策点, 视频剪辑, 视频生成, 角色一致性, 语音合成, 逆向工具