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.