live
MODEL IDrunware:controlnet-preprocess@normalbae

ControlNet Preprocess NormalBae

Available with Zero Data Retention

ControlNet Preprocess NormalBae predicts a surface normal map from an input image for ControlNet conditioning. It is well suited to workflows that need stronger preservation of 3D form, object volume, and orientation cues beyond what a flat edge map or line map can provide.

ControlNet Preprocess NormalBae

API Options

Platform-level options for task execution and delivery.

taskType

stringrequiredvalue: controlNetPreprocess

Identifier for the type of task being performed.

taskUUID

stringrequiredUUID v4

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

outputType

stringdefault: URL

Image output type.

Allowed values3 values

outputFormat

stringdefault: JPG

Specifies the file format of the generated output. The available values depend on the task type and the specific model's capabilities.

  • `JPG`: Best for photorealistic images with smaller file sizes (no transparency).
  • `PNG`: Lossless compression, supports high quality and transparency (alpha channel).
  • `WEBP`: Modern format providing superior compression and transparency support.
**Transparency**: If you are using features like background removal or LayerDiffuse that require transparency, you must select a format that supports an alpha channel (e.g., `PNG`, `WEBP`, `TIFF`). `JPG` does not support transparency.
Allowed values3 values

webhookURL

stringuri

Webhook URL that receives JSON responses via HTTP POST when generation tasks complete. For batch requests with multiple results, each completed item triggers a separate webhook call as it becomes available.

Learn more1 resource

deliveryMethod

stringdefault: sync

Determines how the API delivers task results.

Allowed values2 values
Returns complete results directly in the API response.
Returns an immediate acknowledgment with the task UUID. Poll for results using getResponse.
Learn more1 resource

Specifies a URL where the generated content will be automatically uploaded using the HTTP PUT method. The raw binary data of the media file is sent directly as the request body. For secure uploads to cloud storage, use presigned URLs that include temporary authentication credentials.

Common use cases:

  • Cloud storage: Upload directly to S3 buckets, Google Cloud Storage, or Azure Blob Storage using presigned URLs.
  • CDN integration: Upload to content delivery networks for immediate distribution.
// S3 presigned URL for secure upload
https://your-bucket.s3.amazonaws.com/generated/content.mp4?X-Amz-Signature=abc123&X-Amz-Expires=3600

// Google Cloud Storage presigned URL
https://storage.googleapis.com/your-bucket/content.jpg?X-Goog-Signature=xyz789

// Custom storage endpoint
https://storage.example.com/uploads/generated-image.jpg

The content data will be sent as the request body to the specified URL when generation is complete.

ttl

integermin: 60

Time-to-live (TTL) in seconds for generated content. Only applies when outputType is URL.

Include task cost in the response.

routing

object

Model router options. Only read when model is auto, and never sent to the model.

Properties3 properties
routing » preferences

Relative importance of each dimension when models are compared. Weights, not thresholds.

Properties3 properties
routing » preferences » quality
quality
integermin: 0max: 5

Importance of one dimension. 0 leaves it out of the decision.

routing » preferences » speed
speed
integermin: 0max: 5

Importance of one dimension. 0 leaves it out of the decision.

routing » preferences » cost
cost
integermin: 0max: 5

Importance of one dimension. 0 leaves it out of the decision.

routing » maxPrice

maxPrice

floatmin: 0

Upper bound on what this request may cost, in USD. A model whose cost cannot be bounded is not chosen.

routing » requirements

requirements

stringmax: 3000

Conditions the result has to meet, in plain words. A model that cannot meet them is not chosen.

Inputs

Input resources for the task (images, audio, etc). These must be nested inside the inputs object.

inputs » image

image

stringrequired

Image input (UUID, URL, Data URI, or Base64).

Core Parameters

Primary parameters that define the task output.

model

stringrequiredvalue: runware:controlnet-preprocess@normalbae

Send auto instead of an AIR identifier to have the model router choose the model for this task. The rest of the request is unchanged, every value you send is kept, and only the parameters you leave out are filled in. See Model Router.

Learn more3 resources