Skip to content

SDXL ControlNet Union

Integrate

Model id sdxl-controlnet-union
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/sdxl-controlnet-union?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: ≈$0.014 14 API credits Run it on this page

Get API key
Stability AI Text to Image #diffusion#controlnet#composition

SDXL text-to-image guided by up to six control images: openpose, depth, teed, canny, normal, segmentation

Stability AI · Image

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Describe the image you want generated, using as much detail as possible to get the best results.

image_size

Output dimensions, determined automatically from the control image when no size is supplied.

num_images default 1

Image count requested for generation.

Advanced negative_prompt · openpose_image_url · depth_image_url · teed_image_url · canny_image_url · normal_image_url · segmentation_image_url · safety_checker_version · format · request_id · controlnet_conditioning_scale · num_inference_steps · guidance_scale · seed · enable_safety_checker · expand_prompt · openpose_preprocess · depth_preprocess · teed_preprocess · canny_preprocess · normal_preprocess · segmentation_preprocess · loras · embeddings
default

Negative prompt specifying image details to exclude, including colors, objects, scenery, or finer features. Examples include a moustache, blur, or low resolution.

Drop a file, or

URL pointing to the control image.

Drop a file, or

URL pointing to the control image.

Drop a file, or

URL pointing to the control image.

Drop a file, or

URL pointing to the control image.

Drop a file, or

URL pointing to the control image.

Drop a file, or

URL pointing to the control image.

safety_checker_version default v1

Choose between a custom ViT safety checker (`v2`) and the CompVis checker (`v1`, the default).

format default jpeg

File format for the resulting image.

default

Request identifier for correlating a response with the request that produced it.

default 0.5

Strength of conditioning applied by ControlNet.

default 35

Count of inference steps to run.

default 7.5

Prompt-adherence strength for image selection, expressed as CFG (Classifier Free Guidance).

Seed for reproducing images in Stable Diffusion. An image can be reproduced exactly on every run by keeping the model version, prompt, and seed unchanged.

default []

LoRA weights selected for use, provided as a list.

default []

Embeddings selected for use, provided as a list.

POST /run/sdxl-controlnet-union?wait=20 quote → $0.014
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/sdxl-controlnet-union?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About SDXL ControlNet Union

Generates SDXL images from a `prompt` steered by control images such as openpose, depth, teed, canny, normal or segmentation, each with its own preprocess toggle. `controlnet_conditioning_scale` ranges 0 to 1. Image size can be inferred from the control image. Supports LoRAs, embeddings, 1 to 8 images and jpeg or png output.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
Describe the image you want generated, using as much detail as possible to get the best results.
controlnet_conditioning_scaleoptional
Typenumber
Default0.5
0 – 1
Strength of conditioning applied by ControlNet.
negative_promptoptional
Typestring
Default
Negative prompt specifying image details to exclude, including colors, objects, scenery, or finer features. Examples include a moustache, blur, or low resolution.
image_sizeoptional
Typeobject
square_hdsquareportrait_4_3portrait_16_9landscape_4_3landscape_16_9
Output dimensions, determined automatically from the control image when no size is supplied.
num_inference_stepsoptional
Typeinteger
Default35
1 – 70
Count of inference steps to run.
seedoptional
Typeinteger | null
Seed for reproducing images in Stable Diffusion. An image can be reproduced exactly on every run by keeping the model version, prompt, and seed unchanged.
guidance_scaleoptional
Typenumber
Default7.5
0 – 20
Prompt-adherence strength for image selection, expressed as CFG (Classifier Free Guidance).
num_imagesoptional num_outputs
Typeinteger
Default1
1 – 8
Image count requested for generation.
lorasoptional
Typeobject[]
Default[]
LoRA weights selected for use, provided as a list.
loras[].forceoptional
Typeboolean
Defaultfalse
Whether embedding use is mandatory: true makes it compulsory.
loras[].pathrequired
Typestring
LoRA weight source, supplied as an HF model identifier resolving to safetensors weights or as a safetensors file located by URL or path.
loras[].scaleoptional
Typenumber
Default1
0 – 1
Multiplier applied to the LoRA weight before it is merged into the base model.
embeddingsoptional
Typeobject[]
Default[]
Embeddings selected for use, provided as a list.
embeddings[].pathrequired
Typestring
Embedding weights specified by URL or file path.
embeddings[].tokensoptional
Typestring[]
Embedding token list, with automatic naming available when omitted: each vector in the embedding file receives a token from the sequence <s0>, <s1>, ... .
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Safety checker activation; true enables checking.
safety_checker_versionoptional
Typeenum
Defaultv1
v1v2
Choose between a custom ViT safety checker (`v2`) and the CompVis checker (`v1`, the default).
expand_promptoptional
Typeboolean
Defaultfalse
Prompt expansion with additional prompts, enabled when true.
formatoptional
Typeenum
Defaultjpeg
jpegpng
File format for the resulting image.
request_idoptional
Typestring
Default
Request identifier for correlating a response with the request that produced it.
openpose_image_urloptional
Typeurl · image
URL pointing to the control image.
openpose_preprocessoptional
Typeboolean
Defaulttrue
Controls preprocessing of the openpose image.
depth_image_urloptional
Typeurl · image
URL pointing to the control image.
depth_preprocessoptional
Typeboolean
Defaulttrue
Controls preprocessing of the depth image.
teed_image_urloptional
Typeurl · image
URL pointing to the control image.
teed_preprocessoptional
Typeboolean
Defaulttrue
Controls preprocessing of the teed image.
canny_image_urloptional
Typeurl · image
URL pointing to the control image.
canny_preprocessoptional
Typeboolean
Defaulttrue
Controls preprocessing of the canny image.
normal_image_urloptional
Typeurl · image
URL pointing to the control image.
normal_preprocessoptional
Typeboolean
Defaulttrue
Controls preprocessing of the normal image.
segmentation_image_urloptional
Typeurl · image
URL pointing to the control image.
segmentation_preprocessoptional
Typeboolean
Defaulttrue
Controls preprocessing of the segmentation image.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "sdxl-controlnet-union",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 14,
    "usd": "0.014",
    "charged": 14,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field"
  },
  "output": {
    "images": [
      {
        "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
        "width": 1024,
        "height": 768,
        "content_type": "image/jpeg"
      }
    ],
    "timings": {},
    "seed": 42,
    "has_nsfw_concepts": [
      false
    ],
    "prompt": "string"
  },
  "outputs": [
    {
      "type": "image",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
      "content_type": "image/jpeg",
      "file_size": 1843200,
      "width": 1024,
      "height": 768,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
images
array of object {url, width, height, content_type}File information for the generated images.
timings
object
seed
integerImage-generation seed, including the randomly chosen value if the input omitted a seed; otherwise, it repeats the supplied value.
has_nsfw_concepts
array of booleanIndicates whether NSFW concepts appear in the generated images.
prompt
stringPrompt used during image generation.

More models: Text to Image

For AI agents: this page as Markdown is at https://doitong.com/developers/models/sdxl-controlnet-union.md. All models and guides: https://doitong.com/developers/llms.txt