Nodes/ComfyUI-YogurtNodes/Provider: Vertex AI
ComfyUI Node

Provider: Vertex AI

Vertex AI — Gemini through your Google Cloud project, not AI Studio

By yogurt7771·Created 2 years ago·Updated 6 days ago· 3
Provider: Vertex AI
    • provider
    ◄api_key►
    ◄credentials_json►
    ◄project_id►
    ◄location►
    ◄base_url►
    ◄proxy_url►
    ◄timeout0►

    Same Gemini models, different door. Google AI Studio hands you a key and a quota; Vertex AI puts the same models behind a Google Cloud project, a region, and a billing account. People reach for Vertex when the bill has to land on a corporate card, when data has to stay in a region, when the API needs to be governed like the rest of their infrastructure - or when they already have GCP credits and no appetite for another account.

    In this pack the Provider: Vertex AI node wires into the Gemini-family model nodes: Gemini Chat and Nano Banana (image generation and editing). It shares the Gemini route with Google AI Studio, so the model dropdown doesn't change - what changes is who's serving it and who's invoicing you.

    Two ways to authenticate, and you pick one

    This is the whole node, really. Vertex accepts either:

    • An express-mode API key - paste it into api_key and leave credentials_json empty. Simple, and fine for personal use.
    • A service-account credential - paste the whole service-account JSON into credentials_json (it's a multiline field, on purpose), and set project_id and location. The pack builds credentials from what you pasted and talks to Vertex with them.

    The node's own logic picks the first path when api_key is filled and credentials_json is empty; otherwise service-account credentials win. So don't fill both and wonder which one is being used.

    Here's a genuinely confusing detail worth absorbing before you spend an evening on it: the credentials_json field wants the JSON contents, but the "vertex_ai_json" key in api_key.json is treated as a file path to that JSON, and GOOGLE_APPLICATION_CREDENTIALS is left for Google's own library to pick up as a path too. Same idea, three different shapes depending on where you put it.

    Fallbacks, in the pack's order: project_id → "vertex_ai_project" in api_key.json → GOOGLE_CLOUD_PROJECT. location → "vertex_ai_region" → VERTEX_AI_REGION. For location, global or a real region like us-central1; leave it blank and you're at the mercy of whatever the client guesses.

    The rest of the fields

    base_url overrides the endpoint - leave it empty. proxy_url takes an HTTP or SOCKS proxy, and timeout is per-request in seconds with 0 meaning no limit. Neither is exotic; both are the kind of thing that saves you when you're behind a corporate network that doesn't like Google's API host.

    Output is the usual single provider port. Nothing happens until you wire it into a model node - on its own this node is inert. And because it shares the Gemini route, a model version that has no Gemini route will fail with a message listing the providers that work, which is your cue to stop blaming the credentials.

    Installing

    ComfyUI Manager, search the pack title; or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
    cd ComfyUI-YogurtNodes && pip install -r requirements.txt
    

    Restart. The node is in YogurtNodes/LLM/Providers, and at runtime the display name carries the pack's " (Yogurt Nodes)" suffix. The pack pulls google-genai in as a dependency, which the Vertex path needs - if that install failed, nothing here will work and the traceback will look unrelated.

    # custom_nodes/ComfyUI-YogurtNodes/yogurt_nodes/llm/api_key.json
    {
      "vertex_ai_json": "/absolute/path/to/service-account.json",
      "vertex_ai_project": "my-project-id",
      "vertex_ai_region": "us-central1"
    }
    

    Where people get burned

    Almost always the same three things. The Vertex AI API isn't enabled on the project - that's a console click, not a code fix, and the error is vague. The region doesn't host the model you asked for, which looks identical from the canvas but is a location typo. Or the service account is missing the role that lets it call Vertex, in which case you get a permission error that reads like an auth error and isn't.

    One expectation to drop on the way in: Vertex is not cheaper, and it isn't less moderated. It's the same models under Google's content policy - routing through your own project doesn't buy you a looser filter, because there are no weights for you to patch. What it buys you is a billing line item and a region, and if that's what you needed, this is the node.

    CategoryYogurtNodes/LLM/Providers

    Inputs (7)

    NameTypeDefaultDescription
    api_keySTRINGVertex AI express-mode API key. Leave empty to use service-account credentials.
    credentials_jsonSTRINGService-account JSON. Leave empty to use 'vertex_ai_json' from api_key.json or GOOGLE_APPLICATION_CREDENTIALS.
    project_idSTRINGLeave empty to use 'vertex_ai_project' from api_key.json.
    locationSTRINGRegion such as global or us-central1; empty uses 'vertex_ai_region'.
    base_urlSTRINGAPI base URL; leave empty for the default endpoint.
    proxy_urlSTRINGProxy URL, e.g. http://127.0.0.1:7890 or socks5://127.0.0.1:1080.
    timeoutINT00–3600Request timeout in seconds; 0 means no limit.

    Outputs (1)

    NameTypeDescription
    providerYOGURT_LLM_PROVIDER—