news 2026/10/7 16:06:26

OpenShot AI 实战指南:本地 ComfyUI 工作流集成、模型部署与 SAM2 目标跟踪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenShot AI 实战指南:本地 ComfyUI 工作流集成、模型部署与 SAM2 目标跟踪
  • 桌面应用
  • 音视频
  • 视频处理

【免费下载链接】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.

项目地址:https://gitcode.com/gh_mirrors/op/openshot-qt
点击查看免费下载

导读

本文围绕 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(显存耗尽)。

组件建议配置
GPUNVIDIA 5070 12GB 或更高(强烈建议 16–24GB 显存)
CPURyzen 9 5900 级别(或同等高主频多核处理器)
内存64GB 及以上
存储200GB 以上空闲空间(用于模型、缓存与生成产物)
经验要求熟悉 ComfyUI 图、模型与节点依赖

这些要求与内置工作流的模型体量直接相关:仅 WAN 系列视频模型、SDXL 检查点、SAM2 系列分割权重与 Whisper large-v3 等合计就需占用大量磁盘与显存(详见下文“必需模型清单”)。

安装与配置

快速配置路径

在尝试任何 AI 工作流之前,按以下顺序完成部署:

  1. 安装 ComfyUI 并确认其能正常启动;
  2. 安装所需的自定义节点(见下节);
  3. 将所需模型文件下载到 ComfyUI 对应模型目录(见“必需模型清单”);
  4. 启动 ComfyUI,然后在 OpenShot 中打开Edit -> Preferences -> Advanced,设置ComfyUI URL;
  5. 点击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.safetensors
  • umt5_xxl_fp8_e4m3fn_scaled.safetensors(WAN 系列工作流使用)

视觉模型与 SAM2 系列(ComfyUI/models/)

  • clip_vision/clip_vision_g.safetensors
  • grounding-dino/groundingdino_swint_ogc.pth
  • sam2/sam2.1_hiera_base_plus.pt
  • sam2/sam2.1_hiera_small-fp16.safetensors、sam2/sam2.1_hiera_small.pt
  • sam2/sam2.1_hiera_tiny-fp16.safetensors、sam2/sam2.1_hiera_tiny.pt
  • sam2/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.safetensors
  • VLM/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 读取两类模板目录:

  1. 内置模板:仓库根目录的comfyui/文件夹(运行时路径为info.PATH/comfyui);
  2. 用户自定义模板:~/.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校验),否则会被跳过并在日志中告警。

导入你自己的工作流

  1. 在 ComfyUI 中打开想要使用的工作流页签;
  2. 选择Export (API),将工作流保存为*.json文件;
  3. 把该 JSON 文件复制到~/.openshot_qt/comfyui/;
  4. 重启 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 字节)更保守。

使用方法

  1. 选一个主体清晰可见的帧;
  2. 先在主体上放一个蓝点;
  3. 仅在需要时,在附近背景上添加红点;
  4. 需要更快的大范围选择时添加矩形;
  5. 当运动 / 形状变化时,在额外帧上重复标注。

随时间调整(帧滑块):

  • 拖动帧滑块到片段的不同时刻;
  • 在跟踪开始漂移的帧上添加或调整点 / 矩形;
  • 仅在需要处(遮挡、快速运动、大幅形状变化)补充种子点。

遮罩预览输出(跟踪过程的产物):

最佳实践

  • 先用短测试片段;
  • 从简单开始:一个蓝点通常就够;
  • 只在跟踪失败处增加点;
  • 必要时加入更精细的正 / 负点与矩形组合;
  • 正、负点保持清晰分离;
  • 跟踪混乱时使用删除图标清空,用更干净的种子重新开始。

任务队列、进度与取消

点击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 -> Reducecomfyui/audio-noise-reduce.json轻度抑制平稳背景噪声、保留更多原始氛围,使用OpenShotDeepFilterNetDenoiseAudio
Noise -> Removecomfyui/audio-noise-remove.json激进去除嘈杂录音的背景噪声,使用OpenShotDeepFilterNetDenoiseAudio
Clarity -> Speechcomfyui/audio-clarity-speech.json改善沉闷、嘈杂、带宽受限或低保真的语音清晰度,使用OpenShotLavaSRSpeechClarity

Enhance with AI —— 图像

动作模板文件用途与模型
Change Image Style...comfyui/img2img-basic.json保持原构图前提下重绘风格,使用sd_xl_base_1.0.safetensors
Extract -> Depthcomfyui/image-extract-depth.json导出灰度深度图,使用DepthAnythingV2Preprocessor
Extract -> Linescomfyui/image-extract-lines.json导出线稿图,使用LineArtPreprocessor
Increase Resolutioncomfyui/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 -> Depthcomfyui/video-extract-depth.json导出视频灰度深度图,使用DepthAnythingV2Preprocessor,保持源帧率
Extract -> Linescomfyui/video-extract-lines.json导出视频线稿版,使用LineArtPreprocessor,保持源帧率
Increase Resolutioncomfyui/video-upscale-gan.json视频帧超分提升表观细节,使用RealESRGAN_x4plus.safetensors
Smooth Motion (2x Frame Rate)comfyui/video-frame-interpolation-rife2x.json插值提升帧率使运动更流畅,使用rife47.pth
Split into Scenescomfyui/video-segment-scenes-transnet.json自动检测场景变化并切分长片段,使用 TransNetV2;切分结果会生成带时间码命名(如scene (00;12 to 00;30))与scene标签的分段文件(src/classes/generation_service.py)
Add Captions from Speechcomfyui/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收录。

新手起点

如果你是第一次接触这些工具,官方文档建议按以下顺序试水(由易到难、由快到慢):

  1. Create with AI->Image
  2. Enhance with AI->Increase Resolution
  3. Enhance with AI->Smooth Motion
  4. Enhance with AI->Split into Scenes
  5. Enhance with AI->Add Captions

故障排查

如果 AI 菜单不出现或任务立即失败,按顺序排查:

  1. 验证 ComfyUI 正在运行且配置的 URL 可达(使用偏好设置中的Check按钮);
  2. 确认必需模型存在于 ComfyUI 环境中(对照上文清单逐项核对);
  3. 确认自定义节点包已安装,且与所选工作流匹配(如OpenShot-ComfyUI缺失会导致 SAM2 / 降噪节点全部校验失败);
  4. 减小批量 / 分块尺寸处理长片段(长视频任务可结合comfy-sam2-target-batch-gb设置调低 SAM2 批处理预算,或缩短片段再跑);
  5. 先用短片段或静态图复测,把问题范围缩小。

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.

项目地址:https://gitcode.com/gh_mirrors/op/openshot-qt
点击查看免费下载

相关推荐

上一篇:PP-StructureV3 实战指南:5 步把复杂 PDF 变成结构化数据
下一篇:IceCubesApp的内存泄漏模拟:单元测试检测方法

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 16:05:35

macOS下OBS录系统声音教程:BlackHole虚拟声卡配置与踩坑指南

直接说结论:macOS 下用 OBS 录系统声音,不像 Windows 那样勾一个“桌面音频”就能搞定。你在 Mac 上回放录屏,大概率会发现画面里视频播得正欢,但声音轨只有麦克风里你自己说话的声音,电脑本身的播放声干干净净地“失踪…

作者头像 李华
网站建设 2026/10/7 15:58:14

YOLOv5 6.0吸烟检测实战:从数据集配置到边缘部署全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/7 15:58:13

LeetCode 64最小路径和:Java动态规划与滚动数组优化精讲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华