Go to file
杨平 64cb10c369 新增通用文件上传节点 2025-09-12 18:55:30 +08:00
download ADD 增加人脸提取节点 2025-02-18 17:06:49 +08:00
ext 新增通用文件上传节点 2025-09-12 18:55:30 +08:00
model ADD 增加人脸提取节点 2025-02-18 17:06:49 +08:00
nodes 新增通用文件上传节点 2025-09-12 18:55:30 +08:00
utils 新增通用文件上传节点 2025-09-12 18:55:30 +08:00
.gitignore llm节点支持链接分析 2025-09-07 11:55:09 +08:00
Readme.md PERF 完善文档 2025-07-31 16:37:38 +08:00
__init__.py 新增hedra对嘴型节点 2025-09-09 19:54:34 +08:00
embedded_install.bat ADD 增加人脸提取节点 2025-02-18 17:06:49 +08:00
install.bat ADD 增加人脸提取节点 2025-02-18 17:06:49 +08:00
install.sh ADD 增加人脸提取节点 2025-02-18 17:06:49 +08:00
requirements.txt llm节点支持链接分析 2025-09-07 11:55:09 +08:00

Readme.md

ComfyUI-CustomNode 项目文档

一、项目概述

ComfyUI-CustomNode 是一个为 ComfyUI 定制的自定义节点集合项目提供了丰富的功能节点涵盖文本处理、图像和视频处理、LLM 调用、对象存储操作等多个领域,方便用户在 ComfyUI 中进行多样化的任务处理。

本地使用请下载config.yaml到custom_nodes/ComfyUI-CustomNode目录

二、项目结构

ComfyUI-CustomNode/
├── download/                   # 下载文件目录
├── ext/                        # 扩展文件目录
│   ├── pyproject.toml          # 项目构建和依赖配置
│   ├── comfyui_modal_deploy.py # Comfy GPU服务器部署脚本
│   ├── comfyui_modal_deploy_4ui.py # Comfy批量CPU服务器部署脚本
│   └── nodes_bfl.py            # 用于替换comfy内置api节点的代码
├── model/                      # 模型目录
├── nodes/                      # 节点代码目录
│   ├── image_face_nodes.py     # 面部处理节点
│   ├── image_gesture_nodes.py  # 姿态处理节点
│   ├── image_modal_nodes.py    # Modal在线图像节点
│   ├── image_nodes.py          # 图像节点
│   ├── llm_nodes.py            # LLM 调用节点
│   ├── object_storage_nodes.py # 对象存储节点
│   ├── text_nodes.py           # 文本处理节点
│   ├── util_nodes.py           # 工具节点
│   ├── video_lipsync_nodes.py  # 视频口型同步节点
│   └── video_nodes.py          # 视频处理节点
├── utils/                      # 工具函数目录
│   ├── model_module.py         # 模型定义
│   ├── model_utils.py          # 模型工具
│   ├── face_occu_detect.py     # 面部遮挡识别工具
│   └── task_table.py           # Task表定义--与DB持久化节点合用
├── __init__.py                 # 定义节点映射
├── .gitignore                  # Git 忽略文件配置
├── install.sh                  # Linux 安装脚本
├── install.bat                 # Windows 安装脚本
├── embedded_install.bat        # 嵌入式 Windows 安装脚本
├── Readme.md                   # 项目文档
└── requirements.txt            # 项目依赖文件

三、用户手册

1. 环境准备

确保你已经安装了 Python 3.10 或更高版本。

source venv/bin/activate  # 对于 Windows 用户使用 `venv\Scripts\activate`
pip install -r requirements.txt

2. 运行项目

将项目文件夹放置在 ComfyUI 的 custom_nodes 目录下,启动 ComfyUI 即可在节点列表中看到自定义节点。

3. 节点使用

在 ComfyUI 界面中,根据需要选择相应的节点,配置节点的输入参数,然后连接节点并运行工作流。

