3.5 KiB
3.5 KiB
Sora 自定义节点功能说明
已实现的功能
✅ 1. Text-to-Video(文本生成视频)
节点名称: SoraTextToVideo
从文本提示生成视频,支持完整的 Sora 参数配置。
主要参数:
prompt: 视频描述文本negative_prompt: 负面提示duration_seconds: 视频时长aspect_ratio: 宽高比fps: 帧率guidance_scale: 引导强度seed: 随机种子
✅ 2. Image-to-Video(图像生成视频)
节点名称: SoraImageToVideo
从图像生成视频,完全支持 ComfyUI 的图像输入格式。
支持的图像输入格式:
- ✅ PIL Image 对象
- ✅ Numpy 数组(自动处理各种形状)
- ✅ 文件路径(PNG, JPG, WebP)
- ✅ Base64 编码字符串
主要参数:
image: ComfyUI 图像输入(必需)prompt: 视频描述(必需)- 其他参数与 Text-to-Video 相同
✅ 3. Video-to-Video(视频编辑/扩展)
节点名称: SoraVideoToVideo
对现有视频进行编辑、扩展或风格转换。
支持的操作类型:
extend: 扩展视频时长edit: 根据提示编辑视频内容inpaint: 视频修复/填充style_transfer: 风格迁移
主要参数:
video: 视频文件路径或 base64 字符串(必需)prompt: 编辑描述(必需)operation: 操作类型(extend/edit/inpaint/style_transfer)extension_seconds: 扩展时长(用于 extend 操作)- 其他参数与其他节点相同
技术特性
🔧 文件上传支持
- 扩展了
SoraClient以支持multipart/form-data上传 - 自动处理图像和视频文件的编码和上传
- 支持多种 MIME 类型
🖼️ 图像处理
- 自动格式转换(PIL ↔ Numpy ↔ 文件)
- 自动处理不同的数组形状(batch, channels-first, channels-last)
- 自动归一化(0-1 范围转换为 0-255)
- 自动颜色空间转换(RGBA → RGB)
📹 视频处理
- 支持多种视频格式(MP4, MOV, AVI, WebM)
- 支持文件路径和 base64 编码
- 自动 MIME 类型检测
🔄 轮询机制
- 所有节点都支持异步任务轮询
- 可配置的轮询间隔和超时时间
- 自动状态检测和错误处理
📥 下载支持
- 可选的视频下载功能
- 支持目录或文件路径
- 自动文件命名(使用 job_id)
使用示例
Text-to-Video
# 在 ComfyUI 中直接使用节点
# 输入: prompt = "A beautiful sunset over the ocean"
# 输出: job_id, status, result_json
Image-to-Video
# 连接 ComfyUI 的图像节点到 SoraImageToVideo
# 输入: image (来自 LoadImage 节点), prompt = "Animate this image"
# 输出: job_id, status, result_json
Video-to-Video
# 扩展视频
# 输入: video = "/path/to/video.mp4", operation = "extend", extension_seconds = 5.0
# 输出: job_id, status, result_json
兼容性
- ✅ 仅使用 Python 标准库(核心功能)
- ✅ 可选依赖:Pillow(PIL)和 numpy(用于更好的图像处理)
- ✅ 完全兼容 ComfyUI 的节点系统
- ✅ 支持所有 ComfyUI 图像格式
API 兼容性
节点设计为与 Sora 兼容的 REST API 配合使用,支持:
- OpenAI Sora API(当可用时)
- 自定义 Sora 兼容后端
- 可配置的 base_url 和 endpoint
错误处理
- ✅ 清晰的错误消息
- ✅ API 错误自动捕获和报告
- ✅ 超时保护
- ✅ 输入验证
未来可能的扩展
- 批量处理支持
- 视频预览功能
- 更多视频操作类型
- 实时进度回调
- 视频质量/分辨率选项