ComfyUI_toyxyz_test_nodes 插件完全保姆级教程
1. 插件简介
插件原地址: https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes
ComfyUI_toyxyz_test_nodes 是一个超级实用的"实时捕获"插件包!想象一下,你可以把摄像头、屏幕、窗口的画面实时传送到 ComfyUI 里进行处理,就像给 ComfyUI 装了一双"眼睛",能看到现实世界并立即进行 AI 处理。
这个插件能给我们带来什么效果:
- 📹 实时摄像头捕获:就像给 ComfyUI 装了个摄像头,能实时看到你的样子并处理
- 🖥️ 屏幕截图功能:能抓取电脑屏幕或特定窗口的画面
- 💾 智能保存系统:可以把处理好的图片按顺序保存,不会覆盖
- ⏱️ 延时控制器:像红绿灯一样,控制处理速度
- 🎭 蒙版区域工具:能创建特定区域的"模板",用于局部处理
- 📝 随机文本生成器:从文件中随机选择文字内容
- 🎨 图片处理工具:包括去噪、深度转法线贴图等专业功能
- 📦 3D模型导出:能把图片转换成3D模型文件
简单来说,这就像给你的 ComfyUI 装了一整套"多媒体工作站",能实时捕获、处理、保存各种内容。
2. 如何安装
方法一:通过 ComfyUI Manager 安装(推荐)
- 先安装 ComfyUI Manager
- 在 ComfyUI 界面点击 Manager 按钮
- 选择 "Install Custom Node"
- 搜索
ComfyUI_toyxyz_test_nodes - 点击安装,重启 ComfyUI 即可
方法二:手动安装
- 打开终端/命令行
- 进入 ComfyUI 的 custom_nodes 文件夹
- 执行命令:
git clone https://github.com/toyxyz/ComfyUI_toyxyz_test_nodes.git - 进入插件文件夹:
cd ComfyUI_toyxyz_test_nodes - 安装依赖:
pip install -r requirements.txt - 运行摄像头设置:进入
CaptureCam文件夹,运行setup.bat - 重启 ComfyUI
安装成功标志: 在节点菜单的 "ToyxyzTestNodes" 分类下会出现多个节点。
3. 节点详细解析
本插件总共包含 12 个节点,本教程将逐一详细解析每个节点的功能和参数。
3.1 CaptureWebcam 节点 - 直接摄像头捕获器
这个节点是干嘛的?
这就像一个"即时拍照机",能直接从你的摄像头抓取画面。想象你在用手机拍照,但这个是在 ComfyUI 里直接"拍照",然后立即用于 AI 处理。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| select_webcam | select_webcam | 整数 | 0 | 就像选择哪个摄像头,0是第一个,1是第二个,以此类推 | 选择系统中的摄像头设备索引 | 0(内置摄像头), 1(外接摄像头), 2(第三个摄像头) |
3.2 LoadWebcamImage 节点 - 摄像头图片加载器
这个节点是干嘛的?
这就像一个"图片读取器",专门读取摄像头应用保存的图片文件。需要先运行摄像头应用程序,然后这个节点就能读取实时保存的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image_path | image_path | 字符串 | 默认路径 | 就像告诉节点去哪里找图片文件,类似文件夹地址 | 指定要加载的图像文件路径 | './ComfyUI/custom_nodes/ComfyUI_toyxyz_test_nodes/CaptureCam/captured_frames/capture.jpg' |
3.3 SaveImagetoPath 节点 - 图片路径保存器
这个节点是干嘛的?
这就像一个"智能相册管理器",能把处理好的图片保存到指定位置,还能选择不同格式和质量,甚至可以按顺序编号避免覆盖。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| path | path | 字符串 | 自定义路径 | 就像选择保存照片的文件夹,告诉电脑把图片存到哪里 | 指定图像保存的完整文件路径 | './ComfyUI/output/my_images/result.jpg' |
| image | image | 图片输入 | 连接其他节点 | 就像要保存的照片,从其他节点传过来的图片 | 接收来自其他节点的图像数据 | 连接生成图片的节点 |
| save_sequence | save_sequence | 下拉选择 | false | 就像"防覆盖开关",开启后会自动编号,不会覆盖旧图片 | 是否启用序列保存模式,避免文件覆盖 | true(自动编号), false(覆盖保存) |
| image_format | image_format | 下拉选择 | .jpg | 就像选择照片格式,JPG小但质量略低,PNG大但质量高 | 选择图像保存的文件格式 | .jpg(小文件), .png(高质量), .bmp(无压缩) |
| jpg_quality | jpg_quality | 整数 | 70 | 就像调节照片清晰度,数字越大越清晰但文件越大 | JPEG格式的压缩质量设置 | 50(小文件), 70(平衡), 90(高质量) |
| png_compression | png_compression | 整数 | 5 | 就像调节PNG压缩程度,数字越大压缩越多但处理越慢 | PNG格式的压缩级别设置 | 1(快速), 5(平衡), 9(最小文件) |
3.4 LatentDelay 节点 - 延时控制器
这个节点是干嘛的?
这就像一个"红绿灯"或"节拍器",能控制图片处理的速度。当你想让 ComfyUI 慢一点处理,给其他程序留时间时,这个节点就很有用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| latent | latent | 潜在空间输入 | 连接其他节点 | 就像传送带上的"半成品",需要处理的中间数据 | 接收来自其他节点的潜在空间数据 | 连接KSampler或VAE节点 |
| delaytime | delaytime | 小数 | 0.2 | 就像设置"等待时间",单位是秒,0.2就是等待0.2秒 | 设置延迟时间,单位为秒 | 0.1(快速), 0.2(平衡), 0.5(慢速) |
3.5 ImageResize_Padding 节点 - 智能图片缩放器
这个节点是干嘛的?
这就像一个"智能相框",能把图片调整到指定尺寸,还能保持比例不变形,空出来的地方用你选择的颜色填充。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片输入 | 连接其他节点 | 就像要调整尺寸的原始照片 | 接收来自其他节点的图像数据 | 连接任何生成图片的节点 |
| width | width | 整数 | 512 | 就像设置相框的宽度,单位是像素点 | 设置输出图像的宽度 | 512(标准), 1024(高清), 2048(超高清) |
| height | height | 整数 | 512 | 就像设置相框的高度,单位是像素点 | 设置输出图像的高度 | 512(标准), 1024(高清), 2048(超高清) |
| interpolation | interpolation | 下拉选择 | bilinear | 就像选择"缩放方式",不同方式效果略有差异 | 图像缩放时使用的插值算法 | bilinear(平滑), nearest(像素化), lanczos(高质量) |
| padding | padding | 布尔值 | True | 就像"保持比例开关",开启后图片不会变形 | 是否启用填充模式保持宽高比 | True(不变形), False(可能变形) |
| Red | Red | 小数 | 0 | 就像调节填充区域的红色成分,0是没有红色,1是最红 | 填充区域的红色通道值 | 0(无红色), 0.5(中等), 1(最红) |
| Green | Green | 小数 | 0 | 就像调节填充区域的绿色成分,0是没有绿色,1是最绿 | 填充区域的绿色通道值 | 0(无绿色), 0.5(中等), 1(最绿) |
| Blue | Blue | 小数 | 0 | 就像调节填充区域的蓝色成分,0是没有蓝色,1是最蓝 | 填充区域的蓝色通道值 | 0(无蓝色), 0.5(中等), 1(最蓝) |
3.6 Direct_screenCap 节点 - 直接屏幕捕获器
这个节点是干嘛的?
这就像一个"智能截图工具",能抓取电脑屏幕的任意区域,或者特定窗口的内容,甚至可以连续抓取多张形成动画效果。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| x | x | 整数 | 0 | 就像设置截图区域的"起始横坐标",从屏幕左边开始数 | 截图区域左上角的X坐标 | 0(屏幕最左), 100(向右100像素) |
| y | y | 整数 | 0 | 就像设置截图区域的"起始纵坐标",从屏幕顶部开始数 | 截图区域左上角的Y坐标 | 0(屏幕最上), 100(向下100像素) |
| width | width | 整数 | 512 | 就像设置截图区域的宽度,决定抓取多宽的区域 | 截图区域的宽度 | 512(标准), 1920(全屏宽度) |
| height | height | 整数 | 512 | 就像设置截图区域的高度,决定抓取多高的区域 | 截图区域的高度 | 512(标准), 1080(全屏高度) |
| num_frames | num_frames | 整数 | 1 | 就像设置"连拍张数",1张是单张截图,多张可以做动画 | 连续捕获的帧数 | 1(单张), 10(短动画), 30(长动画) |
| delay | delay | 小数 | 0.1 | 就像设置连拍间隔时间,单位是秒 | 连续捕获时每帧之间的延迟时间 | 0.1(快速), 0.5(中等), 1.0(慢速) |
| target_window | target_window | 字符串 | capture | 就像指定要截图的窗口名称,比如"记事本"、"浏览器" | 目标窗口的标题名称 | "Notepad"(记事本), "Chrome"(浏览器) |
| capture_mode | capture_mode | 下拉选择 | Default | 就像选择截图模式,默认是屏幕区域,窗口是整个窗口 | 截图捕获的模式选择 | Default(屏幕区域), window(整个窗口), window_crop(窗口裁剪) |
3.7 Depth_to_normal 节点 - 深度转法线贴图器
这个节点是干嘛的?
这就像一个"3D效果转换器",能把深度图(黑白的距离图)转换成法线贴图(彩色的立体效果图),让平面图片看起来有立体感。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片输入 | 连接其他节点 | 就像要转换的深度图,通常是黑白图片 | 接收深度图像数据 | 连接DepthAnything或其他深度估计节点 |
| depth_min | depth_min | 小数 | 0 | 就像设置"最近距离",比这个值更近的都当作0处理 | 深度图中的最小深度阈值 | 0(不过滤), 0.1(过滤很近的), 0.5(过滤较近的) |
| blue_depth | blue_depth | 小数 | 0 | 就像调节"立体感强度",数字越小立体感越强 | 调整法线贴图蓝色通道的深度强度 | 0(最强立体感), 0.5(中等), 1(最弱立体感) |
| sobel_ratio | sobel_ratio | 小数 | 0 | 就像调节"边缘锐化程度",让立体效果更准确 | Sobel边缘检测与梯度计算的混合比例 | 0(柔和), 0.2(平衡), 0.5(锐利) |
| sobel_ksize | sobel_ksize | 整数 | 1 | 就像设置"边缘检测范围",数字越大检测范围越广 | Sobel算子的核大小 | 1(精细), 3(中等), 5(粗糙) |
3.8 Remove_noise 节点 - 图片去噪器
这个节点是干嘛的?
这就像一个"图片清洁器",能去除图片中的噪点和杂质,让图片看起来更干净清晰,特别适合清理法线贴图。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片输入 | 连接其他节点 | 就像要清理的脏图片 | 接收需要去噪的图像数据 | 连接任何有噪点的图片节点 |
| guided_first | guided_first | 布尔值 | True | 就像选择"清理顺序",是否先用精细清理再用快速清理 | 是否先应用引导滤波再应用双边滤波 | True(先精细), False(先快速) |
| bilateral_loop | bilateral_loop | 整数 | 1 | 就像设置"快速清理次数",0是不用,数字越大清理越彻底 | 双边滤波的应用次数 | 0(不使用), 1(轻度), 3(中度), 5(重度) |
| d | d | 整数 | 15 | 就像设置"清理范围大小",数字越大影响范围越广 | 双边滤波的邻域直径 | 9(小范围), 15(中等), 25(大范围) |
| sigma_color | sigma_color | 整数 | 45 | 就像设置"颜色敏感度",数字越大对颜色差异越不敏感 | 双边滤波的颜色空间标准差 | 25(敏感), 45(中等), 80(不敏感) |
| sigma_space | sigma_space | 整数 | 45 | 就像设置"空间敏感度",数字越大对距离差异越不敏感 | 双边滤波的坐标空间标准差 | 25(敏感), 45(中等), 80(不敏感) |
| guided_loop | guided_loop | 整数 | 4 | 就像设置"精细清理次数",0是不用,数字越大清理越细致 | 引导滤波的应用次数 | 0(不使用), 2(轻度), 4(中度), 8(重度) |
| radius | radius | 整数 | 4 | 就像设置"精细清理范围",数字越大影响范围越广 | 引导滤波的半径参数 | 2(小范围), 4(中等), 8(大范围) |
| eps | eps | 整数 | 16 | 就像设置"清理强度",数字越大清理越温和 | 引导滤波的正则化参数 | 4(强力), 16(中等), 64(温和) |
3.9 Export_glb 节点 - 3D模型导出器
这个节点是干嘛的?
这就像一个"3D打印准备器",能把你的图片、法线贴图、透明蒙版组合成一个3D模型文件,可以在3D软件中查看或用于游戏开发。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | 图片输入 | 连接其他节点 | 就像3D模型的"贴纸",决定模型表面的颜色和图案 | 作为3D模型基础颜色贴图的图像 | 连接生成的彩色图片节点 |
| normal | normal | 图片输入 | 连接其他节点 | 就像3D模型的"凹凸贴图",让平面看起来有立体感 | 作为3D模型法线贴图的图像 | 连接Depth_to_normal节点输出 |
| alpha | alpha | 蒙版输入 | 连接其他节点 | 就像3D模型的"透明模板",决定哪些地方是透明的 | 作为3D模型透明度通道的蒙版 | 连接抠图节点的蒙版输出 |
| roughness | roughness | 小数 | 1.0 | 就像设置表面"粗糙度",0是镜面光滑,1是完全粗糙 | 3D材质的粗糙度参数 | 0.0(镜面), 0.5(半光泽), 1.0(完全粗糙) |
| metallic | metallic | 小数 | 0.0 | 就像设置"金属感",0是非金属,1是纯金属 | 3D材质的金属度参数 | 0.0(非金属), 0.5(半金属), 1.0(纯金属) |
| path | path | 字符串 | 默认路径 | 就像选择3D文件的保存位置和名称 | 3D模型文件的保存路径 | './ComfyUI/output/my_model' |
3.10 Load_Random_Text_From_File 节点 - 随机文本加载器
这个节点是干嘛的?
这就像一个"智能抽签器",能从文本文件中随机选择内容,或者按顺序读取,还能编辑和过滤文本,非常适合随机生成提示词。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| file_path | file_path | 字符串 | 空 | 就像告诉节点去哪里找文本文件,类似文件夹地址 | 文本文件或文件夹的路径 | './prompts/characters.txt' |
| seed | seed | 整数 | 0 | 就像"抽签的种子",相同数字会抽到相同内容 | 随机数生成的种子值 | 0, 123, 999(任意数字) |
| edit_text | edit_text | 布尔值 | True | 就像"文本美化开关",会把下划线变成空格,整理括号 | 是否对文本进行格式化处理 | True(自动整理), False(保持原样) |
| get_random_line | get_random_line | 布尔值 | True | 就像"随机模式开关",开启随机选择,关闭读取全部 | 是否随机选择文本行 | True(随机选择), False(读取全部) |
| get_random_txt_from_path | get_random_txt_from_path | 布尔值 | False | 就像"文件夹随机开关",从文件夹中随机选择一个文件 | 是否从路径中随机选择文本文件 | True(随机文件), False(指定文件) |
| strength | strength | 小数 | 0.0 | 就像"强度调节器",给文本加权重,影响AI生成效果 | 文本提示词的权重强度 | 0.0(正常), 1.2(加强), -0.5(减弱) |
| ban_tag | ban_tag | 字符串 | 空 | 就像"黑名单",列出不想要的词汇,会自动删除 | 需要从文本中排除的标签 | 'nsfw, violence'(排除不当内容) |
| use_index | use_index | 布尔值 | False | 就像"指定行模式",不随机而是选择特定行号的内容 | 是否使用索引选择特定行 | True(指定行), False(随机或全部) |
| index | index | 整数 | 0 | 就像"行号选择器",指定要读取第几行内容 | 要选择的文本行索引 | 0(第一行), 5(第六行), 10(第十一行) |
| text | text | 字符串 | 可选 | 就像"备用文本框",可以直接输入文字而不用文件 | 可选的直接文本输入 | 直接输入提示词内容 |
3.11 VisualAreaMask 节点 - 可视化区域蒙版器
这个节点是干嘛的?
这就像一个"智能画板",能在画布上创建多个矩形区域,每个区域都有自己的强度设置,生成对应的蒙版,非常适合局部处理和区域提示。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image_width | image_width | 整数 | 1024 | 就像设置画布的宽度,决定蒙版的宽度尺寸 | 生成蒙版的图像宽度 | 512(标准), 1024(高清), 2048(超高清) |
| image_height | image_height | 整数 | 1024 | 就像设置画布的高度,决定蒙版的高度尺寸 | 生成蒙版的图像高度 | 512(标准), 1024(高清), 2048(超高清) |
| area_number | area_number | 整数 | 2 | 就像设置"区域数量",决定要创建多少个不同的区域 | 要创建的蒙版区域数量 | 2(两个区域), 5(五个区域), 12(最多十二个) |
注意: 这个节点还有一个可视化界面,可以直接在画布上拖拽调整区域位置和大小,非常直观易用。
4. 使用技巧和建议
4.1 新手入门建议
- 先从简单节点开始:建议从 LoadWebcamImage 或 Direct_screenCap 开始学习
- 配置摄像头应用:使用摄像头相关功能前,记得运行 CaptureCam 文件夹中的设置程序
- 合理设置路径:保存路径要确保文件夹存在,避免保存失败
4.2 实时处理技巧
- 使用延时控制:LatentDelay 节点可以控制处理速度,避免系统过载
- 选择合适格式:实时处理建议用 JPG 格式,文件小处理快
- 调节质量参数:根据需要平衡质量和速度
4.3 高级应用技巧
- 组合使用节点:可以把屏幕捕获、图片处理、保存组合成完整工作流
- 利用随机文本:Load_Random_Text_From_File 可以创建变化丰富的提示词
- 3D模型制作:结合深度估计、法线转换、3D导出可以制作简单3D模型
4.4 性能优化建议
- 控制捕获频率:不要设置过高的捕获频率,避免系统卡顿
- 合理使用去噪:Remove_noise 节点参数不要设置过高,影响性能
- 批量处理设置:使用序列保存时注意磁盘空间
5. 常见问题解答
Q1: 摄像头节点无法工作怎么办?
A:
- 检查是否运行了 CaptureCam/setup.bat
- 确认摄像头没有被其他程序占用
- 尝试不同的 select_webcam 数值
Q2: 屏幕捕获显示黑屏怎么办?
A:
- 检查目标窗口名称是否正确
- 尝试使用 Default 模式而不是 window 模式
- 确认窗口没有被其他窗口遮挡
Q3: 保存的图片找不到怎么办?
A:
- 检查保存路径是否正确
- 确认文件夹是否存在
- 查看是否有权限问题
Q4: 随机文本节点读取失败怎么办?
A:
- 检查文件路径是否正确
- 确认文本文件编码是 UTF-8
- 检查文件是否被其他程序占用
Q5: 3D模型导出失败怎么办?
A:
- 确认所有输入图片尺寸一致
- 检查保存路径是否有写入权限
- 确认安装了必要的依赖库
6. 实际应用场景
6.1 实时AI绘画
- 摄像头捕获人像 → AI处理 → 实时显示效果
- 适合直播、演示、互动应用
6.2 屏幕内容处理
- 捕获游戏画面 → AI增强 → 保存高质量截图
- 适合游戏录制、教程制作
6.3 批量图片处理
- 随机文本生成 → AI绘画 → 自动保存
- 适合大量素材生成
6.4 3D内容制作
- 图片 → 深度估计 → 法线贴图 → 3D模型
- 适合游戏开发、3D打印
7. 总结
ComfyUI_toyxyz_test_nodes 插件是一个功能丰富的多媒体处理工具集,包含了 12个实用节点:
- CaptureWebcam - 直接摄像头捕获器
- LoadWebcamImage - 摄像头图片加载器
- SaveImagetoPath - 图片路径保存器
- LatentDelay - 延时控制器
- ImageResize_Padding - 智能图片缩放器
- Direct_screenCap - 直接屏幕捕获器
- Depth_to_normal - 深度转法线贴图器
- Remove_noise - 图片去噪器
- Export_glb - 3D模型导出器
- Load_Random_Text_From_File - 随机文本加载器
- VisualAreaMask - 可视化区域蒙版器
- 前端可视化界面 - 提供直观的区域编辑功能
本教程已完整覆盖所有 12 个节点,每个节点的所有参数都进行了详细解释,确保零基础用户也能轻松上手!
这个插件特别适合需要实时处理、批量操作、多媒体内容创作的用户。无论是个人创作还是专业开发,都能找到合适的应用场景。记住,使用前要正确配置摄像头应用,并根据自己的需求合理调整各项参数!