Model Upload

Upload and manage your custom AI models on the Runware platform. Integrate your own checkpoints, LoRAs, and other model types into your workflow.

Introduction

The Model Upload API lets you integrate custom models into the Runware platform. Upload your own checkpoints, LoRAs, or other supported model types and use them in generation tasks just like any other model on the platform.

Uploaded models are automatically optimized for the Sonic Inference Engine®, enhancing speed and efficiency without compromising output quality. Once processed, models are distributed across our infrastructure and can be referenced by their assigned identifiers in any API request.

Supported model categories

  • Checkpoints: Base models across multiple architectures including Stable Diffusion (1.x, 2.x, XL, 3.x) and FLUX.
  • LoRAs: Low-Rank Adaptation models for style and concept fine-tuning.
  • LyCORIS: An advanced alternative to LoRA for model fine-tuning.
  • VAE: Variational Autoencoder models for image encoding and decoding.
  • Embeddings: Textual Inversion embeddings for custom concepts and styles.

Visibility and versioning

You have full control over who can access your models. Set them as public (accessible to all platform users) or private (restricted to your organization). The API also supports multiple versions of the same model, allowing you to iterate on weights or configurations while maintaining a clean version history.

Storage pricing

Model upload is currently in beta and free of charge. There are no costs for uploading or storing models during this period.

After the beta period, storage will be charged at $0.05 per GB per month, rounded up to the nearest GB and calculated daily. We will not retroactively charge for storage used during the beta. A positive account balance is required to upload new models.

Request

Our API always accepts an array of objects as input, where each object represents a specific task to be performed. The structure of the object varies depending on the type of the task. For this section, we will focus on the parameters related to the model upload task.

The following JSON snippet shows the basic structure of a request object.

[
  {
    "taskType": "modelUpload",
    "taskUUID": "b92ea202-349f-4560-adae-abb55a8146ee",
    "category": "checkpoint",
    "architecture": "flux",
    "format": "safetensors",
    "air": "myorg:42@1",
    "uniqueIdentifier": "abc123def456",
    "name": "My Custom Model",
    "version": "v1",
    "downloadURL": "https://example.com/models/my-model.safetensors",
    "private": true
  }
]

taskType

const:modelUpload required value: modelUpload

The type of task to perform.

taskUUID

string UUID v4

UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.

category

string required

Category of the model.

Allowed values 5 values

format

string required

Format of the model file.

Allowed values 1 value

air

string

Artificial Intelligence Resource identifier.

Unique identifier for the model.

name

string required

Name of the model.

version

string required

Version of the model.

downloadURL

string required URI

URL where the model file is hosted.

private

boolean default: false

Whether the model should be private.

heroImageURL

string URI

URL of the hero image.

tags

array of strings

Tags associated with the model.

Short description of the model.

comment

string

Additional comments or notes.

Checkpoints

When category is set to checkpoint, the following additional parameters are available:

type

string

Type of the model (specific to category).

Allowed values 3 values

architecture

string required

Architecture of the model.

Allowed values 19 values

Default scheduler.

defaultSteps

integer min: 1

Default number of inference steps.

defaultCFG

float min: 0

Default classifier-free guidance scale.

defaultStrength

float min: 0 max: 1

Default strength for img2img.

LoRAs

When category is set to lora, the following additional parameters are available:

type

string

Type of the model (specific to category).

Allowed values 2 values

architecture

string required

Architecture of the model.

Allowed values 35 values

Default weight for the model.

List of positive trigger words.

LyCORIS

When category is set to lycoris, the following additional parameters are available:

type

string

Type of the model (specific to category).

Allowed values 2 values

architecture

string required

Architecture of the model.

Allowed values 35 values

Default weight for the model.

List of positive trigger words.

VAE

When category is set to vae, the following additional parameters are available:

architecture

string required

Architecture of the model.

Allowed values 13 values

Embeddings

When category is set to embeddings, the following additional parameters are available:

type

string

Type of the model (specific to category).

Allowed values 2 values

architecture

string required

Architecture of the model.

Allowed values 13 values

Response

The API streams a sequence of status messages as your model progresses through the upload pipeline. Each message uses the same structure but indicates the current processing phase:

  1. Validated: Model parameters and configuration have been verified.
  2. Downloaded: Model file has been retrieved from the provided URL.
  3. Optimized: Model has been optimized for the Sonic Inference Engine.
  4. Stored: Model has been uploaded to distributed storage.
  5. Ready: Model is deployed and available for use in generation tasks.
{
  "data": [
    {
      "taskType": "modelUpload",
      "taskUUID": "b92ea202-349f-4560-adae-abb55a8146ee",
      "status": "ready",
      "message": "Model successfully deployed and ready for use.",
      "air": "myorg:42@1"
    }
  ]
}

taskType

string value: modelUpload

Identifier for the type of task being performed

taskUUID

string required UUID v4

UUID v4 identifier for tracking tasks and matching async responses. Must be unique per task.

status

string required

Status of the upload operation phase.

Possible values 6 values

message

string required

Status message or error details.

air

string

The AIR identifier of the uploaded model.