Co-authored-by: yeeyou <775190+yeeyou@users.noreply.github.com>
137 lines
3.7 KiB
Markdown
137 lines
3.7 KiB
Markdown
# ComfyUI OpenAI Compatible API Node
|
||
|
||
一个支持 OpenAI 兼容 API 的 ComfyUI 自定义节点,可以调用任何兼容 OpenAI API 格式的大语言模型服务(如 vLLM、LM Studio、Ollama、LocalAI 等)。
|
||
|
||
## 功能特性
|
||
|
||
- ✅ 支持纯文本对话
|
||
- ✅ 支持图片+文本的视觉对话(Vision API)
|
||
- ✅ 完全兼容 OpenAI Chat Completions API 格式
|
||
- ✅ 支持自定义 API 端点
|
||
- ✅ 支持温度、最大 token 数等参数调节
|
||
- ✅ 支持图片细节控制(auto/low/high)
|
||
|
||
## 安装方法
|
||
|
||
### 方法一:直接克隆到 custom_nodes 目录
|
||
|
||
```bash
|
||
cd ComfyUI/custom_nodes
|
||
git clone https://github.com/your-repo/ComfyUI-OpenAI-Compatible-API.git
|
||
```
|
||
|
||
### 方法二:手动下载
|
||
|
||
1. 下载本仓库的所有文件
|
||
2. 将文件夹复制到 `ComfyUI/custom_nodes/` 目录下
|
||
3. 重启 ComfyUI
|
||
|
||
### 安装依赖
|
||
|
||
本节点需要以下 Python 包(ComfyUI 通常已包含):
|
||
|
||
```bash
|
||
pip install requests pillow torch numpy
|
||
```
|
||
|
||
## 使用说明
|
||
|
||
### 基本参数
|
||
|
||
- **prompt**: 发送给模型的文本提示词
|
||
- **endpoint**: API 端点地址(例如:`http://localhost:3010/v1/chat/completions`)
|
||
- **model**: 模型名称或路径
|
||
- **max_tokens**: 最大生成 token 数(1-32000)
|
||
- **temperature**: 温度参数,控制生成的随机性(0.0-2.0)
|
||
|
||
### 可选参数
|
||
|
||
- **image**: 图片输入(支持 ComfyUI 的 IMAGE 类型)
|
||
- **api_key**: API 密钥(如果服务需要)
|
||
- **image_detail**: 图片细节级别
|
||
- `auto`: 自动选择
|
||
- `low`: 低细节(更快,更便宜)
|
||
- `high`: 高细节(更详细,更慢)
|
||
- **enable_thinking**: 是否启用思考模式(默认:关闭)
|
||
- 启用后会在请求中添加 `chat_template_kwargs: {"enable_thinking": true}`
|
||
- 适用于支持思考/推理模式的模型(如 QwQ、DeepSeek-R1 等,配合 vLLM 使用)
|
||
|
||
## 使用示例
|
||
|
||
### 示例 1:纯文本对话
|
||
|
||
1. 添加 `OpenAI Compatible LLM` 节点
|
||
2. 设置 `endpoint` 为你的 API 地址
|
||
3. 设置 `model` 为模型名称
|
||
4. 在 `prompt` 中输入你的问题
|
||
5. 连接到输出节点查看结果
|
||
|
||
### 示例 2:图片+文本对话(视觉模型)
|
||
|
||
1. 添加 `Load Image` 节点加载图片
|
||
2. 添加 `OpenAI Compatible LLM` 节点
|
||
3. 将图片输出连接到节点的 `image` 输入
|
||
4. 在 `prompt` 中输入关于图片的问题(如 "描述这张图片")
|
||
5. 确保 `model` 是支持视觉的模型(如 Qwen-VL、LLaVA 等)
|
||
6. 连接到输出节点查看结果
|
||
|
||
## 兼容的后端服务
|
||
|
||
本节点兼容任何实现了 OpenAI Chat Completions API 的服务:
|
||
|
||
- **vLLM**: 高性能推理服务器
|
||
- **Ollama**: 本地大模型运行工具
|
||
- **LM Studio**: 桌面端大模型应用
|
||
- **LocalAI**: 本地 AI API 服务
|
||
- **Text Generation WebUI**: OpenAI API 扩展
|
||
- **OpenAI 官方 API**: 需要设置正确的 endpoint 和 api_key
|
||
|
||
## 支持的视觉模型
|
||
|
||
如果要使用图片输入功能,你的模型需要支持视觉输入,例如:
|
||
|
||
- Qwen-VL / Qwen2-VL
|
||
- LLaVA
|
||
- MiniGPT-4
|
||
- BLIP-2
|
||
- CogVLM
|
||
- GPT-4 Vision(通过 OpenAI API)
|
||
|
||
## 注意事项
|
||
|
||
1. 确保你的 API 服务正在运行并且可访问
|
||
2. 如果使用图片输入,确保模型支持视觉功能
|
||
3. 某些服务可能需要 API 密钥
|
||
4. 超时时间设置为 120 秒,处理大图片或长文本时可能需要调整
|
||
|
||
## 故障排除
|
||
|
||
### 连接错误
|
||
|
||
- 检查 endpoint 地址是否正确
|
||
- 确认服务是否正在运行
|
||
- 检查防火墙设置
|
||
|
||
### 模型不支持图片
|
||
|
||
- 确认模型是否为视觉模型
|
||
- 检查 API 服务的日志
|
||
- 尝试纯文本对话测试连接
|
||
|
||
### API 密钥错误
|
||
|
||
- 确认 api_key 是否正确
|
||
- 检查服务是否需要认证
|
||
|
||
## 开发和贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
## 许可证
|
||
|
||
MIT License
|
||
|
||
## 致谢
|
||
|
||
感谢 ComfyUI 社区和所有贡献者!
|