Nodes/ComfyUI-YALLM-node/LLM Model (API)
ComfyUI Node

LLM Model (API)

Point ComfyUI at your LLM without a single download

By asaddi·Created 2 years ago·Updated 17 days ago· 7
LLM Model (API)
    • llm_model
    model

    LLM Model (API) is the node that defines where your LLM lives, not the model itself. You pick a named entry from a dropdown, out comes an llm_model connection, and the rest of the YALLM pack - the LLM Chat node, mostly - uses that to call a chat completion. It's the anchor of the pack: everything else in ComfyUI-YALLM-node hangs off the connection this node produces.

    Let me be upfront about what this pack is, because the README is refreshingly honest about it: "Yet Another LLM Node," written by Allan Saddi (asaddi) as "mainly an exercise in creating ComfyUI nodes." It doesn't load GGUF weights, it doesn't touch your VRAM, and it won't run a single token itself. It only speaks to OpenAI-compatible HTTP APIs. That's not a limitation you have to fight, though - llama.cpp, Ollama, and LM Studio all expose that same /v1 API, so a local model is just another endpoint to point at. Ollama even runs an OpenAI-compatible server by default.

    How it works

    The dropdown choices don't come from the node. They come from models.yaml in the pack's directory, and each entry is a full connection profile:

    models:
      - name: "[LOCAL] llama.cpp"
        base_url: http://localhost:8080/v1
        api_key: none
        model: whatever
    

    name is what shows in the dropdown; base_url is the endpoint; model is the model id sent to the API; api_key can be none (no auth, for local) or an env var via the os.environ/ prefix, like api_key: os.environ/OPENROUTER_API_KEY. Because profiles live in an external file, your keys never end up in exported workflow JSON or PNG metadata - that's the pack's whole security argument, and it's a good one. The node checks the file's mtime, so editing the YAML refreshes the dropdown without a restart.

    One detail the code reveals that the README glosses over: if models.yaml doesn't exist, the node silently reads models.yaml.example instead. That's why a fresh install "just works" and shows the three [LOCAL] entries - you've been running on the example file this whole time. Copy it to models.yaml the moment you want anything else.

    The inputs and output that matter

    There's exactly one input - model, the dropdown of names from your YAML - and one output, llm_model, which wires into the pack's LLM Chat node. The example file ships placeholders (model: whatever for llama.cpp, changeme for the others) so a brand-new install pointed at a live llama.cpp server will error with "model not found" until you put a real model id in. First thing after installing: edit that file.

    Installing it

    ComfyUI Manager, searching for the pack title "ComfyUI-YALLM-node", is the easy path. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/asaddi/ComfyUI-YALLM-node
    cd ComfyUI-YALLM-node
    cp models.yaml.example models.yaml
    pip install -r requirements.txt
    

    That requirements.txt is just openai and pydantic - nothing heavy, nothing to download, because the model itself runs in your local server. Restart ComfyUI and the YALLM category appears.

    Where people get burned

    The classic: you install, update, restart, and the dropdown still shows only the three [LOCAL] entries. There is no hidden remote-provider list - whatever isn't in models.yaml (or providers.yaml, for the sibling node) simply doesn't exist as a choice. You have to add OpenRouter, Anthropic, whatever, by hand, and the README only ships them as commented-out examples. And since custom nodes are unsandboxed Python (the whole supply-chain lesson of the LLMVISION incident), it's worth a quick read of that repo before you clone - it's small, clean, and honest, but that habit costs you nothing.

    CategoryYALLM

    Inputs (1)

    NameTypeDefaultDescription
    modelCOMBO3 options: [LOCAL] llama.cpp, [LOCAL] LM Studio, [LOCAL] Ollama

    Outputs (1)

    NameTypeDescription
    llm_modelLLMMODEL