四、节点介绍

常用节点

  • LLMChatMultiModalImageTensor:多模态 LLM 调用,传入图片张量。
    • 输入LLM 提供商、提示词、图片张量、温度、最大令牌数、超时时间
    • 输出LLM 输出结果
    • 用途:结合图片张量与 LLM 进行交互
  • JMCustom即梦自定义Prompt生视频
    • 输入参考图、Prompt、视频长度
    • 输出:生成视频路径
    • 用途自定义Prompt视频时长生成视频
  • RandomLineSelector:从多行文本中随机选择一行。
    • 输入:多行文本、随机种子
    • 输出:随机选择的一行文本
    • 用途:随机选取文本中的一行
  • LoadImg:从网络/本地加载图片(网络图片优先)。
    • 输入:图片 URL、选择本地图片
    • 输出:图像张量
    • 用途:加载网络图片
  • S3UploadURL:上传文件到 S3 并返回 URL。
    • 输入待上传文件、S3 存储桶信息
    • 输出:上传后的文件 URL
    • 用途:上传文件到 S3 并获取文件 URL

1. 文本处理节点

  • LoadTextCustom:从本地文件读取文本(文件路径优先)。
    • 输入:文件路径、选择本地文件、编码格式
    • 输出:文本字符串
    • 用途:读取本地文本文件内容
  • StringEmptyJudgement:判断字符串是否为空。
    • 输入:字符串
    • 输出:布尔值(是否为空)
    • 用途:检查字符串是否为空
  • RandomLineSelector:从多行文本中随机选择一行。
    • 输入:多行文本、随机种子
    • 输出:随机选择的一行文本
    • 用途:随机选取文本中的一行

2. LLM 调用节点

  • LLMChat:调用 LLM 进行聊天。
    • 输入LLM 提供商、提示词、温度、最大令牌数、超时时间
    • 输出LLM 输出结果
    • 用途:与 LLM 进行文本交互
  • LLMChatMultiModalImageUpload:多模态 LLM 调用,上传图片。
    • 输入LLM 提供商、提示词、图片文件、温度、最大令牌数、超时时间
    • 输出LLM 输出结果
    • 用途:结合图片与 LLM 进行交互
  • LLMChatMultiModalImageTensor:多模态 LLM 调用,传入图片张量。
    • 输入LLM 提供商、提示词、图片张量、温度、最大令牌数、超时时间
    • 输出LLM 输出结果
    • 用途:结合图片张量与 LLM 进行交互
  • Jinja2RenderTemplate:使用 Jinja2 渲染 prompt 模板。
    • 输入:模板、键值映射字典
    • 输出:渲染后的字符串
    • 用途:根据提供的模板和变量,使用 Jinja2 引擎渲染出最终的字符串,常用于生成动态的 prompt

