Rent a GPU for ComfyUI: per-minute billing and a public HTTPS endpoint

CloudGPU rents GPUs for ComfyUI by the minute: pick a card and the ComfyUI template, and in about 2 minutes you get SSH, JupyterLab and a public HTTPS endpoint for ComfyUI’s API. Billing starts when the GPU is ready and runs per minute at the card’s rate on pricing; destroy the instance when the batch is done.

This page is for choosing the card and estimating the cost. For a full FLUX.1 walk-through with a ready workflow, see the full FLUX.1 walk-through.

What you get with the ComfyUI template

Item Detail
Access Root SSH and JupyterLab on the supplier’s address
API endpoint https://<16-char-id>-i.cloudgpu.app, a reverse tunnel to ComfyUI’s port 8188, live only while the instance runs
Tunnel limits Accepts only the hostname registered for your instance; capped at 3 MB/s per tunnel (fine for JSON and finished images, not for moving model files)
Authentication The tunnel adds none. Add a login/token extension such as ComfyUI-Login if the URL must stay private
Billing Per minute, 1-minute minimum; billing starts when the GPU is ready; 1 hour pre-authorised and unused minutes go back to your balance when you destroy the instance. Rates: pricing

Model weights: the template gives you ComfyUI itself, not FLUX weights. Download the checkpoints, text encoders, VAE and LoRAs your workflow needs over SSH or a JupyterLab terminal, into the matching folders under ComfyUI/models/, so files arrive on the supplier’s connection, not through the 3 MB/s tunnel. FP8 checkpoints are smaller and download faster than 16-bit ones. FLUX.1 dev requires accepting Black Forest Labs’ licence on Hugging Face; FLUX.1 schnell is Apache 2.0.

Which card for which workflow

VRAM figures come from our model pages (FLUX.1 dev, SDXL), checked 2026-09-08. Current rates for every card are on pricing. The Deploy page shows what you can start now.

Workflow VRAM needed (approx.) VRAM class Example cards
SDXL, SD 1.5, light LoRA stacks about 7 GB at FP16 24 GB RTX 3090, RTX 4090D, RTX 4090
FLUX.1 dev / schnell at FP8 VRAM use depends on resolution and precision 24 GB RTX 4090, RTX 4090D
FLUX.1 dev at FP16 VRAM use depends on resolution and precision 32 GB or more RTX 5090, RTX 4090 48G
FLUX + several LoRAs + ControlNet, large batches VRAM use depends on resolution and precision 48 GB RTX 4090 48G, RTX A6000

Two practical notes:

  • FP8 and older cards. Ampere cards such as the RTX 3090 have no native FP8; FP8 checkpoints still load, but expect slower runs than on Ada or Blackwell cards.
  • RTX 4090D is a variant of the RTX 4090 with the same 24 GB of memory and slightly fewer CUDA cores.

Start in four steps

  1. Top up. Alipay, Google Pay, Apple Pay, Visa/Mastercard, or USDT on TRC-20 (payments).
  2. Deploy. On Deploy, choose the ComfyUI template and a card from the table above, then click Deploy.
  3. Wait about 2 minutes. The instance row shows SSH, JupyterLab and the API endpoint.
  4. Download weights and build your graph. FLUX is not preloaded: download the models you need over SSH, open ComfyUI, enable Dev mode and use Save (API format) to export the workflow JSON.

Call it from code

ComfyUI’s HTTP API is the same one the UI uses. Queue a workflow with POST /prompt, poll GET /history/{prompt_id}, download with GET /view.

import json, time, requests

EP = "https://<your-id>-i.cloudgpu.app"      # from the instance row
HEADERS = {}                                  # add your auth header if you installed a login extension
wf = json.load(open("workflow_api.json"))     # exported with "Save (API format)"

def run(prompt_text: str, seed: int) -> bytes:
    wf["2"]["inputs"]["text"] = prompt_text   # node ids depend on your graph
    wf["4"]["inputs"]["seed"] = seed
    pid = requests.post(f"{EP}/prompt", json={"prompt": wf}, headers=HEADERS, timeout=30).json()["prompt_id"]
    while True:
        h = requests.get(f"{EP}/history/{pid}", headers=HEADERS, timeout=30).json()
        if pid in h:
            img = next(iter(h[pid]["outputs"].values()))["images"][0]
            return requests.get(f"{EP}/view", params={"filename": img["filename"], "type": "output"},
                                headers=HEADERS, timeout=60).content
        time.sleep(1)

open("out_000.png", "wb").write(run("a lighthouse at dusk, 35mm film", seed=1))

Estimate the cost before you start

total_minutes = weight downloads + (images × seconds_per_image / 60) + idle
# billing starts when the GPU is ready
cost          = ceil(total_minutes) × hourly_rate / 60
# hourly_rate: the card's current rate on cloudgpu.app/pricing

seconds_per_image depends on the model, resolution, steps and card, so measure it: run one image, note the time, then multiply. We do not publish a speed table here because a number measured on one workflow rarely holds for another.

Illustrative arithmetic (the inputs are assumptions, not measurements; the 20 s per image is the estimate used in our FLUX walk-through, so replace it with your own number): if setup and downloads take 12 minutes once the instance is running and each image takes 20 s for a 200-image batch, the run is 12 + 66.7 + 2 idle ≈ 81 minutes. Multiply 81 by the card’s hourly rate on pricing and divide by 60.

When the hosted FLUX API is the better fit

If you only need occasional images and no custom nodes, the same balance pays for FLUX through the OpenAI-compatible images endpoint. The API page lists flux-1-schnell and flux-1-dev with their current per-image rates. Rent the GPU when you need the node graph, LoRAs, ControlNet or volume; use the API for sporadic generations.

from openai import OpenAI
client = OpenAI(base_url="https://cloudgpu.app/v1", api_key="YOUR_CLOUDGPU_KEY")
r = client.images.generate(model="flux-1-schnell", prompt="a lighthouse at dusk", size="1024x1024")
print(r.data[0].url)

Good fit, poor fit

Situation Verdict
No local GPU or not enough VRAM, occasional batch generation Good fit: rent by the minute, destroy when done
You need FLUX with LoRAs, ControlNet or custom nodes Good fit: the hosted API cannot run a node graph
ComfyUI as a backend for your own app Good fit: public HTTPS endpoint plus a login extension

FAQ

Can I run ComfyUI on a rented GPU billed by the minute? Yes. Choose the ComfyUI template on the Deploy page. Billing is per minute with a 1-minute minimum; one hour is pre-authorised, and unused minutes go back to your balance when you destroy the instance.

How do I call ComfyUI from my own code? Use the instance’s https://<id>-i.cloudgpu.app endpoint: POST /prompt with a workflow exported via “Save (API format)”, poll /history/{prompt_id}, then download from /view.

Is the ComfyUI endpoint protected by a password? No. The tunnel only accepts your instance’s hostname but adds no authentication. Install a login or token extension if the URL must stay private.

How much VRAM does ComfyUI need for FLUX.1 dev? VRAM use depends on resolution and precision.

Does the ComfyUI template include FLUX weights? No. The template runs ComfyUI; you download FLUX or any other weights yourself over SSH or JupyterLab. FLUX.1 dev requires accepting the licence on Hugging Face first.

Current rates are on pricing; what you can start now is on Deploy. Eligibility: see the Terms and Acceptable Use Policy.