- 桌面应用
- 音视频
- 视频处理
【免费下载链接】openshot-qt
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.
导读
本文围绕 OpenShot Video Editor 内置的Advanced AI: ComfyUI功能展开,系统讲解如何在 OpenShot 中连接本地 ComfyUI 服务器,通过“Create with AI / Enhance with AI”右键菜单调用文生图、文生视频、视频风格迁移、音频降噪、超分辨率、场景切分与语音字幕等内置工作流。读完本文,你将掌握从硬件评估、服务器部署、自定义节点与模型安装,到工作流模板导入、SAM2 区域跟踪标注以及任务队列与故障排查的完整闭环方案,并了解 OpenShot 与 ComfyUI 之间的 HTTP/WebSocket 调用原理与源码级实现细节。
注意:OpenShot 的 AI 功能属于实验性特性,官方文档明确提示其不推荐在笔记本、中端台式机或入门级系统上使用。你必须自行运行一个本地 ComfyUI 服务器,并做好模型下载、环境配置与工作流排错的预期。
最低推荐硬件
官方文档给出了明确的硬件门槛,低于该水平时任务会停滞、失败或产生不稳定结果。若 GPU 显存仅有 8GB 或更少,运行这些模型几乎必然 OOM(显存耗尽)。
| 组件 | 建议配置 |
|---|---|
| GPU | NVIDIA 5070 12GB 或更高(强烈建议 16–24GB 显存) |
| CPU | Ryzen 9 5900 级别(或同等高主频多核处理器) |
| 内存 | 64GB 及以上 |
| 存储 | 200GB 以上空闲空间(用于模型、缓存与生成产物) |
| 经验要求 | 熟悉 ComfyUI 图、模型与节点依赖 |
这些要求与内置工作流的模型体量直接相关:仅 WAN 系列视频模型、SDXL 检查点、SAM2 系列分割权重与 Whisper large-v3 等合计就需占用大量磁盘与显存(详见下文“必需模型清单”)。
安装与配置
快速配置路径
在尝试任何 AI 工作流之前,按以下顺序完成部署:
- 安装 ComfyUI 并确认其能正常启动;
- 安装所需的自定义节点(见下节);
- 将所需模型文件下载到 ComfyUI 对应模型目录(见“必需模型清单”);
- 启动 ComfyUI,然后在 OpenShot 中打开
Edit -> Preferences -> Advanced,设置ComfyUI URL; - 点击
Check按钮,确认 OpenShot 能连通该服务器。
必需自定义节点
以下节点包必须安装到 ComfyUI 的custom_nodes目录,否则对应工作流无法运行:
comfyui_controlnet_aux(ControlNet 辅助预处理器,用于线稿、深度等条件控制)ComfyUI-Frame-Interpolation(RIFE 帧插值,对应 “Smooth Motion” 工作流)ComfyUI-VideoHelperSuite(VHS,视频加载/保存/批处理基础设施)ComfyUI-Video-Segmentation(TransNetV2 场景切分)ComfyUI-Whisper(语音转字幕,输出 SRT)OpenShot-ComfyUI(OpenShot 官方自定义节点集,提供 SAM2 跟踪、DeepFilterNet 降噪、LavaSR 语音增强等专有节点)
必需模型 / 文件清单
官方文档给出了内置工作流依赖的完整文件清单,按 ComfyUI 目录结构组织如下:
扩散模型(ComfyUI/models/diffusion_models/)
wan2.1_vace_1.3B_fp16.safetensors(video2video 风格迁移)wan2.2_ti2v_5B_fp16.safetensors(文生视频 / 图生视频)
检查点(ComfyUI/models/checkpoints/)
sd_xl_base_1.0.safetensors(文生图 / 图生图)sd_xl_refiner_1.0.safetensors(SDXL 精修)stable-audio-open-1.0.safetensors(Stable Audio Open,音效生成)
文本编码器(ComfyUI/models/text_encoders/)
t5-base.safetensorsumt5_xxl_fp8_e4m3fn_scaled.safetensors(WAN 系列工作流使用)
视觉模型与 SAM2 系列(ComfyUI/models/)
clip_vision/clip_vision_g.safetensorsgrounding-dino/groundingdino_swint_ogc.pthsam2/sam2.1_hiera_base_plus.ptsam2/sam2.1_hiera_small-fp16.safetensors、sam2/sam2.1_hiera_small.ptsam2/sam2.1_hiera_tiny-fp16.safetensors、sam2/sam2.1_hiera_tiny.ptsam2/sam2_hiera_small.pt
语音 / 音频相关(ComfyUI/models/)
stt/whisper/large-v3.pt、stt/whisper/medium.pt(字幕工作流)TTS/Ace-Step1.5/acestep-v15-turbo/silence_latent.pt(音乐生成)
超分 / VAE / VLM(ComfyUI/models/)
upscale_models/RealESRGAN_x4plus.safetensors(4x 超分)vae/wan_2.1_vae.safetensors、vae/wan2.2_vae.safetensorsVLM/transnetv2-pytorch-weights/transnetv2-pytorch-weights.pth(场景切分)
帧插值权重
ComfyUI/custom_nodes/ComfyUI-Frame-Interpolation/ckpts/rife/rife47.pth(Smooth Motion)
将上述文件放入对应目录后重启 ComfyUI 使其加载,即可在 OpenShot 中使用全部内置工作流。
OpenShot 中的 AI 入口
当 ComfyUI 可用时,OpenShot 会在右键上下文菜单中显示 AI 工具:
Create with AI:创建新素材(文生图、文生视频、音效、音乐)Enhance with AI (images):处理图像素材(风格迁移、提取深度/线稿、超分、SAM2 跟踪等)Enhance with AI (videos):处理视频素材(去噪、字幕、场景切分、帧插值、视频风格迁移、SAM2 视频跟踪等)
生成的产物会以进度文本与队列徽章的形式添加到Project Files面板。输出文件默认写入用户目录下的.openshot_qt/comfyui-output/(对应源码常量 src/classes/info.py 中的COMFYUI_OUTPUT_PATH)。
项目生命周期与临时目录:新建或打开既有项目时,OpenShot 会清空.openshot_qt下临时的 AI 工作目录,保证每次从干净状态开始。已保存的项目不受影响;任何已复制进项目目录PROJECTNAME_Assets的素材仍保留在原项目目录中。
服务不可用时的表现:如果 ComfyUI 不可达,OpenShot 会禁用 AI 菜单。此时应回到Edit -> Preferences -> Advanced配置服务器地址,并使用Check按钮测试连通性。源码层面,生成服务通过ComfyClient(url).ping()请求 ComfyUI 的/system_stats接口做探测(src/classes/comfy_client.py),偏好设置面板则异步发起连通性检查并据结果启停 AI 菜单(src/windows/preferences.py)。
工作流模板的加载与扩展
模板来源与覆盖规则
OpenShot 读取两类模板目录:
- 内置模板:仓库根目录的
comfyui/文件夹(运行时路径为info.PATH/comfyui); - 用户自定义模板:
~/.openshot_qt/comfyui/(对应info.COMFYUI_PATH,见 src/classes/info.py)。
源码中模板发现与分类逻辑位于 src/classes/comfy_templates.py:ComfyTemplateRegistry同时扫描内置与用户目录,通过文件修改时间与大小构建缓存签名;用户模板的显示名会加(User)前缀,并且以template_id去重(重复时追加__2、__3后缀)。模板 JSON 必须是以class_type节点为值的 API 格式图(_looks_like_workflow校验),否则会被跳过并在日志中告警。
导入你自己的工作流
- 在 ComfyUI 中打开想要使用的工作流页签;
- 选择
Export (API),将工作流保存为*.json文件; - 把该 JSON 文件复制到
~/.openshot_qt/comfyui/; - 重启 OpenShot(或按需重开项目)。
OpenShot 会自动加载该工作流并把它显示到对应的 AI 菜单中。从 OpenShot 触发时,所选源文件会被注入工作流的输入节点,工作流最终输出节点的产物会被导入回Project Files。
模板 JSON 支持若干顶层字段用于菜单分类与行为控制(见 src/classes/comfy_templates.py):menu_category/category(create或enhance)、menu_parent(如noise、clarity、extract、track_object)、input_type/source_type、output_type/media_output、action_icon、open_dialog、needs_reference_image、menu_order等。工作流内部的占位符约定包括:__openshot_input__(或{{openshot_input}}、$openshot_input)表示源素材路径、__openshot_reference_image__表示参考图、__openshot_prompt__表示提示词、__openshot_lyrics__表示歌词(音乐工作流)。这些占位符在 src/classes/generation_service.py 中统一替换为实际值。
调试载荷
OpenShot 会把发送给 ComfyUI 的完整请求图写入~/.openshot_qt/comfyui/debug.json(包含生成时间、ComfyUI URL、client_id 与整个 prompt 图,见 src/classes/comfy_client.py),供高级用户检查实际下发的请求内容;当 ComfyUI 返回校验错误时,还会额外写入debug_error.json。
AI 生成对话框
Create with AI与Enhance with AI打开的是同一个生成对话框(源码实现为 src/windows/generate.py 中的GenerateMediaDialog,由 src/classes/generation_service.py 创建):
该对话框的意义在于:
- 把所有 AI 输入集中到一处;
- 在入队前校验必填字段(例如 SAM2 跟踪工作流必须提供种子点/矩形或启用 Auto 模式,否则直接拒绝,见 src/classes/generation_service.py);
- 允许在昂贵的生成运行前预先设置跟踪提示。
对话框中你可以:
- 选择工作流 / 动作;
- 输入提示词文本;
- 预览所选源文件(适用于增强类工作流);
- 为生成的媒体设置输出名称(默认按
源名_gen序号自动命名并避开冲突,命名逻辑在 src/classes/generation_service.py 并有对应单元测试 src/tests/test_generation_service.py); - 在
Reference页签中为需要参考图的工作流(如Change Video Style)选择参考图像; - 为跟踪工作流提供跟踪点 / 矩形;
- 点击
Generate开始任务,或Cancel关闭。
SAM2 目标跟踪:遮罩 / 模糊 / 高亮
跟踪类工作流(Blur...、Highlight...、Mask...)使用一个区域标注界面,你在其中标记“要包含什么”和“要忽略什么”:
为什么需要跟踪
跟踪能让你施加的效果随时间“粘”在移动主体上。典型场景包括:模糊人脸、高亮球员、或生成一个能跨帧跟随同一物体的干净遮罩。该工作流基于 SAM2(Segment Anything Model 2)实现。
图标 / 标记含义
| 图标 / 标记 | 含义 |
|---|---|
| 蓝点 | 正向跟踪坐标(前景 / 主体种子点) |
| 红点 | 负向跟踪坐标(背景 / 排除种子点) |
| 蓝色矩形 | 正向区域种子(大范围主体提示) |
| 红色矩形 | 负向区域种子(大范围排除提示) |
| 删除图标 | 清除全部当前种子(点 / 矩形)并重新开始 |
跟踪原理
OpenShot 把你的正 / 负标记作为种子坐标发送给跟踪模型,模型为指定主体构建遮罩并随时间持续追踪。更好的种子通常得到更干净的遮罩和更少的漂移。
从源码看,跟踪参数的组装发生在 src/classes/generation_service.py:正向点写入positive_points_json/coordinates_positive、负向点写入negative_points_json/coordinates_negative、矩形写入positive_rects_json/negative_rects_json,同时可设置frame_index(种子帧)与tracking_selection_json;坐标同时兼容x,y; x,y简写与 JSON 列表两种格式。SAM2 视频跟踪在 OpenShot 侧还支持动态分块批处理(_apply_dynamic_sam2_meta_batch,src/classes/generation_service.py):根据源视频分辨率与显存预算(默认目标批字节 4GiB,可由comfy-sam2-target-batch-bytes/comfy-sam2-target-batch-gb设置调整)自动计算chunk_size_frames与frames_per_batch(4–192 帧之间,按 4 取整),避免长视频一次性喂入导致 OOM;高亮路径按每像素 64 字节、模糊路径按 40 字节估算内存,比纯遮罩路径(24 字节)更保守。
使用方法
- 选一个主体清晰可见的帧;
- 先在主体上放一个蓝点;
- 仅在需要时,在附近背景上添加红点;
- 需要更快的大范围选择时添加矩形;
- 当运动 / 形状变化时,在额外帧上重复标注。
随时间调整(帧滑块):
- 拖动帧滑块到片段的不同时刻;
- 在跟踪开始漂移的帧上添加或调整点 / 矩形;
- 仅在需要处(遮挡、快速运动、大幅形状变化)补充种子点。
遮罩预览输出(跟踪过程的产物):
最佳实践
- 先用短测试片段;
- 从简单开始:一个蓝点通常就够;
- 只在跟踪失败处增加点;
- 必要时加入更精细的正 / 负点与矩形组合;
- 正、负点保持清晰分离;
- 跟踪混乱时使用删除图标清空,用更干净的种子重新开始。
任务队列、进度与取消
点击Generate后,请求进入 OpenShot 的 AI 任务队列(GenerationQueueManager,单工作线程、内存驻留,见 src/classes/generation_queue.py):
- 进度展示:
Project Files中显示徽章与状态文本(如Queued、Generating 45% (node 12 45%)、Canceling...); - 产物回导:完成后的输出自动导入
Project Files; - 取消任务:右键点击带进度条的项目文件,选择
Cancel Job。取消会同时请求 ComfyUI 的/queue(删除 prompt)与/interrupt(中断执行),并轮询确认 prompt 已从队列消失或历史状态标记为失败(src/classes/generation_queue.py); - 输出位置:
.openshot_qt/comfyui-output/。
实现细节:工作线程通过 WebSocket(/ws?clientId=...)订阅 ComfyUI 的progress/progress_state事件以获得实时进度(src/classes/comfy_client.py),WebSocket 不可用时回退到 HTTP/progress轮询,两者都失效时则仅依赖/history与/queue轮询判断完成。任务执行设有 6 小时超时上限与“从队列消失且无历史结果超 10 分钟即判定失败”的保护逻辑。源素材通过/upload/image接口以 multipart 方式上传为[input]引用(src/classes/comfy_client.py),最终产物经/view下载并按类型(图片 / 视频 / 音频 / SRT 文本)导入。
内置 JSON 工作流速查
以下小节与comfyui/目录下的内置 JSON 模板一一对应(仓库中模板清单见 src/comfyui/)。
Create with AI
| 动作 | 模板文件 | 用途与模型 |
|---|---|---|
| Image... | comfyui/txt2img-basic.json | 文生图,使用sd_xl_base_1.0.safetensors |
| Video... | comfyui/txt2video-svd.json | 文生视频短片,使用 WAN 系列视频模型 |
| Sound... | comfyui/txt2audio-stable-open.json | 生成非音乐类音频,使用 Stable Audio Open 模型 |
| Music... | comfyui/txt2music-ace-step.json | 按风格 / 标签(及可选歌词)生成音乐,使用 Ace-Step 1.5 检查点;提示词中可用Lyrics:段内联输入歌词(src/classes/generation_service.py) |
Enhance with AI —— 音频
| 动作 | 模板文件 | 用途与节点 |
|---|---|---|
| Noise -> Reduce | comfyui/audio-noise-reduce.json | 轻度抑制平稳背景噪声、保留更多原始氛围,使用OpenShotDeepFilterNetDenoiseAudio |
| Noise -> Remove | comfyui/audio-noise-remove.json | 激进去除嘈杂录音的背景噪声,使用OpenShotDeepFilterNetDenoiseAudio |
| Clarity -> Speech | comfyui/audio-clarity-speech.json | 改善沉闷、嘈杂、带宽受限或低保真的语音清晰度,使用OpenShotLavaSRSpeechClarity |
Enhance with AI —— 图像
| 动作 | 模板文件 | 用途与模型 |
|---|---|---|
| Change Image Style... | comfyui/img2img-basic.json | 保持原构图前提下重绘风格,使用sd_xl_base_1.0.safetensors |
| Extract -> Depth | comfyui/image-extract-depth.json | 导出灰度深度图,使用DepthAnythingV2Preprocessor |
| Extract -> Lines | comfyui/image-extract-lines.json | 导出线稿图,使用LineArtPreprocessor |
| Increase Resolution | comfyui/upscale-realesrgan-x4.json | 低分辨率图像 4x 超分,使用RealESRGAN_x4plus.safetensors |
Enhance with AI —— 视频
| 动作 | 模板文件 | 用途与模型 |
|---|---|---|
| Image to Video... | comfyui/img2video-wan.json | 静止图像转生成视频镜头,使用 WAN 2.2 图生视频模型 |
| Change Video Style... | comfyui/video2video-basic.json | 对源视频应用新视觉风格;必须提供参考图;组合DepthAnythingV2Preprocessor深度与 Canny 边缘双重控制,使用wan2.1_vace_1.3B_fp16.safetensors、wan_2.1_vae.safetensors、umt5_xxl_fp8_e4m3fn_scaled.safetensors |
| Extract -> Depth | comfyui/video-extract-depth.json | 导出视频灰度深度图,使用DepthAnythingV2Preprocessor,保持源帧率 |
| Extract -> Lines | comfyui/video-extract-lines.json | 导出视频线稿版,使用LineArtPreprocessor,保持源帧率 |
| Increase Resolution | comfyui/video-upscale-gan.json | 视频帧超分提升表观细节,使用RealESRGAN_x4plus.safetensors |
| Smooth Motion (2x Frame Rate) | comfyui/video-frame-interpolation-rife2x.json | 插值提升帧率使运动更流畅,使用rife47.pth |
| Split into Scenes | comfyui/video-segment-scenes-transnet.json | 自动检测场景变化并切分长片段,使用 TransNetV2;切分结果会生成带时间码命名(如scene (00;12 to 00;30))与scene标签的分段文件(src/classes/generation_service.py) |
| Add Captions from Speech | comfyui/video-whisper-srt.json | 语音转字幕 / 字幕文件(SRT 输出),并会把字幕文本写入源文件的caption元数据(src/classes/generation_service.py) |
跟踪类工作流(SAM2)
这些工作流共用上文所述区域 / 跟踪输入流程,集中在跟踪上下文菜单中:
| 动作 | 模板文件 | 说明 |
|---|---|---|
| Blur... (image) | comfyui/image-blur-anything-sam2.json | 模糊静态图像中的指定主体区域,SAM2 图像分割 |
| Highlight... (image) | comfyui/image-highlight-anything-sam2.json | 强调静态图像中的指定主体区域,SAM2 图像分割 |
| Mask... (image) | comfyui/image-mask-anything-sam2.json | 为静态图像中的指定区域生成遮罩,SAM2 图像分割 |
| Blur... (video) | comfyui/video-blur-anything-sam2.json | 跟踪并模糊视频中的移动主体,SAM2 视频跟踪 |
| Highlight... (video) | comfyui/video-highlight-anything-sam2.json | 跟踪并高亮视频中的移动主体,SAM2 视频跟踪 |
| Mask... (video) | comfyui/video-mask-anything-sam2.json | 生成跟随移动主体的动画遮罩,SAM2 视频跟踪 |
这些模板中的 SAM2 相关节点(OpenShotSam2VideoSegmentationChunked、OpenShotImageBlurMasked、OpenShotImageHighlightMasked等)由OpenShot-ComfyUI自定义节点提供,已被 src/classes/comfy_templates.py 的KNOWN_NODE_TYPES收录。
新手起点
如果你是第一次接触这些工具,官方文档建议按以下顺序试水(由易到难、由快到慢):
Create with AI->ImageEnhance with AI->Increase ResolutionEnhance with AI->Smooth MotionEnhance with AI->Split into ScenesEnhance with AI->Add Captions
故障排查
如果 AI 菜单不出现或任务立即失败,按顺序排查:
- 验证 ComfyUI 正在运行且配置的 URL 可达(使用偏好设置中的
Check按钮); - 确认必需模型存在于 ComfyUI 环境中(对照上文清单逐项核对);
- 确认自定义节点包已安装,且与所选工作流匹配(如
OpenShot-ComfyUI缺失会导致 SAM2 / 降噪节点全部校验失败); - 减小批量 / 分块尺寸处理长片段(长视频任务可结合
comfy-sam2-target-batch-gb设置调低 SAM2 批处理预算,或缩短片段再跑); - 先用短片段或静态图复测,把问题范围缩小。
ComfyUI 返回的 prompt 校验错误会在 OpenShot 中以简明文本展示(错误信息经过截断与结构限制处理,避免巨型张量转储刷屏,见 src/classes/comfy_client.py),同时完整错误载荷保存在~/.openshot_qt/comfyui/debug_error.json供深入排查。
延伸阅读
- 完整的 ComfyUI 服务器搭建分步指南可参考 OpenShot 官方 Wiki 的 “ComfyUI: Advanced AI Setup Guide”;
- 关于预览性能与缓存调优,参见官方文档的 播放与预览章节 与 偏好设置章节;
- 内置工作流模板源码位于 src/comfyui/,模板加载与分类实现在 src/classes/comfy_templates.py,生成编排在 src/classes/generation_service.py,HTTP/WebSocket 客户端在 src/classes/comfy_client.py,任务队列在 src/classes/generation_queue.py;
- 命名、菜单标签等关键行为的单元测试见 src/tests/test_generation_service.py。
- 桌面应用
- 音视频
- 视频处理
【免费下载链接】openshot-qt
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.
相关推荐
Kedro 项目集成 MLflow 实战指南:实验跟踪、模型注册与部署全流程
Kedro 项目集成 MLflow 实战指南:实验跟踪、模型注册与部署全流程 本文以 Kedro 官方文档《How to add MLflow to your
数据工程工作流自动化Sunshine 自托管游戏串流完全指南:把主机画面串到电视、手机与平板
Sunshine 自托管游戏串流完全指南:把主机画面串到电视、手机与平板 Sunshine 是一款免费的自托管游戏串流服务端,配合 Moonlight 客户端,
音视频后端ComfyUI-Ollama插件:轻松集成本地AI模型到工作流程
ComfyUI Ollama插件:轻松集成本地AI模型到工作流程 在AI创作工具ComfyUI中集成强大的语言模型从未如此简单!ComfyUI Ollama插件
AI 应用大模型本地部署多模态
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考