request_id > fetch status/results), but they solve different problems.
Serverless API (ComfyUI)
Deploy ComfyUI workflows as serverless endpoints.
Trainer API (LoRA)
Run AI Toolkit LoRA training jobs on GPUs — bring your dataset + YAML config.
Serverless API (LoRA)
Deploy LoRAs as serverless endpoints.
Model API
Run hosted models on-demand with no deployment — pay per request.
Which API should I use?
Use this as a quick decision guide:| What you are trying to do | Recommended API | What you call with | Deployment required? |
|---|---|---|---|
| Train/fine‑tune an AI Toolkit LoRA (upload dataset, run training, download artifacts) | Trainer API | dataset_id + job_id | No |
| Run a model from the RunComfy Models catalog (or a hosted pipeline) | Model API | model_id | No |
| Run inference with a LoRA without deploying anything | Model API | model_id + LoRA inputs | No |
| Turn a ComfyUI workflow into a production endpoint (versions, autoscaling, webhooks, instance proxy) | Serverless API (ComfyUI) | deployment_id | Yes |
| Serve a LoRA behind a dedicated, scalable endpoint | Serverless API (LoRA) | deployment_id | Yes |
Both Serverless API (LoRA) and Serverless API (ComfyUI) are built on the same serverless deployment system. The difference is what you deploy and therefore what the request schema looks like.
Getting started
- Model API: start with Quickstart, then see Async Queue Endpoints.
- Serverless API (ComfyUI): start with Quickstart, then learn about Overrides and workflow files.
- Serverless API (LoRA): start with Choose a LoRA inference API, then follow the Quickstart.
- Trainer API: start with Quickstart, then see Async Queue Endpoints (Datasets) and Async Queue Endpoints (Training Jobs).
Common request pattern
Most RunComfy endpoints are asynchronous:- Submit a job (
POST …) > get an ID (request_id,job_id, etc.) - Poll status (
GET …/status) until it completes - Fetch outputs (
GET …/result) or use webhooks for push-based updates
