Try MiniMax H3 I2V (Image-to-Video) from MiniMax →
Models
Agents
WorkflowsStudioPricingBlogDocs
ExploreDiscover models by categoryBrowse All ModelsBrowse the complete catalogSee FavoritesSign in to view saved models
OverviewThe platform at a glanceLearnSkills, knowledge, guardrailsAnatomyWhat makes agents reasonBuild Your AgentPick skills, set tier, deploy
Pre-built AgentsBrowse the catalog
Agent Usecases
Ad Campaign ManagerApp Event ManagerApp Review RepliesBarber BookingCustomer Win-BackEcommerce ListingsRestaurant Reviews
Sign InStart Building

Task History

Click to see output list

No tasks yet

Go to Models
Explore models/
Image GenerationActive

diffusers / controlnet-depth-sdxl-1.0

controlnet-depth-sdxl-1.0

bydiffusers

SDXL ControlNet is a neural network structure to control diffusion models by adding extra conditions.

Text to ImageControlnet SdxlFp32
Model ID
controlnet-depth-sdxl-1.0
Provider
diffusers
Added
1700762087
controlnet-depth-sdxl-1.0
0
Comments
Average rating : 0 (0 users)
Providerdiffusers
Modelcontrolnet-depth-sdxl-1.0
Text to ImageControlnet SdxlFp32
wiro playground—diffusers/controlnet-depth-sdxl-1.0
Reset to defaults

Choose an image that will re-generate

Enter one or more image URLs separated by commas for re-generation. Make sure the URLs are accessible.

Preprocess type for ControlNet

Tell us about any details you want to generate

controlnet-depth-sdxl-1.0 scale:

Specify things to not see in the output

Sample outputs
Sample 1
Sample 2
Sample 3
Added 1700762087





SDXL-controlnet: Depth


These are controlnet weights trained on stabilityai/stable-diffusion-xl-base-1.0 with depth conditioning. You can find some example images in the following.
prompt: spiderman lecture, photorealistic






Usage


Make sure to first install the libraries:
pip install accelerate transformers safetensors diffusers

And then we're ready to go:
import torch
import numpy as np
from PIL import Image

from transformers import DPTFeatureExtractor, DPTForDepthEstimation
from diffusers import ControlNetModel, StableDiffusionXLControlNetPipeline, AutoencoderKL
from diffusers.utils import load_image


depth_estimator = DPTForDepthEstimation.from_pretrained("Intel/dpt-hybrid-midas").to("cuda")
feature_extractor = DPTFeatureExtractor.from_pretrained("Intel/dpt-hybrid-midas")
controlnet = ControlNetModel.from_pretrained(
"diffusers/controlnet-depth-sdxl-1.0",
variant="fp16",
use_safetensors=True,
torch_dtype=torch.float16,
).to("cuda")
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16).to("cuda")
pipe = StableDiffusionXLControlNetPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
controlnet=controlnet,
vae=vae,
variant="fp16",
use_safetensors=True,
torch_dtype=torch.float16,
).to("cuda")
pipe.enable_model_cpu_offload()

def get_depth_map(image):
image = feature_extractor(images=image, return_tensors="pt").pixel_values.to("cuda")
with torch.no_grad(), torch.autocast("cuda"):
depth_map = depth_estimator(image).predicted_depth

depth_map = torch.nn.functional.interpolate(
depth_map.unsqueeze(1),
size=(1024, 1024),
mode="bicubic",
align_corners=False,
)
depth_min = torch.amin(depth_map, dim=[1, 2, 3], keepdim=True)
depth_max = torch.amax(depth_map, dim=[1, 2, 3], keepdim=True)
depth_map = (depth_map - depth_min) / (depth_max - depth_min)
image = torch.cat([depth_map] * 3, dim=1)

image = image.permute(0, 2, 3, 1).cpu().numpy()[0]
image = Image.fromarray((image * 255.0).clip(0, 255).astype(np.uint8))
return image


prompt = "stormtrooper lecture, photorealistic"
image = load_image("https://huggingface.co/lllyasviel/sd-controlnet-depth/resolve/main/images/stormtrooper.png")
controlnet_conditioning_scale = 0.5 # recommended for good generalization

depth_image = get_depth_map(image)

images = pipe(
prompt, image=depth_image, num_inference_steps=30, controlnet_conditioning_scale=controlnet_conditioning_scale,
).images
images[0]

images[0].save(f"stormtrooper.png")

To more details, check out the official documentation of StableDiffusionXLControlNetPipeline.





Training


Our training script was built on top of the official training script that we provide here.





Training data and Compute


The model is trained on 3M image-text pairs from LAION-Aesthetics V2. The model is trained for 700 GPU hours on 80GB A100 GPUs.





Batch size


Data parallel with a single gpu batch size of 8 for a total batch size of 256.





Hyper Parameters


Constant learning rate of 1e-5.





Mixed precision


fp16

API quick start

Run controlnet-depth-sdxl-1.0 with a single API call.

POST https://api.wiro.ai/v1/Run/diffusers/controlnet-depth-sdxl-1.0
{
  "prompt": "Stormtrooper's lecture in beautiful lectu…",
  "inputImage": "https://your-cdn.com/input.png",
  "inputImageUrl": "...",
  "preprocess": "--pre_process"
}
View full API docs

Discover, test, and run AI models, build workflows and agents with one unified API.

All systems operational
WiroAboutBlogCareersContact
ProductModelsAgentsPricingPartnerChangelogStatusFAQ
Getting StartedIntroductionAuthenticationProjectsCode ExamplesWiro MCP ServerSelf-Hosted MCPn8n IntegrationLLMs.txt
API ReferenceModelsRun a ModelModel ParametersTasksLLM & Chat StreamingWebSocketRealtime VoiceFiles
© 2026 Wiro AI. All rights reserved.
PrivacyTermsData Deletion