# ComfyUI_LLM_API 用于 ComfyUI 的 OpenAI-compatible Chat Completions 节点,支持文本与图片输入。 OpenAI-compatible Chat Completions node for ComfyUI, with text and image input support. ## 安装 / Install 在本插件目录运行: Run in this custom node directory: ```bash pip install -r requirements.txt ``` 安装后重启 ComfyUI。 Restart ComfyUI after installation. ## 安全 / Security 推荐使用 `api_key_env` 从环境变量读取 API key。`api_key` 明文字段会保存进 workflow,请不要分享包含明文 key 的 workflow、截图、日志或 JSON。 Prefer `api_key_env` for API keys. The plain `api_key` widget is saved into workflows, so do not share workflows, screenshots, logs, or JSON files containing a key. PowerShell 示例 / Example: ```powershell $env:OPENAI_API_KEY='...' ``` ## 快速开始 / Quick Start 1. 添加节点 `LLM API Chat`。 2. 选择 `provider_profile`。 3. 预设 provider 可留空 `api_baseurl`;自定义 provider 需要填写 base URL。 4. 推荐填写 `api_key_env`,例如 `OPENAI_API_KEY`。 5. 填写 `model`、`system_prompt`、`prompt`。 6. 需要图片理解时连接 `images`,并确认 provider/model 支持图片。 1. Add the `LLM API Chat` node. 2. Select `provider_profile`. 3. Leave `api_baseurl` empty for preset providers; custom providers need a base URL. 4. Prefer `api_key_env`, for example `OPENAI_API_KEY`. 5. Set `model`, `system_prompt`, and `prompt`. 6. Connect `images` only when the provider/model supports image input. ## 节点 / Node - Node ID: `LLM_API_CHAT_NODE` - Display name: `LLM API Chat` - Outputs: `response`, `error` 成功时 `response` 有内容且 `error` 为空;失败时 `response` 为空且 `error` 以 `LLM API Error` 开头。 On success, `response` contains model text and `error` is empty. On failure, `response` is empty and `error` starts with `LLM API Error`. ## 主要输入 / Inputs | Input | 中文说明 | English | | --- | --- | --- | | `provider_profile` | provider 预设 | provider preset | | `api_baseurl` | 可选 base URL 覆盖 | optional base URL override | | `api_key` | 明文 API key,不推荐分享 | plain API key; do not share | | `api_key_env` | 环境变量名,优先使用 | environment variable name, preferred | | `model` | 模型名称 | model name | | `system_prompt` | system 消息 | system message | | `prompt` | user 消息 | user message | | `temperature` | 采样温度 | sampling temperature | | `execution_seed` | 仅用于 ComfyUI 重新执行/缓存扰动,不传 API | ComfyUI execution/cache control only; not sent to API | | `filter_thinking` | 移除 `...` 内容 | remove `...` blocks | | `max_images` | 最多发送图片数 | maximum images to send | | `image_preset` | 图片编码预设 | image encoding preset | | `custom_image_max_mb` | custom 预设下的单图 MB 上限 | per-image MB limit for `custom` | | `custom_image_max_side` | custom 预设下的长边像素上限 | long-side pixel limit for `custom` | | `images` | 可选 ComfyUI 图片 batch | optional ComfyUI image batch | ## Provider 预设 / Provider Presets | Profile | Default base URL | Images | | --- | --- | --- | | `custom_text_image` | custom/empty | yes | | `custom_text_only` | custom/empty | no | | `openai` | `https://api.openai.com/v1` | yes | | `deepseek` | `https://api.deepseek.com` | no | | `qwen_dashscope_cn` | `https://dashscope.aliyuncs.com/compatible-mode/v1` | yes | | `doubao_ark_cn` | `https://ark.cn-beijing.volces.com/api/v3` | yes | | `zhipu_glm` | `https://open.bigmodel.cn/api/paas/v4` | yes | | `minimax_global` | `https://api.minimax.io/v1` | no | 文本-only profile 连接图片时会在 API 调用前返回错误。 Text-only profiles reject connected images before making an API call. ## 图片预设 / Image Presets | Preset | Max size | Max side | 用途 / Use | | --- | ---: | ---: | --- | | `fast` | 0.5 MB | 768 px | 快速预览 / quick preview | | `balanced` | 1.5 MB | 1280 px | 默认推荐 / recommended default | | `detail` | 3.0 MB | 1600 px | 更多细节 / more detail | | `ocr_high` | 5.0 MB | 2048 px | OCR、截图、UI、图表 / OCR, screenshots, UI, diagrams | | `custom` | custom | custom | 手动调优 / manual tuning | MB 为十进制。大多数工作流建议从 `balanced` 开始。 MB values are decimal. Start with `balanced` for most workflows. ## 示例 / Examples - `examples/text_only_workflow.json` - `examples/image_chat_workflow.json` 示例使用 `api_key_env` 占位,不包含 API key。图片示例包含 `examples/example.png` 作为可直接加载的占位图。 Examples use `api_key_env` placeholders and contain no API keys. The image example includes `examples/example.png` as a loadable placeholder image. ## 发布 / Release Registry metadata lives in `pyproject.toml`, including `[project]` and `[tool.comfy]`. Before publishing, confirm `PublisherId`, `Repository`, `version`, and `LICENSE` match your target release account and repository. Registry 发布元数据位于 `pyproject.toml`,包含 `[project]` 与 `[tool.comfy]`。发布前请确认 `PublisherId`、`Repository`、`version` 与 `LICENSE` 符合目标发布账号和仓库。 ## 手动测试 / Manual Smoke Test 该脚本只在手动运行时发送真实请求,默认单元测试不会联网。 This script sends real API requests only when run manually. Unit tests stay offline. ```powershell $env:LLM_API_PROVIDER_PROFILE='openai' $env:LLM_API_KEY='...' $env:LLM_API_MODEL='gpt-4.1-mini' E:\ComfyUI-aki-v2\python\python.exe .\scripts\smoke_provider.py ``` 图片测试可额外设置: For image smoke testing, also set: ```powershell $env:LLM_API_IMAGE_PATH='C:\path\to\image.png' ``` ## 不支持 / Not Supported 本节点不支持视频、文件上传、streaming 或 Responses API。 This node does not support video, file upload, streaming, or the Responses API.