Nodes/ComfyUI-YogurtNodes/Provider: Topaz Labs
ComfyUI Node

Provider: Topaz Labs

Topaz Labs — your Topaz credits, straight from the graph

By yogurt7771·Created 2 years ago·Updated 6 days ago· 3
Provider: Topaz Labs
    • provider
    ◄api_key►
    ◄base_url►
    ◄task_timeout900►
    ◄proxy_url►
    ◄timeout0►

    Topaz is the paid baseline everyone benchmarks against. In 2026's first half it turned up in 223 upscaling threads - more than SUPIR and ESRGAN combined - and it's still the reference point people measure open restorers against. What changed is the direction of travel: a May 2026 node wrapping NVIDIA's RTX video modes got its author to say he no longer needed a Topaz subscription. So this is the node you reach for when you're keeping Topaz, and want it inside a workflow instead of in a separate app.

    Provider: Topaz Labs supplies the connection for the pack's two Topaz nodes: Topaz Upscale (conservative, precision-style) and Topaz Generative Upscale (the one that invents detail). It's the only provider that serves those routes, so both nodes default to it - wire it in when you want to control the key, the endpoint, or how long a job is allowed to run.

    What it does

    Nothing until you connect it. On execute it emits a single provider value that the upscale node consumes; the submit-and-poll traffic to the Topaz Image API happens downstream. The default base is https://api.topazlabs.com/image/v1, overridable via base_url if you're behind a regional endpoint or a relay.

    The inputs

    • api_key - empty means "use "topaz" from api_key.json, then TOPAZ_API_KEY".
    • base_url - leave empty for the default.
    • task_timeout - and this is the field worth understanding. Default 900 seconds, range 30 to 7200. Topaz jobs are asynchronous: the pack submits your image, then polls until the task finishes. This is the ceiling on that whole wait.
    • timeout - the per-HTTP-request timeout, 0 meaning no limit. So there are two timeouts and they do different jobs: timeout governs one request, task_timeout governs the entire upscale. A 4x generative pass on a large source can genuinely take minutes, which is why the job ceiling defaults as high as it does.
    • proxy_url - HTTP or SOCKS proxy.

    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 sits in YogurtNodes/LLM/Providers; runtime display names carry the pack's " (Yogurt Nodes)" suffix, so the browser entry is "Provider: Topaz Labs (Yogurt Nodes)". Key file:

    # custom_nodes/ComfyUI-YogurtNodes/yogurt_nodes/llm/api_key.json
    { "topaz": "your-topaz-api-key" }
    

    Note what you don't need here: no model files, no CUDA, no VRAM. The whole point of the API route is that a 6GB laptop renders a 16x upscale. It's metered per call instead, so the machine cost moves to the invoice.

    Where people get burned

    Timeouts are the common one, and they're mostly self-inflicted: the generative models on a 4x pass, with a handful of retries configured on the node, is a slow chain of calls. Raise task_timeout before you raise retry_count, or you'll pay for the same job several times.

    The other thing worth saying plainly was already true before this node existed: a Topaz API key is a credential that gets shipped to a third party by design, and Topaz's service applies Topaz's own content filtering. If the graph you're calling from is doing things a commercial service would rather not host, that's a policy limit, not a bug you can configure around. Keep your key out of the workflow file - put it in api_key.json - and remember that an API node's whole purpose is the phone call, so it's the category where you read the code before the first run.

    CategoryYogurtNodes/LLM/Providers

    Inputs (5)

    NameTypeDefaultDescription
    api_keySTRINGLeave empty to use 'topaz' from api_key.json, then the TOPAZ_API_KEY environment variable.
    base_urlSTRINGAPI base URL; leave empty for the default endpoint.
    task_timeoutINT90030–7200Maximum time to wait for the upscale task.
    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—