[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Kosinkadink--ComfyUI-VideoHelperSuite":3,"tool-Kosinkadink--ComfyUI-VideoHelperSuite":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,2,"2026-04-08T11:23:26",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[43,15,13,14],"语言模型",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":59,"last_commit_at":60,"category_tags":61,"status":17},5646,"opencv","opencv\u002Fopencv","OpenCV 是一个功能强大的开源计算机视觉库，被誉为机器视觉领域的“瑞士军刀”。它主要解决让计算机“看懂”图像和视频的核心难题，提供了从基础的图像读取、色彩转换、边缘检测，到复杂的人脸识别、物体追踪、3D 重建及深度学习模型部署等全方位算法支持。无论是处理静态图片还是分析实时视频流，OpenCV 都能高效完成特征提取与模式识别任务。\n\n这款工具特别适合计算机视觉开发者、人工智能研究人员以及机器人工程师使用。对于希望将视觉感知能力集成到应用中的软件工程师，或是需要快速验证算法原型的学术研究者，OpenCV 都是不可或缺的基础设施。虽然普通用户通常不会直接操作代码，但日常生活中使用的扫码支付、美颜相机和自动驾驶系统，背后往往都有它的身影。\n\nOpenCV 的独特亮点在于其卓越的性能与广泛的兼容性。它采用 C++ 编写以确保高速运算，同时提供 Python、Java 等多种语言接口，极大降低了开发门槛。库中内置了数千种优化算法，并支持跨平台运行，能够无缝对接各类硬件加速器。作为社区驱动的项目，OpenCV 拥有活跃的生态系统和丰富的学习资源，持续推动着视觉技术的前沿发展。",86988,1,"2026-04-08T16:06:22",[14,15],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":32,"env_os":92,"env_gpu":93,"env_ram":92,"env_deps":94,"category_tags":98,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":99,"updated_at":100,"faqs":101,"releases":131},5995,"Kosinkadink\u002FComfyUI-VideoHelperSuite","ComfyUI-VideoHelperSuite","Nodes related to video workflows","ComfyUI-VideoHelperSuite 是专为 ComfyUI 设计的视频工作流增强插件，旨在简化视频与图像序列的导入、处理及导出流程。它有效解决了原生节点在处理视频素材时功能单一、缺乏灵活帧率控制及音频同步困难等痛点，让用户无需编写代码即可构建复杂的视频生成管线。\n\n该工具非常适合使用 ComfyUI 进行 AI 视频创作的设计师、动画师及研究人员，尤其是需要结合 AnimateDiff 等模型制作动态内容的用户。其核心亮点在于提供了高度可定制的 I\u002FO 节点：\"Load Video\"支持强制帧率匹配、智能尺寸调整及分批加载长视频；\"Video Combine\"不仅能将图像序列合成为视频并嵌入音频，还支持“乒乓循环”播放模式以制作无缝循环动画，并允许将完整工作流元数据保存至视频文件中，实现拖拽复用。此外，它还具备实时预览功能，能直观反映参数调整后的效果，大幅提升了视频创作的效率与可控性。","# ComfyUI-VideoHelperSuite\nNodes related to video workflows\n\n## I\u002FO Nodes\n### Load Video\nConverts a video file into a series of images\n- video: The video file to be loaded\n- force_rate: Discards or duplicates frames as needed to hit a target frame rate. Disabled by setting to 0. This can be used to quickly match a suggested frame rate like the 8 fps of AnimateDiff.\n- force_size: Allows for quick resizing to a number of suggested sizes. Several options allow you to set only width or height and determine the other from aspect ratio.\n- frame_load_cap: The maximum number of frames which will be returned. This could also be thought of as the maximum batch size.\n- skip_first_frames: How many frames to skip from the start of the video after adjusting for a forced frame rate. By incrementing this number by the frame_load_cap, you can easily process a longer input video in parts. \n- select_every_nth: Allows for skipping a number of frames without considering the base frame rate or risking frame duplication. Often useful when working with animated gifs\nA path variant of the Load Video node exists that allows loading videos from external paths\n![step](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKosinkadink_ComfyUI-VideoHelperSuite_readme_1d6d92595fcc.png)\n![resize](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKosinkadink_ComfyUI-VideoHelperSuite_readme_a668675384d3.png)\nIf [Advanced Previews](#advanced-previews) is enabled in the options menu of the web ui, the preview will reflect the current settings on the node.\n### Load Image Sequence\nLoads all image files from a subfolder. Options are similar to Load Video.\n- image_load_cap: The maximum number of images which will be returned. This could also be thought of as the maximum batch size.\n- skip_first_images: How many images to skip. By incrementing this number by image_load_cap, you can easily divide a long sequence of images into multiple batches.\n- select_every_nth: Allows for skipping a number of images between every returned frame.\n\nA path variant of Load Image sequence also exists.\n### Video Combine\nCombines a series of images into an output video  \nIf the optional audio input is provided, it will also be combined into the output video\n- frame_rate: How many of the input frames are displayed per second.  A higher frame rate means that the output video plays faster and has less duration. This should usually be kept to 8 for AnimateDiff, or matched to the force_rate of a Load Video node.\n- loop_count: How many additional times the video should repeat\n- filename_prefix: The base file name used for output.\n  - You can save output to a subfolder: `subfolder\u002Fvideo`\n  - Like the builtin Save Image node, you can add timestamps. `%date:yyyy-MM-ddThh:mm:ss%` might become 2023-10-31T6:45:25\n- format: The file format to use. Advanced information on configuring or adding additional video formats can be found in the [Video Formats](#video-formats) section.\n- pingpong: Causes the input to be played back in the reverse to create a clean loop.\n- save_output: Whether the image should be put into the output directory or the temp directory.\nReturns: a `VHS_FILENAMES` which consists of a boolean indicating if save_output is enabled and a list of the full filepaths of all generated outputs in the order created. Accordingly `output[1][-1]` will be the most complete output.\n \nDepending on the format chosen, additional options may become available, including\n- crf: Describes the quality of the output video. A lower number gives a higher quality video and a larger file size, while a higher number gives a lower quality video with a smaller size. Scaling varies by codec, but visually lossless output generally occurs around 20.\n- save_metadata: Includes a copy of the workflow in the output video which can be loaded by dragging and dropping the video, just like with images.\n- pix_fmt: Changes how the pixel data is stored. `yuv420p10le` has higher color quality, but won't work on all devices\n### Load Audio\nProvides a way to load standalone audio files.\n- seek_seconds: An optional start time for the audio file in seconds.\n\n## Latent\u002FImage Nodes\nA number of utility nodes exist for managing latents. For each, there is an equivalent node which works on images.\n### Split Batch\nDivides the latents into two sets. The first `split_index` latents go to output A and the remainder to output B. If less then `split_index` latents are provided as input, all are passed to output A and output B is empty.\n### Merge Batch\nCombines two groups of latents into a single output. The order of the output is the latents in A followed by the latents in B.  \nIf the input groups are not the same size, the node provides options for rescaling the latents before merging.\n### Select Every Nth\nThe first of every `select_every_nth` input is passed and the remainder are discarded\n### Get Count\n### Duplicate Batch\n\n## Video Previews\nLoad Video (Upload), Load Video (Path), Load Images (Upload), Load Images (Path) and Video Combine provide animated previews.  \nNodes with previews provide additional functionality when right clicked\n- Open preview\n- Save preview\n- Pause preview: Can improve performance with very large videos\n- Hide preview: Can improve performance, save space\n- Sync preview: Restarts all previews for side-by-side comparisons\n\n### Advanced Previews\nAdvanced Previews must be manually enabled by clicking the settings gear next to Queue Prompt and checking the box for VHS Advanced Previews.  \nIf enabled, videos which are displayed in the ui will be converted with ffmpeg on request. This has several benefits\n- Previews for Load Video nodes will reflect the settings on the node such as skip_first_frames and frame_load_cap\n  - This makes it easy to select an exact portion of an input video and sync it with outputs\n- It can use substantially less bandwidth if running the server remotely\n- It can greatly improve the browser performance by downsizing videos to the in ui resolution, particularly useful with animated gifs\n- It allows for previews of videos that would not normally be playable in browser.\n- Can be limited to subdirectories of ComyUI if `VHS_STRICT_PATHS` is set as an environment variable.\n\nThis fucntionality is disabled since it comes with several downsides\n- There is a delay before videos show in the browser. This delay can become quite large if the input video is long\n- The preview videos are lower quality (The original can always be viewed with Right Click -> Open preview)\n\n## Video Formats\nThose familiar with ffmpeg are able to add json files to the video_formats folders to add new output types to Video Combine. \nConsider the following example for av1-webm\n```json\n{\n    \"main_pass\":\n    [\n        \"-n\", \"-c:v\", \"libsvtav1\",\n        \"-pix_fmt\", \"yuv420p10le\",\n        \"-crf\", [\"crf\",\"INT\", {\"default\": 23, \"min\": 0, \"max\": 100, \"step\": 1}]\n    ],\n    \"audio_pass\": [\"-c:a\", \"libopus\"],\n     \"extension\": \"webm\",\n     \"environment\": {\"SVT_LOG\": \"1\"}\n}\n```\nMost configuration takes place in `main_pass`, which is a list of arguments that are passed to ffmpeg. \n- `\"-n\"` designates that the command should fail if a file of the same name already exists. This should never happen, but if some bug were to occur, it would ensure other files aren't overwritten.\n- `\"-c:v\", \"libsvtav1\"` designates that the video should be encoded with an av1 codec using the new SVT-AV1 encoder. SVT-AV1 is much faster than libaom-av1, but may not exist in older versions of ffmpeg. Alternatively, av1_nvenc could be used for gpu encoding with newer nvidia cards. \n- `\"-pix_fmt\", \"yuv420p10le\"` designates the standard pixel format with 10-bit color. It's important that some pixel format be specified to ensure a nonconfigurable input pix_fmt isn't used.\n\n`audio pass` contains a list of arguments which are passed to ffmpeg when audio is passed into Video Combine\n\n`extension` designates both the file extension and the container format that is used. If some of the above options are omitted from `main_pass` it can affect what default options are chosen.  \n`environment` can optionally be provided to set environment variables during execution. For av1 it's used to reduce the verbosity of logging so that only major errors are displayed.  \n`input_color_depth` effects the format in which pixels are passed to the ffmpeg subprocess. Current valid options are `8bit` and `16bit`. The later will produce higher quality output, but is experimental.\n\nFields can be exposed in the webui as a widget using a format similar to what is used in the creation of custom nodes. In the above example, the argument for `-crf` will be exposed as a format widget in the webui. Format widgets are a list of up to 3 terms\n- The name of the widget that will be displayed in the web ui\n- Either a primitive such as \"INT\" or \"BOOLEAN\", or a list of string options\n- A dictionary of options\n","# ComfyUI-VideoHelperSuite\n与视频工作流相关的节点\n\n## I\u002FO 节点\n### 加载视频\n将视频文件转换为一系列图像\n- video: 要加载的视频文件\n- force_rate: 根据需要丢弃或重复帧以达到目标帧率。设置为 0 时禁用此功能。这可用于快速匹配建议的帧率，例如 AnimateDiff 的 8 fps。\n- force_size: 允许快速调整到若干建议尺寸。多个选项允许仅设置宽度或高度，并根据宽高比自动确定另一维度。\n- frame_load_cap: 将返回的最大帧数。这也可视为最大批处理大小。\n- skip_first_frames: 在应用强制帧率后，从视频开头跳过多少帧。通过将此值增加 frame_load_cap 的数量，可以轻松地分段处理较长的输入视频。\n- select_every_nth: 允许跳过指定数量的帧，而不考虑基础帧率或导致帧重复。在处理动画 GIF 时通常很有用。\n还存在一个路径版本的“加载视频”节点，可以从外部路径加载视频。\n![step](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKosinkadink_ComfyUI-VideoHelperSuite_readme_1d6d92595fcc.png)\n![resize](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKosinkadink_ComfyUI-VideoHelperSuite_readme_a668675384d3.png)\n如果在 Web UI 的选项菜单中启用了[高级预览](#advanced-previews)，预览将反映节点上的当前设置。\n### 加载图像序列\n从子文件夹中加载所有图像文件。选项与“加载视频”类似。\n- image_load_cap: 将返回的最大图像数。这也可视为最大批处理大小。\n- skip_first_images: 跳过多少张图像。通过将此值增加 image_load_cap 的数量，可以轻松地将长序列的图像分成多个批次。\n- select_every_nth: 允许在每两张返回的图像之间跳过指定数量的图像。\n同样存在“加载图像序列”的路径版本。\n### 视频合并\n将一系列图像合并为输出视频  \n如果提供了可选的音频输入，它也会被合并到输出视频中\n- frame_rate: 每秒显示的输入帧数。较高的帧率意味着输出视频播放得更快，持续时间更短。对于 AnimateDiff，通常应保持为 8，或与“加载视频”节点的 force_rate 匹配。\n- loop_count: 视频应重复播放的次数。\n- filename_prefix: 用于输出的基本文件名。\n  - 可以将输出保存到子文件夹：`subfolder\u002Fvideo`\n  - 类似于内置的“保存图像”节点，可以添加时间戳。`%date:yyyy-MM-ddThh:mm:ss%` 可能会变为 2023-10-31T6:45:25\n- format: 使用的文件格式。有关配置或添加其他视频格式的高级信息，请参阅[视频格式](#video-formats)部分。\n- pingpong: 使输入反向播放，以创建干净的循环。\n- save_output: 是否应将图像保存到输出目录或临时目录。\n返回值：一个 `VHS_FILENAMES`，包含一个布尔值，指示是否启用 save_output，以及按创建顺序排列的所有生成输出的完整文件路径列表。因此，`output[1][-1]` 将是最完整的输出。\n根据所选格式，可能会出现其他选项，包括：\n- crf: 描述输出视频的质量。数字越低，视频质量越高，文件越大；数字越高，视频质量越低，文件越小。具体比例因编解码器而异，但视觉上无损的输出通常在 20 左右。\n- save_metadata: 在输出视频中包含工作流副本，可通过拖放视频加载，就像处理图像一样。\n- pix_fmt: 改变像素数据的存储方式。`yuv420p10le` 具有更高的色彩质量，但并非所有设备都支持。\n### 加载音频\n提供一种加载独立音频文件的方式。\n- seek_seconds: 音频文件的可选起始时间（以秒为单位）。\n\n## 隐变量\u002F图像节点\n存在一些用于管理隐变量的实用节点。每个节点都有一个等效的图像处理节点。\n### 分割批次\n将隐变量分为两组。前 `split_index` 个隐变量进入输出 A，其余进入输出 B。如果输入的隐变量少于 `split_index`，则全部传递到输出 A，输出 B 为空。\n### 合并批次\n将两组隐变量合并为一个输出。输出顺序是先 A 组的隐变量，再 B 组的隐变量。  \n如果输入组的大小不同，该节点提供在合并前缩放隐变量的选项。\n### 每隔 N 个选择\n每 `select_every_nth` 个输入中，只传递第一个，其余丢弃。\n### 获取数量\n### 复制批次\n\n## 视频预览\n“加载视频（上传）”、“加载视频（路径）”、“加载图像（上传）”、“加载图像（路径）”和“视频合并”均提供动画预览。  \n带有预览的节点在右键单击时提供更多功能：\n- 打开预览\n- 保存预览\n- 暂停预览：对于非常大的视频，可以提高性能\n- 隐藏预览：可以提高性能、节省空间\n- 同步预览：重新启动所有预览，以便进行并排比较\n\n### 高级预览\n高级预览必须手动启用，方法是点击队列提示旁边的设置齿轮，并勾选 VHS 高级预览复选框。  \n如果启用，UI 中显示的视频将按需使用 ffmpeg 进行转换。这具有多项优势：\n- “加载视频”节点的预览将反映节点上的设置，如 skip_first_frames 和 frame_load_cap。\n  - 这使得选择输入视频的确切部分并与输出同步变得容易。\n- 如果远程运行服务器，可以显著减少带宽消耗。\n- 通过将视频缩小到 UI 分辨率，可以大大提升浏览器性能，尤其适用于动画 GIF。\n- 允许预览通常无法在浏览器中播放的视频。\n- 如果设置了环境变量 `VHS_STRICT_PATHS`，则可限制为 ComfyUI 的子目录。\n\n不过，由于存在一些缺点，此功能默认处于禁用状态：\n- 视频在浏览器中显示会有延迟。如果输入视频较长，延迟可能会相当大。\n- 预览视频的质量较低（原始视频始终可以通过右键单击 -> 打开预览来查看）。\n\n## 视频格式\n熟悉 FFmpeg 的用户可以将 JSON 文件添加到 `video_formats` 文件夹中，从而为 Video Combine 添加新的输出类型。\n以下以 AV1-WebM 格式为例：\n```json\n{\n    \"main_pass\":\n    [\n        \"-n\", \"-c:v\", \"libsvtav1\",\n        \"-pix_fmt\", \"yuv420p10le\",\n        \"-crf\", [\"crf\",\"INT\", {\"default\": 23, \"min\": 0, \"max\": 100, \"step\": 1}]\n    ],\n    \"audio_pass\": [\"-c:a\", \"libopus\"],\n     \"extension\": \"webm\",\n     \"environment\": {\"SVT_LOG\": \"1\"}\n}\n```\n大部分配置都在 `main_pass` 中进行，它是一个传递给 FFmpeg 的参数列表。\n- `\"-n\"` 表示如果目标文件已存在，则命令应失败。理论上这种情况不应发生，但若出现某种错误，此选项可确保不会覆盖其他文件。\n- `\"-c:v\", \"libsvtav1\"` 指定使用新的 SVT-AV1 编码器对视频进行 AV1 编码。SVT-AV1 的编码速度远快于 libaom-av1，但可能在较旧版本的 FFmpeg 中不存在。此外，对于配备较新 NVIDIA 显卡的设备，也可以使用 av1_nvenc 进行 GPU 编码。\n- `\"-pix_fmt\", \"yuv420p10le\"` 指定采用 10 位色深的标准像素格式。必须明确指定像素格式，以避免使用不可配置的输入像素格式。\n\n`audio_pass` 包含一组参数，这些参数会在音频被传入 Video Combine 时传递给 FFmpeg。\n\n`extension` 既指文件扩展名，也指所使用的容器格式。如果 `main_pass` 中省略了某些选项，可能会影响默认选项的选择。\n\n`environment` 是可选字段，用于在执行过程中设置环境变量。对于 AV1 编码，此字段通常用于降低日志输出的详细程度，仅显示严重错误信息。\n\n`input_color_depth` 决定像素以何种格式传递给 FFmpeg 子进程。当前有效的选项是 `8bit` 和 `16bit`。后者虽然能生成更高品质的输出，但目前仍处于实验阶段。\n\n字段可以通过类似于创建自定义节点的格式，在 Web UI 中以小部件的形式暴露出来。在上述示例中，`-crf` 参数将在 Web UI 中以格式小部件的形式呈现。格式小部件由最多三个部分组成：\n- 在 Web UI 中显示的小部件名称\n- 原始数据类型，如 “INT” 或 “BOOLEAN”，或字符串选项列表\n- 一个包含选项的字典","# ComfyUI-VideoHelperSuite 快速上手指南\n\nComfyUI-VideoHelperSuite (VHS) 是 ComfyUI 中处理视频工作流的核心插件，提供视频加载、帧处理、音频合并及视频导出等功能。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Windows, Linux, macOS\n- **核心依赖**: 已安装并配置好的 [ComfyUI](https:\u002F\u002Fgithub.com\u002Fcomfyanonymous\u002FComfyUI)\n- **外部依赖**: \n  - **FFmpeg**: 必须安装并添加到系统环境变量 PATH 中，用于视频编码、解码及预览生成。\n    - *Windows 用户*: 推荐下载静态编译包，将 `bin` 目录路径加入环境变量。\n    - *Linux 用户*: `sudo apt install ffmpeg` 或 `sudo yum install ffmpeg`\n    - *macOS 用户*: `brew install ffmpeg`\n  - **Python**: 与 ComfyUI 运行环境一致（通常建议 Python 3.10+）\n\n### 前置检查\n确保在终端输入 `ffmpeg -version` 能正常输出版本信息，否则插件的视频合成与高级预览功能将无法使用。\n\n## 安装步骤\n\n### 方法一：通过 ComfyUI Manager 安装（推荐）\n如果你已安装 ComfyUI Manager：\n1. 启动 ComfyUI，点击右侧菜单的 **Manager** 按钮。\n2. 选择 **Install Custom Nodes**。\n3. 搜索 `VideoHelperSuite`。\n4. 点击 **Install**，安装完成后重启 ComfyUI。\n\n### 方法二：手动源码安装\n1. 进入 ComfyUI 的自定义节点目录：\n   ```bash\n   cd ComfyUI\u002Fcustom_nodes\n   ```\n2. 克隆仓库（国内用户如遇连接问题，可使用镜像源或代理）：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite.git\n   ```\n   *备选镜像（若主库访问慢）*:\n   ```bash\n   git clone https:\u002F\u002Fghproxy.com\u002Fhttps:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite.git\n   ```\n3. 安装 Python 依赖：\n   ```bash\n   cd ComfyUI-VideoHelperSuite\n   pip install -r requirements.txt\n   ```\n4. 重启 ComfyUI。\n\n## 基本使用\n\n以下是一个最简单的“视频转图片处理再合成视频”的工作流示例：\n\n### 1. 加载视频\n添加节点 **`Load Video (Upload)`** 或 **`Load Video (Path)`**。\n- **video**: 上传或填入本地视频路径。\n- **force_rate**: 设置目标帧率（例如 AnimateDiff 常用 `8`），设为 `0` 则保持原帧率。\n- **frame_load_cap**: 限制加载的最大帧数（即批次大小），防止显存溢出。\n- **输出**: 该节点会输出 `IMAGE`（图像帧）和 `FRAME_RATE`（帧率数据）。\n\n### 2. 处理图像（可选）\n将 `Load Video` 输出的 `IMAGE` 连接到你的生成模型（如 KSampler）或图像处理节点。\n- 若需调整批次，可使用 **`Split Batch`** 分割潜空间\u002F图像，或使用 **`Merge Batch`** 合并。\n\n### 3. 合成视频\n添加节点 **`Video Combine`**。\n- **images**: 连接处理后的图像序列。\n- **frame_rate**: 连接 `Load Video` 输出的 `FRAME_RATE`，或手动输入（需与加载时一致以保证速度正常）。\n- **audio**: （可选）连接 **`Load Audio`** 节点的输出以保留原声或添加新音效。\n- **format**: 选择输出格式（默认通常为 `h264-mp4`）。\n- **filename_prefix**: 设置输出文件名，支持子文件夹（如 `output\u002Fmy_video`）。\n- **save_output**: 勾选后将视频保存至 `output` 目录，否则仅保存在临时目录。\n\n### 4. 高级预览技巧\n- **实时预览**: 连接后节点窗口会自动播放视频预览。\n- **开启高级预览**: 点击界面右上角齿轮图标 (Settings)，勾选 **`VHS Advanced Previews`**。\n  - *作用*: 预览将根据节点的 `skip_first_frames` 或 `frame_load_cap` 设置实时裁剪显示，便于精确对齐片段，且能降低远程访问带宽消耗。\n- **右键菜单**: 右键点击视频预览窗口可选择 `Pause preview`（暂停以提升性能）或 `Save preview`（保存当前预览）。\n\n### 5. 执行\n点击 **Queue Prompt**，生成的视频将出现在 `ComfyUI\u002Foutput` 目录下。","一位独立动画师正尝试将一段 30 秒的实拍参考视频转化为风格化的 AI 动画，以便在 ComfyUI 中结合 AnimateDiff 模型进行创作。\n\n### 没有 ComfyUI-VideoHelperSuite 时\n- **预处理繁琐**：必须先用外部软件（如 FFmpeg 或 PR）将视频手动拆解为数千张序列帧图片，才能导入工作流，耗时且占用大量磁盘空间。\n- **帧率匹配困难**：实拍视频通常是 24 或 30fps，而 AnimateDiff 最佳效果需 8fps，人工抽帧极易导致节奏错乱或画面卡顿。\n- **分辨率不统一**：源视频尺寸若不符合模型要求，需单独编写脚本批量缩放，否则会导致生成报错或画面变形。\n- **音画分离痛苦**：生成后的图像序列无法直接还原为带原声的视频，需再次借助第三方工具手动合成，严重打断创作心流。\n\n### 使用 ComfyUI-VideoHelperSuite 后\n- **一键加载视频**：通过 `Load Video` 节点直接读取 MP4 文件，自动在后台将其转换为图像张量流，彻底省去手动拆帧步骤。\n- **智能帧率调整**：利用 `force_rate` 参数将输入视频自动重采样至 8fps，完美契合 AnimateDiff 需求，确保动作流畅自然。\n- **动态尺寸适配**：设置 `force_size` 即可在加载时自动将画面调整至 512x768 等标准分辨率，无需额外预处理。\n- **无损音画合成**：工作流末尾使用 `Video Combine` 节点，既能将生成序列打包成视频，又能自动挂载原始音频，实现“输入视频 - 输出视频”的闭环。\n\nComfyUI-VideoHelperSuite 将原本割裂的视频预处理与后期合成步骤无缝融入节点工作流，让视频生成创作真正实现了端到端的高效自动化。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKosinkadink_ComfyUI-VideoHelperSuite_1d6d9259.gif","Kosinkadink","Jedrzej Kosinski","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FKosinkadink_144e02ac.png",null,"https:\u002F\u002Fjedkos.com","https:\u002F\u002Fgithub.com\u002FKosinkadink",[80,84],{"name":81,"color":82,"percentage":83},"Python","#3572A5",62.4,{"name":85,"color":86,"percentage":87},"JavaScript","#f1e05a",37.6,1579,306,"2026-04-09T11:00:55","GPL-3.0","未说明","未说明 (依赖 FFmpeg，部分编码格式如 av1_nvenc 可能需要 NVIDIA GPU)",{"notes":95,"python":92,"dependencies":96},"该工具是 ComfyUI 的插件节点包，主要用于视频工作流。核心外部依赖为 FFmpeg，用于视频加载、预览生成及视频合成。支持通过 JSON 配置文件扩展输出格式（如 AV1）。若启用‘高级预览’功能，会在请求时调用 FFmpeg 转换视频以适配浏览器播放。未明确提及特定的 Python 版本、PyTorch 版本或显存需求，通常跟随主程序 ComfyUI 的环境要求。",[97],"ffmpeg",[52,15],"2026-03-27T02:49:30.150509","2026-04-10T06:34:06.808323",[102,107,112,117,122,127],{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},27177,"连接音频输入时，Video Combine 节点陷入无限循环或卡死怎么办？","这通常是由于 ffmpeg 7.0 版本中 `apad` 和 `shortest` 参数组合使用的 bug 导致的。维护者已发布修复补丁，请更新 ComfyUI-VideoHelperSuite 到最新版本。如果问题依旧，可以尝试设置音频的最大填充长度（maximum pad length）作为临时解决方案。若无音频输入却报错，属于正常提示，不影响无音频视频的合成。","https:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite\u002Fissues\u002F213",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},27178,"更新插件后出现内存占用过高、视频无法播放或节点报错如何解决？","如果是最近更新后出现的问题，维护者通常会暂时回滚代码以恢复稳定性。请尝试拉取（pull）最新的代码更改，或者在 ComfyUI Manager 中重新安装\u002F更新该插件。如果问题持续，建议检查是否因环境变更（如切换到 Conda）导致的路径配置错误，并尝试重启 ComfyUI。","https:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite\u002Fissues\u002F29",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},27179,"遇到 'VALIDATE_INPUTS() got an unexpected keyword argument' 或 'name is not defined' 验证错误怎么办？","这通常是由插件版本不匹配或工作流中包含过时的节点定义引起的。解决方法包括：1. 通过 ComfyUI Manager 完全卸载并重新安装 ComfyUI-VideoHelperSuite；2. 删除工作流中旧的 VideoCombine 节点并手动重新添加新版本节点；3. 在 WebUI 右侧的设置按钮中，尝试开启 \"Advanced Previews\"（高级预览）选项，这有助于修复部分输出预览和验证问题。","https:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite\u002Fissues\u002F114",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},27180,"刷新页面（F5）后，Load Video (Upload) 节点变得透明且无法交互怎么办？","这是一个已知的前端显示 Bug。如果遇到节点变透明且无法移动或右键点击的情况，请尝试再次刷新页面通常可以恢复。如果节点永久卡死，可能需要重置工作流视图或清除浏览器缓存。维护者已在后续版本中针对此类 JS 清理问题进行修复，请确保插件更新至最新版。","https:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite\u002Fissues\u002F43",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},27181,"KSampler 报错提示 'Control type ControlNet may not support required features' 是怎么回事？","该警告表明当前的 ControlNet 实现可能不支持滑动上下文窗口（sliding context window）功能。建议安装并使用 Kosinkadink 开发的 'Advanced-ControlNet' 节点包中的 Control 对象来替代原生或其他版本的 ControlNet 节点，以获得更好的兼容性和功能支持。同时，确保 VideoHelperSuite 已更新到稳定版本。","https:\u002F\u002Fgithub.com\u002FKosinkadink\u002FComfyUI-VideoHelperSuite\u002Fissues\u002F32",{"id":128,"question_zh":129,"answer_zh":130,"source_url":121},27182,"使用 View History 查看历史工作流时，Video Combine 节点显示的视频内容不正确怎么办？","这是一个已知的显示逻辑问题，节点可能会错误地显示旧工作流的视频而非当前执行结果。目前建议在查看历史记录后，重新执行一次工作流以确保节点加载正确的输出文件。维护者已注意到此问题并在后续更新中进行了优化，请保持插件为最新版本。",[]]