stabilityai/stable-diffusion-xl-1.0-tensorrt

stabilityai
Texto a imagen

Conversión optimizada para NVIDIA TensorRT de Stable Diffusion XL 1.0, incluyendo SDXL base 1.0, SDXL refiner 1.0 y variantes SDXL-LCM/SDXL-LCMLoRA. Es un modelo generativo de difusión texto-a-imagen pensado para inferencia acelerada y más eficiente con archivos ONNX y motores TensorRT específicos de la GPU.

Como usar

Ejemplo de uso local con contenedor NVIDIA TensorRT, descarga de pesos desde Hugging Face y ejecución de inferencia optimizada.

git clone https://github.com/rajeevsrao/TensorRT.git
cd TensorRT
git checkout release/9.2
docker run --rm -it --gpus all -v $PWD:/workspace nvcr.io/nvidia/pytorch:23.11-py3 /bin/bash
git lfs install
git clone https://huggingface.co/stabilityai/stable-diffusion-xl-1.0-tensorrt
cd stable-diffusion-xl-1.0-tensorrt
git lfs pull
cd ..
cd demo/Diffusion
python3 -m pip install --upgrade pip
pip3 install -r requirements.txt
python3 -m pip install --pre --upgrade --extra-index-url https://pypi.nvidia.com tensorrt

Inferencia SDXL:

python3 demo_txt2img_xl.py \
  "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" \
  --build-static-batch \
  --use-cuda-graph \
  --num-warmup-runs 1 \
  --width 1024 \
  --height 1024 \
  --denoising-steps 30 \
  --onnx-base-dir /workspace/stable-diffusion-xl-1.0-tensorrt/sdxl-1.0-base \
  --onnx-refiner-dir /workspace/stable-diffusion-xl-1.0-tensorrt/sdxl-1.0-refiner

Inferencia SDXL-LCM:

python3 demo_txt2img_xl.py \
  "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" \
  --version=xl-1.0 \
  --onnx-dir /workspace/stable-diffusion-xl-1.0-tensorrt/lcm \
  --engine-dir /workspace/stable-diffusion-xl-1.0-tensorrt/lcm/engine-sdxl-lcm-nocfg \
  --scheduler LCM \
  --denoising-steps 4 \
  --guidance-scale 0.0 \
  --seed 42

Inferencia SDXL-LCMLORA:

python3 demo_txt2img_xl.py \
  "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" \
  --version=xl-1.0 \
  --onnx-dir /workspace/stable-diffusion-xl-1.0-tensorrt/lcmlora \
  --engine-dir /workspace/stable-diffusion-xl-1.0-tensorrt/lcm/engine-sdxl-lcmlora-nocfg \
  --scheduler LCM \
  --lora-path latent-consistency/lcm-lora-sdxl \
  --lora-scale 1.0 \
  --denoising-steps 4 \
  --guidance-scale 0.0 \
  --seed 42

Funcionalidades

Generación de imágenes a partir de texto con Stable Diffusion XL 1.0.
Inferencia optimizada con NVIDIA TensorRT para mejorar latencia y rendimiento.
Incluye versiones SDXL, SDXL-LCM y SDXL-LCMLoRA.
Usa archivos ONNX alojados en el repositorio para construir motores TensorRT reutilizables.
Rendimiento reportado a 1024x1024: mejoras aproximadas de latencia de 13% en A10, 26% en A100 y 41% en H100 frente a la versión no optimizada.
Throughput reportado a 1024x1024 y 30 pasos: hasta 0,68 imágenes/segundo en H100, con una mejora aproximada del 70%.
Licencia CreativeML Open RAIL++-M.

Casos de uso

Generar imágenes de alta resolución, como 1024x1024, desde prompts de texto.
Desplegar pipelines SDXL con menor latencia en GPUs NVIDIA A10, A100 o H100.
Ejecutar generación texto-a-imagen acelerada en entornos Docker con GPU.
Probar variantes rápidas de SDXL basadas en Latent Consistency Model con pocos pasos de denoising.
Construir motores TensorRT reutilizables para inferencia repetida en la misma aceleradora.