ComfyUI Extension: ComfyUI-MultiAngle-Camera
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
3D camera controller for ComfyUI bringing cinematic camera language to AI image generation. Features 3D orbit control, preset angles, intelligent prompt generation, and multi-angle workflow support. (Description by CC)
README
ComfyUI-MultiAngle-Camera
多角度相机控制器 - 为 AI 图像生成带来电影级的镜头语言
🎬 应用场景
电影制作
- 分镜头预览:快速生成不同角度的场景预览,辅助分镜设计
- 镜头语言可视化:通过相机角度控制,实现专业镜头语言表达
- 故事板制作:批量生成同一场景的多角度版本,加速故事板迭代
漫剧/动漫制作
- 角色立绘多角度:同一角色的不同角度展示(正面、侧面、背面、俯视、仰视)
- 场景全景漫游:通过 yaw/pitch 控制,实现场景的全方位展示
- 镜头动态调整:根据剧情需要,快速切换镜头角度和景别
参考来源
本插件参考 libtv 的相机控制理念,结合 ComfyUI 的工作流特性,为 AI 图像生成带来直观的 3D 相机控制体验。
🚀 核心功能
1. 3D 球体交互控制器
- 鼠标拖拽旋转,实时调整相机角度
- 支持 Yaw(水平环绕)、Pitch(垂直俯仰)、Zoom(景别缩放)
- 可视化反馈,角度参数实时显示
2. 预设角度快速切换
| 预设 | 说明 | 应用场景 | |------|------|------------| | 鱼眼视角 | zoom=2.5,超广角效果 | 夸张的喜剧效果、梦境场景 | | 倾斜视角 | yaw=45°, pitch=-15° | 荷兰角镜头,营造不安感 | | 正面俯拍 | pitch=60° | 权威感、压制感镜头 | | 正面仰拍 | pitch=-30° | 英雄视角,增强气势 | | 全景俯拍 | pitch=89°, zoom=2.0 | 大场景全景展示 | | 背面视角 | yaw=180° | 跟拍镜头、主观视角 |
3. 智能提示词生成
自动将相机参数转换为自然语言提示词,兼容多种 AI 图像模型:
camera angle: yaw=45°, pitch=15°, zoom=1.0 (front-right diagonal view, medium shot)
4. 数值参数输出
同时输出结构化数值(yaw, pitch, zoom),可供下游节点精确控制。
🔗 结合 Nano Banana Pro / GPT Image 2 使用
工作流示例 1:电影场景多角度生成
[Multi-Angle Camera] → [提示词输出] → [Nano Banana Pro / GPT Image 2]
↓
[角度数值] → [其他控制节点]
步骤:
- 在 Multi-Angle Camera 节点中调整 3D 球体,选择理想角度
- 节点自动生成角度描述提示词(如
camera angle: yaw=45°, pitch=15°, zoom=1.0) - 将提示词接入 Nano Banana Pro 或 GPT Image 2 的
prompt输入 - (可选)使用数值输出进行更精细的控制
示例提示词组合:
# 基础场景描述
A cyberpunk street at night, neon lights, rain-slicked pavement
# + 自动生成的角度提示词
camera angle: yaw=45°, pitch=15°, zoom=1.0 (front-right diagonal view, medium shot)
# 最终输入到 Nano Banana Pro / GPT Image 2
A cyberpunk street at night, neon lights, rain-slicked pavement
camera angle: yaw=45°, pitch=15°, zoom=1.0 (front-right diagonal view, medium shot)
工作流示例 2:漫剧角色立绘生成
目标:生成同一角色的 5 个角度(正面、左侧面、右侧面、背面、俯视)
步骤:
- 创建 5 个 Multi-Angle Camera 节点
- 分别设置为:
- 节点1:yaw=0°(正面)
- 节点2:yaw=90°(左侧面)
- 节点3:yaw=-90°(右侧面)
- 节点4:yaw=180°(背面)
- 节点5:pitch=60°(俯视)
- 将所有角度提示词连接到 文本拼接节点
- 拼接后的提示词输入到 Nano Banana Pro 或 GPT Image 2
- 使用相同的
seed值,确保角色一致性
提示词模板:
Character: A young warrior with silver hair and blue eyes, wearing white robes
Style: anime style, high quality, detailed face
--- Angle 1: Front View ---
camera angle: yaw=0°, pitch=0°, zoom=1.0 (front view, medium shot)
--- Angle 2: Left Profile ---
camera angle: yaw=90°, pitch=0°, zoom=1.0 (left side profile view, medium shot)
...
工作流示例 3:动态镜头序列(漫剧分镜)
目标:生成一个镜头的多个关键帧(如:远景建立 → 中景 → 近景特写)
步骤:
- 使用 Multi-Angle Camera 的预设或手动调整
- 设置 3 个节点:
- 节点1:zoom=2.0(远景建立)
- 节点2:zoom=1.0(中景)
- 节点3:zoom=0.3(近景特写)
- 依次输入到 Nano Banana Pro 或 GPT Image 2
- 保持场景描述一致,仅改变相机参数
📦 安装方式
方式一:Git 克隆(推荐)
cd D:\ComfyUI\custom_nodes
git clone https://github.com/your-username/ComfyUI-MultiAngle-Camera.git
方式二:手动下载
- 下载本仓库的 ZIP 文件
- 解压到 ComfyUI 的
custom_nodes目录 - 重启 ComfyUI
🎯 使用方法
基本使用
- 在 ComfyUI 中搜索
Multi-Angle Camera或🎬 Multi-Angle Camera - 将节点添加到工作流
- 在节点的 3D 球体上拖拽鼠标,调整相机角度
- 观察实时生成的提示词和数值参数
- 将输出连接到下游节点(如提示词输入)
参数说明
输入
| 参数 | 类型 | 说明 |
|------|------|------|
| camera_control | CAMERA_ORBIT | 3D 球体控制器(内置) |
| image | IMAGE (可选) | 输入图像(预留接口) |
输出
| 输出 | 类型 | 说明 |
|------|------|------|
| angle_prompt | STRING | 生成的角度描述提示词 |
| yaw | FLOAT | 水平环绕角度 (-180° ~ 180°) |
| pitch | FLOAT | 垂直俯仰角度 (-90° ~ 90°) |
| zoom | FLOAT | 景别缩放 (0.1 ~ 3.0) |
角度参数详解
-
Yaw(偏航角):控制相机水平旋转
- 0° = 正面视角
- 90° = 左侧面
- -90° = 右侧面
- 180° / -180° = 背面视角
-
Pitch(俯仰角):控制相机上下倾斜
- 0° = 水平视角
-
30° = 俯拍(look down from above)
- < -30° = 仰拍(look up from below)
-
Zoom(缩放):控制景别
- < 0.5 = 近景(close-up shot)
- 0.5 ~ 2.0 = 中景(medium shot)
-
2.0 = 远景(wide shot)
🎨 预设角度详解
电影镜头语言应用
| 预设 | 电影术语 | 情感效果 | 经典应用 | |------|----------|----------|----------| | 正面俯拍 (pitch=60°) | High Angle | 压制、脆弱、全知视角 | 《教父》开场 | | 正面仰拍 (pitch=-30°) | Low Angle | 权威、英雄主义、力量 | 超级英雄电影 | | 倾斜视角 (yaw=45°, pitch=-15°) | Dutch Angle | 不安、混乱、心理失衡 | 《蝙蝠侠:黑暗骑士》 | | 鱼眼视角 (zoom=2.5) | Fisheye | 夸张、扭曲、梦境 | 恐怖片、科幻片 | | 背面视角 (yaw=180°) | Over the Shoulder | 主观视角、代入感 | 对话场景 |
🔧 技术实现
前端(JavaScript)
- 使用 Three.js 实现 3D 球体交互
- 动态加载 CDN 资源,无需本地安装
- 支持 OrbitControls 和自定义拖拽逻辑(降级方案)
后端(Python)
- 解析 JSON 格式的相机参数
- 生成自然语言描述提示词
- 输出结构化数值参数
提示词生成逻辑
- 水平方向:根据 yaw 角度判断(8 个区间)
- 垂直方向:根据 pitch 角度判断(俯拍/仰拍/水平)
- 景别:根据 zoom 值判断(近景/中景/远景)
- 结构化输出:
camera angle: yaw=X°, pitch=Y°, zoom=Z (description)
🌟 高级技巧
1. 与 ControlNet 结合
使用数值输出(yaw, pitch)连接到 ControlNet 的姿态控制,实现精确的相机控制。
2. 批量生成多角度
使用 ComfyUI 的 For Loop 或 Batch 节点,遍历多个角度预设,批量生成。
3. 动画预览
将多个角度按顺序连接,快速预览镜头运动路径。
4. 与 KSampler 结合
固定 seed 值,仅改变相机角度,生成视角一致的多角度图像。
📝 注意事项
- 提示词位置:将生成的角度提示词放在场景描述之后,模型更容易理解
- 角度精度:AI 模型对精确数值(如
yaw=45°)的理解优于纯文本描述 - 模型兼容性:本插件生成的提示词兼容 GPT Image 2、Nano Banana Pro、Stable Diffusion 等多种模型
- 性能:前端使用 CDN 加载 Three.js,首次使用需要联网
🐛 已知问题
- [ ] Three.js 加载失败时,降级方案不够流畅
- [ ] 预设角度较少,计划添加更多电影镜头预设
- [ ] 数值输出暂未连接到更多下游节点
🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
计划中的功能:
- [ ] 更多电影镜头预设(推轨、摇镜、升降镜头)
- [ ] 相机路径动画(关键帧插值)
- [ ] 与更多插件的深度集成
📄 License
MIT License
🙏 致谢
- libtv:相机控制设计灵感
- Three.js:强大的 3D 渲染库
- ComfyUI 社区:持续的支持和反馈
📧 联系方式
- GitHub Issues:提交问题或建议
- [email protected]
希望这个插件能为你的 AI 图像生成工作流带来电影级的镜头控制体验! 🎬✨
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.