ComfyUI Extension: LM Studio Tools for ComfyUI

Authored by Hazukiaoi

Created

Updated

0 stars

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 的使用习惯。

    📋 先决条件

    在安装此插件之前,请确保你已经准备好以下环境:

    1. ComfyUI: 你的系统中已成功安装并能正常运行 ComfyUI。
    2. LM Studio: 你已经下载并安装了 LM Studio 桌面应用。
    3. 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,如果能看到版本号,则表示安装成功。

    手动安装:

    1. 下载本仓库的 ZIP 压缩包。
    2. 解压后,将文件夹重命名为 LM_Studio_Tools
    3. 将整个 LM_Studio_Tools 文件夹放入 ComfyUI 的 custom_nodes 目录下。
    4. 重启 ComfyUI

    🧩 节点说明

    ⚙️ API Config

    设置与 LM Studio 本地服务器通信所需的配置。

    • 输出:
      • API_CONFIG: 包含 API 地址和密钥的配置对象。

    🏷️ Select Model

    指定你希望在请求中使用的模型。

    • 如何获取模型标识符?
      1. 在 LM Studio 中加载一个模型。
      2. 切换到 "Local Server" 标签页。
      3. 在页面顶部,你会看到 "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 Modelmodel 输出连接到 LMStudio Requestmodel 输入。
    • API ConfigAPI_CONFIG 输出连接到 LMStudio Requestapi_config 输入。
    • 最终 LMStudio Requestoutput_text 就是模型的回复。

    2. 多模态(视觉)对话

    向模型提问关于一张图片的问题。

    Load Image -> 👤 User Promptimage 输入。 其他连接方式与基础文本对话相同。

    3. 多轮对话与模型卸载

    你可以将一个 LMStudio Requestmessage_out 输出连接到下一个 User Promptmessage_in 输入,从而实现多轮对话。在工作流的最后,可以添加一个 Unload All Models 节点来清理资源。

    ... -> 📡 LMStudio Request -> 🗑️ Unload All Models

    📜 许可证

    本项目采用 MIT License 开源。