3. 图像和视频处理节点

  • JMCustom即梦自定义Prompt生视频
    • 输入参考图、Prompt、视频长度
    • 输出:生成视频路径
    • 用途自定义Prompt视频时长生成视频
  • LoadImg:从网络/本地加载图片(网络图片优先)。
    • 输入:图片 URL、选择本地图片
    • 输出:图像张量
    • 用途:加载网络图片
  • FaceDetect:面部检测。
    • 输入:待检测图像
    • 输出:检测结果
    • 用途:检测图像中的面部
  • FaceExtract:面部提取。
    • 输入:包含面部的图像
    • 输出:提取的面部图像
    • 用途:从图像中提取面部
  • VideoCut:视频剪裁。
    • 输入:视频文件、剪裁起始时间、剪裁结束时间
    • 输出:剪裁后的视频文件
    • 用途:对视频进行剪裁
  • VideoCutByFramePoint:视频按精确帧位剪裁。
    • 输入:视频文件、起始帧、结束帧
    • 输出:剪裁后的视频文件
    • 用途:按精确帧位对视频进行剪裁
  • VideoChangeFPS:视频转换帧率。
    • 输入:视频文件、目标帧率
    • 输出:转换帧率后的视频文件
    • 用途:改变视频的帧率
  • HeyGemF2FHeyGem 嘴型同步。
    • 输入视频张量、音频数据、HeyGem 服务 URL、临时文件路径、是否为 Windows 系统
    • 输出:视频存储路径
    • 用途:实现视频的嘴型同步
  • HeyGemF2FFromFileHeyGem 嘴型同步,直接读取文件。
    • 输入视频文件路径、音频文件路径、HeyGem 服务 URL、临时文件路径、是否为 Windows 系统
    • 输出:视频存储路径
    • 用途:实现视频的嘴型同步
  • ModalEditCustom: 生修图-Gemini
    • 输入Prompt, temperature, topP, 端点
    • 输出:生/修完的图片
    • 用途使用Gemini2.0模型进行图像生成/修正
  • ModalMidJourneyGenerateImage: 生修图-Midjourney
    • 输入Prompt, 提供商, 端点, 超时时间
    • 输出:生/修完的图片
    • 用途使用Midjourney模型进行图像生成/修正
  • ModalMidJourneyDescribeImage: 反推生图关键词-Midjourney
    • 输入:图片, 端点
    • 输出生图Prompt词
    • 用途使用Midjourney模型进行生图Prompt反推

4. 对象存储节点

  • COSUpload:上传文件到 COS。
    • 输入待上传文件、COS 存储桶信息
    • 输出上传文件key
    • 用途:将文件上传到腾讯云 COS
  • COSDownload:从 COS 下载文件。
    • 输入COS 存储桶文件信息、本地保存路径
    • 输出:下载的文件路径
    • 用途:从腾讯云 COS 下载文件
  • S3Upload:上传文件到 S3。
    • 输入待上传文件、S3 存储桶信息
    • 输出上传文件key
    • 用途:将文件上传到 S3 存储桶
  • S3Download:从 S3 下载文件。
    • 输入S3 存储桶文件信息、本地保存路径
    • 输出:下载的文件路径
    • 用途:从 S3 存储桶下载文件
  • S3UploadURL:上传文件到 S3 并返回 URL。
    • 输入待上传文件、S3 存储桶信息
    • 输出:上传后的文件 URL
    • 用途:上传文件到 S3 并获取文件 URL

5. 工具节点

  • LogToDB:将日志记录到数据库(数据库需要根据utils/task_table.py结构建表)。
    • 输入:作业 ID、日志内容、状态、数据库连接 URL
    • 输出:记录结果
    • 用途:将任务日志保存到数据库
  • VodToLocalNode:从腾讯云 VOD 下载视频到本地。
    • 输入:文件 ID、子应用 ID
    • 输出:本地文件路径
    • 用途:从腾讯云 VOD 下载视频文件
  • UnloadAllModels:卸载所有已加载的模型。
    • 输入:任意输入
    • 输出:无
    • 用途:释放模型占用的内存
  • TraverseFolder:遍历文件夹。
    • 输入:文件夹路径、文件后缀、是否递归、索引
    • 输出:文件路径
    • 用途:遍历文件夹并获取指定后缀的文件
  • PlugAndPlayWebhook:即插即用 Webhook 节点。
    • 输入Webhook URL、图片 URL、提示 ID
    • 输出:无
    • 用途:将数据转发到指定的 Webhook URL
  • TaskIdGenerate:生成任务 ID。
    • 输入:无
    • 输出:任务 ID
    • 用途:生成唯一的任务 ID

五、注意事项

  • 部分节点需要配置相应的 API 密钥或数据库连接信息,请下载config.yaml到custom_nodes/ComfyUI-CustomNode目录
  • 运行项目时,请确保网络连接正常,特别是涉及在线文件读取和 LLM 调用的节点。