Reviewed technical guide

Scaling SDXL on an RTX 5090 with a measured workload envelope

Scaling SDXL means finding the largest useful workload that completes reliably in your recorded environment, not filling every available byte of VRAM. Build that operating envelope one variable at a time and keep the accepted output requirement fixed while interpreting the results.

| | 3 min read

Set the baseline envelope

The RTX 5090 manufacturer specification is 32GB of GDDR7 device memory. It does not define an SDXL resolution ceiling. The exact checkpoint, text encoders, conditioning, precision, adapters and decoding path determine the working set together with image size and batch size.

Begin with a known SDXL graph and a single output. Save the model filenames, hashes, software versions and successful result. Keep the graph unchanged as a baseline. Separate a model-loading failure from an out-of-memory error later in the pipeline before deciding what to scale down.

Increase one dimension of work

Test image dimensions and batch size independently. If both increase at once, the result cannot explain which factor crossed the limit. Use a short, recorded series of conditions and include the first failing condition rather than reporting only the most impressive successful image.

A pass should mean that the graph completed and produced an acceptable file, not merely that the sampler started. Include decoding, enhancement and saving. Repeat candidate settings after a clean restart to avoid assuming that a favourable cache state is always available.

Read memory measurements correctly

PyTorch documents peak allocated memory as allocator-tracked tensor memory. A device-wide tool includes other allocations and processes. Preserve both observations with clear labels if you use them; a discrepancy is not evidence that either number is extra available capacity.

Keep headroom for the actual workstation environment and record concurrent applications. Avoid promising a fixed safe margin for every configuration. If a run begins spilling work to system memory or transferring data frequently, record the completion-time effect instead of treating mere completion as equivalent performance.

Separate generation from delivery

When a required final size is outside a comfortable direct-generation envelope, consider a separate enlargement stage using a maintained upscale workflow. Review the output for invented texture, edge changes and text damage. More pixels do not establish that the original scene contains more accurate information.

Maintain separate labels for native generation size and delivered size. An upscaled image must not be presented as a benchmark of direct generation at the larger resolution. The useful outcome is a repeatable route to an accepted deliverable, with its limits documented, rather than a universal claim about what every RTX 5090 can produce.

Sources and further reading