Nodes/ComfyUI_RunpodNodes/RunPod SD (Custom Endpoint)
ComfyUI Node

RunPod SD (Custom Endpoint)

Your own SD 1.5 worker, called like a node

By tcarwash·Created 8 months ago·Updated 8 months ago· 0
RunPod SD (Custom Endpoint)
    • IMAGE
    api_key
    endpoint
    prompt
    negative_prompt
    width512
    height512
    seed-1
    steps25
    cfg_scale7.50
    sampler_nameDPM++ 2M Karras

    This one is different from the rest of the pack. The other nodes hit RunPod's public endpoints - you just paste a key and go. RunPodImageNodeSD is for your own serverless worker: you deploy a Stable Diffusion 1.x/2.x endpoint on RunPod, and this node is the client that talks to it. You bring the endpoint ID, the node brings the UI.

    Why would you bother? The "custom serverless" trio in this pack exists for people who run ComfyUI on a weak or shared machine but own a RunPod serverless deployment - or who batch work through RunPod's pay-for-compute model. This specific node is the SD 1.5/2.x flavor: a classic sampler-oriented payload (steps, CFG, sampler name) matching the standard RunPod SD worker template. It's a niche of a niche in 2026 - SD 1.5 is the legacy ecosystem, and most people running serverless these days point at SDXL or a ComfyUI runner instead - but if you have an SD 1.5 worker collecting dust, this wires it into your graph in two minutes.

    How it works

    The pack's shared async machinery, but with an endpoint input: the node POSTs your settings to https://api.runpod.ai/v2/<your-endpoint-id>/run, polls until the job completes, and decodes the returned image into an IMAGE tensor. The payload uses the classic SD field names - steps, cfg_scale, sampler_name, negative_prompt - so it expects a worker that understands them.

    The inputs that matter

    • api_key - your RunPod key.
    • endpoint - your deployed worker's endpoint ID. This is the field that makes it your worker instead of a public endpoint.
    • prompt / negative_prompt - the generation text; SD 1.5 is tag-soup territory, and unlike the Flux nodes, negative prompts here do real work.
    • width / height - default 512², the SD 1.5 native range (max 1024). Don't push SD 1.5 beyond ~768 without an upscale plan.
    • steps - default 25.
    • cfg_scale - default 7.5, classic SD territory.
    • sampler_name - a plain text field, default DPM++ 2M Karras. Note it's a string, not a dropdown - typos here fail at the worker, so match the sampler spelling your worker expects.
    • seed - -1 random; set it to reproduce.

    What comes out

    One image output (IMAGE). Save, preview, chain an upscaler - normal tensor behavior.

    Installing it

    One of the four custom nodes in tcarwash/ComfyUI_RunpodNodes (the other 23 hit public endpoints). ComfyUI Manager: search ComfyUI_RunpodNodes, or

    cd ComfyUI/custom_nodes
    git clone https://github.com/tcarwash/ComfyUI_RunpodNodes
    

    then restart. No extra dependencies - the pack runs on what ComfyUI already ships. You'll need a RunPod key and a deployed serverless endpoint.

    Gotchas

    • You must deploy the worker first - the node is just the client. No endpoint ID, no image. RunPod's serverless templates (the worker-stable-diffusion style) are the reference for what the payload expects.
    • It's metered differently - serverless billing is per-second of GPU, so idle time and cold starts cost you. A worker that sits unused is a worker that costs money.
    • sampler_name is free text - the pack's SDXL sibling uses a scheduler string too; there are no dropdowns here, so validate against your worker.
    • Queue + polling - same 30–120s pattern as the public nodes; watch the console.

    Honest verdict: if you already run SD 1.5 locally, keep doing that - it fits in a phone's worth of VRAM. This node is for the specific setup where your SD work lives serverless. It does that job cleanly, and nothing else.

    CategoryRunPod/Custom Serverless

    Inputs (10)

    NameTypeDefaultDescription
    api_keySTRING
    endpointSTRING
    promptSTRING
    negative_promptSTRING
    widthINT51264–1024
    heightINT51264–1024
    seedINT-1
    stepsINT251–100
    cfg_scaleFLOAT7.501–20
    sampler_nameSTRINGDPM++ 2M Karras

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE