ComfyUI Extension: LM Studio Tools for ComfyUI
This is a custom node pack designed for ComfyUI that seamlessly integrates the powerful LM Studio into your workflow, enabling you to perform a variety of tasks such as text generation and image understanding (Vision) using locally run LLMs.
Custom Nodes (0)
README
LM Studio Tools for ComfyUI
这是一个为 ComfyUI 设计的自定义节点包,它将强大的 LM Studio 无缝集成到你的工作流中,让你能够利用本地运行的大语言模型(LLM)进行文本生成、图像理解(Vision)等多种任务。
预览:
✨ 功能特性
- 本地 LLM 集成: 直接在 ComfyUI 中调用 LM Studio 部署的任何模型。
- 文本与多模态支持: 支持纯文本对话和“文本+图片”的多模态输入。
- 完整的对话流控制: 通过链接
Message
对象,可以构建包含系统提示、多轮用户/助手对话的完整上下文。 - 参数化请求: 精确控制
temperature
,top_p
,seed
等关键生成参数。 - 模型管理: 包含一个节点,可以通过调用 LM Studio 的命令行工具来卸载模型,释放显存。
- 易于使用: 节点设计直观,通过 emoji 图标清晰区分功能,符合 ComfyUI 的使用习惯。
📋 先决条件
在安装此插件之前,请确保你已经准备好以下环境:
- ComfyUI: 你的系统中已成功安装并能正常运行 ComfyUI。
- LM Studio: 你已经下载并安装了 LM Studio 桌面应用。
- LM Studio CLI (lms): (非常重要) 为了使用
🗑️ Unload All Models
节点,你必须安装 LM Studio 的命令行工具 (lms
) 并将其添加到系统的环境变量PATH
中。- 在 LM Studio 应用中,点击底部状态栏的
</>
图标,或直接运行以下命令来安装 CLI: - macOS / Linux:
~/.lmstudio/bin/lms bootstrap
- Windows (在 CMD 或 PowerShell 中运行):
%USERPROFILE%\.lmstudio\bin\lms.exe bootstrap
- 安装后,关闭并重新打开你的终端,输入
lms -v
,如果能看到版本号,则表示安装成功。
- 在 LM Studio 应用中,点击底部状态栏的
手动安装:
- 下载本仓库的 ZIP 压缩包。
- 解压后,将文件夹重命名为
LM_Studio_Tools
。 - 将整个
LM_Studio_Tools
文件夹放入 ComfyUI 的custom_nodes
目录下。 - 重启 ComfyUI。
🧩 节点说明
⚙️ API Config
设置与 LM Studio 本地服务器通信所需的配置。
- 输出:
API_CONFIG
: 包含 API 地址和密钥的配置对象。
🏷️ Select Model
指定你希望在请求中使用的模型。
- 如何获取模型标识符?
- 在 LM Studio 中加载一个模型。
- 切换到 "Local Server" 标签页。
- 在页面顶部,你会看到 "Select a model to load",下方即是模型的标识符。复制它。 (这是一个示例图,你可以用自己的截图替换)
- 输入:
model_identifier
: 从 LM Studio 复制的模型标识符字符串。
- 输出:
model
: 传递给请求节点的模型标识符字符串。
🧠 System Prompt
创建对话的初始系统消息,用于设定 AI 的角色和行为。
- 输入:
system_prompt
: 多行文本,定义系统提示。
- 输出:
MESSAGE
: 包含单条系统消息的Message
对象。
👤 User Prompt
向对话中添加一条用户消息,可以选择性地附带一张图片。
- 输入:
user_prompt
: 多行文本,用户的提问。message_in
(可选): 从上一个节点传入的Message
对象。image
(可选): 从Load Image
等节点传入的图像。支持通过合并批次节点输入多张图片的batch
- 输出:
MESSAGE
: 追加了新用户消息后的Message
对象。
📡 LMStudio Request
将构建好的对话上下文发送到 LM Studio API,并获取模型的回复。
- 输入:
api_config
: 来自⚙️ API Config
节点的配置。model
: 来自🏷️ Select Model
节点的模型标识符。message
: 包含完整对话上下文的Message
对象。seed
: 随机种子,-1
表示随机。用于复现结果。context_length
,temperature
,top_p
: 控制模型生成的标准参数。上一步
(可选): 任意类型的输入,仅用于确保工作流的执行顺序。
- 输出:
message_out
: 追加了模型回复后的完整Message
对象。output_text
: 本次请求中模型生成的纯文本回复。
🗑️ Unload All Models
执行 lms unload --all
命令,要求 LM Studio 卸载所有当前加载的模型以释放显存。
- 注意: 此节点需要
lms
CLI 已正确安装并配置在系统PATH
中。 - 输入:
message_in
/string_in
(可选): 用于连接工作流,内容会被直接传递。
- 输出:
message_out
/string_out
: 直接将输入透传到输出。
📌 Get Assistant Message
从对话历史中提取指定索引的助手(模型)回复。
- 输入:
message
: 包含对话历史的Message
对象。index
: 整数索引。-1
代表最后一条助手回复,0
代表第一条,以此类推。
- 输出:
text
: 提取出的纯文本回复。
💡 示例工作流
1. 基础文本对话
这是一个最简单的工作流,用于和模型进行单轮对话。
⚙️ API Config
-> 🏷️ Select Model
🧠 System Prompt
-> 👤 User Prompt
-> 📡 LMStudio Request
- 将
Select Model
的model
输出连接到LMStudio Request
的model
输入。 - 将
API Config
的API_CONFIG
输出连接到LMStudio Request
的api_config
输入。 - 最终
LMStudio Request
的output_text
就是模型的回复。
2. 多模态(视觉)对话
向模型提问关于一张图片的问题。
Load Image
-> 👤 User Prompt
的 image
输入。
其他连接方式与基础文本对话相同。
3. 多轮对话与模型卸载
你可以将一个 LMStudio Request
的 message_out
输出连接到下一个 User Prompt
的 message_in
输入,从而实现多轮对话。在工作流的最后,可以添加一个 Unload All Models
节点来清理资源。
...
-> 📡 LMStudio Request
-> 🗑️ Unload All Models
📜 许可证
本项目采用 MIT License 开源。