PERF 添加config本地文件下载链接
This commit is contained in:
parent
1f3c9db743
commit
f508f64a86
|
|
@ -0,0 +1,177 @@
|
|||
# ComfyUI-CustomNode 项目文档
|
||||
|
||||
## 一、项目概述
|
||||
ComfyUI-CustomNode 是一个为 ComfyUI 定制的自定义节点集合项目,提供了丰富的功能节点,涵盖文本处理、图像和视频处理、LLM 调用、对象存储操作等多个领域,方便用户在 ComfyUI 中进行多样化的任务处理。
|
||||
|
||||
**本地使用请下载[config.yaml](https://console.cloud.tencent.com/cos/bucket?type=object&tab=objectDetail&bucket=sucai-1324682537&path=%252Fconfig.yaml®ion=ap-shanghai)到custom_nodes/ComfyUI-CustomNode目录**
|
||||
## 二、项目结构
|
||||
```
|
||||
ComfyUI-CustomNode/
|
||||
├── download/ # 下载文件目录
|
||||
├── ext/ # 扩展文件目录
|
||||
│ ├── pyproject.toml # 项目构建和依赖配置
|
||||
│ ├── comfyui_modal_deploy.py # Comfy批量服务器部署脚本
|
||||
│ └── nodes_bfl.py # 用于替换comfy内置api节点的代码
|
||||
├── model/ # 模型目录
|
||||
├── nodes/ # 节点代码目录
|
||||
│ ├── image_face_nodes.py # 面部处理节点
|
||||
│ ├── image_gesture_nodes.py # 姿态处理节点
|
||||
│ ├── 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 或更高版本。
|
||||
```bash
|
||||
source venv/bin/activate # 对于 Windows 用户使用 `venv\Scripts\activate`
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 2. 运行项目
|
||||
将项目文件夹放置在 ComfyUI 的 `custom_nodes` 目录下,启动 ComfyUI 即可在节点列表中看到自定义节点。
|
||||
|
||||
### 3. 节点使用
|
||||
在 ComfyUI 界面中,根据需要选择相应的节点,配置节点的输入参数,然后连接节点并运行工作流。
|
||||
|
||||
## 四、节点介绍
|
||||
|
||||
### 1. 文本处理节点
|
||||
- **LoadTextLocal**:从本地文件读取文本。
|
||||
- **输入**:根目录、文件名、编码格式
|
||||
- **输出**:文本字符串
|
||||
- **用途**:读取本地文本文件内容
|
||||
- **LoadTextOnline**:从在线文件读取文本。
|
||||
- **输入**:文件路径、编码格式
|
||||
- **输出**:文本字符串
|
||||
- **用途**:读取在线文本文件内容
|
||||
- **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. 图像和视频处理节点
|
||||
- **LoadNetImg**:从网络加载图片。
|
||||
- **输入**:图片 URL
|
||||
- **输出**:图像张量
|
||||
- **用途**:加载网络图片
|
||||
- **FaceDetect**:面部检测。
|
||||
- **输入**:待检测图像
|
||||
- **输出**:检测结果
|
||||
- **用途**:检测图像中的面部
|
||||
- **FaceExtract**:面部提取。
|
||||
- **输入**:包含面部的图像
|
||||
- **输出**:提取的面部图像
|
||||
- **用途**:从图像中提取面部
|
||||
- **VideoCut**:视频剪裁。
|
||||
- **输入**:视频文件、剪裁起始时间、剪裁结束时间
|
||||
- **输出**:剪裁后的视频文件
|
||||
- **用途**:对视频进行剪裁
|
||||
- **VideoCutByFramePoint**:视频按精确帧位剪裁。
|
||||
- **输入**:视频文件、起始帧、结束帧
|
||||
- **输出**:剪裁后的视频文件
|
||||
- **用途**:按精确帧位对视频进行剪裁
|
||||
- **VideoChangeFPS**:视频转换帧率。
|
||||
- **输入**:视频文件、目标帧率
|
||||
- **输出**:转换帧率后的视频文件
|
||||
- **用途**:改变视频的帧率
|
||||
- **HeyGemF2F**:HeyGem 嘴型同步。
|
||||
- **输入**:视频张量、音频数据、HeyGem 服务 URL、临时文件路径、是否为 Windows 系统
|
||||
- **输出**:视频存储路径
|
||||
- **用途**:实现视频的嘴型同步
|
||||
- **HeyGemF2FFromFile**:HeyGem 嘴型同步,直接读取文件。
|
||||
- **输入**:视频文件路径、音频文件路径、HeyGem 服务 URL、临时文件路径、是否为 Windows 系统
|
||||
- **输出**:视频存储路径
|
||||
- **用途**:实现视频的嘴型同步
|
||||
|
||||
### 4. 对象存储节点
|
||||
- **COSUpload**:上传文件到 COS。
|
||||
- **输入**:待上传文件、COS 存储桶信息
|
||||
- **输出**:上传结果
|
||||
- **用途**:将文件上传到腾讯云 COS
|
||||
- **COSDownload**:从 COS 下载文件。
|
||||
- **输入**:COS 存储桶文件信息、本地保存路径
|
||||
- **输出**:下载的文件
|
||||
- **用途**:从腾讯云 COS 下载文件
|
||||
- **S3Upload**:上传文件到 S3。
|
||||
- **输入**:待上传文件、S3 存储桶信息
|
||||
- **输出**:上传结果
|
||||
- **用途**:将文件上传到 S3 存储桶
|
||||
- **S3Download**:从 S3 下载文件。
|
||||
- **输入**:S3 存储桶文件信息、本地保存路径
|
||||
- **输出**:下载的文件
|
||||
- **用途**:从 S3 存储桶下载文件
|
||||
- **S3UploadURL**:上传文件到 S3 并返回 URL。
|
||||
- **输入**:待上传文件、S3 存储桶信息
|
||||
- **输出**:上传后的文件 URL
|
||||
- **用途**:上传文件到 S3 并获取文件 URL
|
||||
|
||||
### 5. 工具节点
|
||||
- **LogToDB**:将日志记录到数据库。
|
||||
- **输入**:作业 ID、日志内容、状态、数据库连接 URL
|
||||
- **输出**:记录结果
|
||||
- **用途**:将任务日志保存到数据库
|
||||
- **VodToLocalNode**:从腾讯云 VOD 下载视频到本地。
|
||||
- **输入**:文件 ID、子应用 ID
|
||||
- **输出**:本地文件路径
|
||||
- **用途**:从腾讯云 VOD 下载视频文件
|
||||
- **UnloadAllModels**:卸载所有已加载的模型。
|
||||
- **输入**:任意输入
|
||||
- **输出**:无
|
||||
- **用途**:释放模型占用的内存
|
||||
- **TraverseFolder**:遍历文件夹。
|
||||
- **输入**:文件夹路径、文件后缀、是否递归、索引
|
||||
- **输出**:文件路径
|
||||
- **用途**:遍历文件夹并获取指定后缀的文件
|
||||
- **PlugAndPlayWebhook**:即插即用 Webhook 节点。
|
||||
- **输入**:Webhook URL、图片 URL、提示 ID
|
||||
- **输出**:无
|
||||
- **用途**:将数据转发到指定的 Webhook URL
|
||||
- **TaskIdGenerate**:生成任务 ID。
|
||||
- **输入**:无
|
||||
- **输出**:任务 ID
|
||||
- **用途**:生成唯一的任务 ID
|
||||
|
||||
## 五、注意事项
|
||||
- 部分节点需要配置相应的 API 密钥或数据库连接信息,**请下载[config.yaml](https://console.cloud.tencent.com/cos/bucket?type=object&tab=objectDetail&bucket=sucai-1324682537&path=%252Fconfig.yaml®ion=ap-shanghai)到custom_nodes/ComfyUI-CustomNode目录**。
|
||||
- 运行项目时,请确保网络连接正常,特别是涉及在线文件读取和 LLM 调用的节点。
|
||||
|
|
@ -101,7 +101,6 @@ class LLMChat:
|
|||
content = find_value_recursive("content", resp)
|
||||
content = re.sub(r'\n{2,}', '\n', content)
|
||||
except Exception as e:
|
||||
# logger.exception("llm调用失败 {}".format(e))
|
||||
raise Exception("llm调用失败 {}".format(e))
|
||||
return (content,)
|
||||
return _chat()
|
||||
|
|
|
|||
Loading…
Reference in New Issue