/ Модель

Характеристики

Лицензия
Своя лицензия
Базовая модель
sd-turbo
Опубликована
12 дек 2023

sd-turbo-onnxruntime

Генерация изображенийТекст → изображение

ONNX-конверсия SD-Turbo от Stability AI для быстрой генерации изображений по текстовым запросам на видеокартах NVIDIA через ONNX Runtime CUDA.

0скачиваний за 30 дней7лайковвеса обновлены31 дек 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это конверсия SD-Turbo от Stability AI в формат ONNX, оптимизированная для инференса через ONNX Runtime с CUDA Execution Provider на видеокартах NVIDIA. Модель на основе диффузионной архитектуры создаёт изображения по текстовым запросам; приведённые замеры относятся к изображениям 512×512 на NVIDIA A100 и включают режимы генерации за один или четыре шага.

Репозиторий предназначен для ускоренного запуска SD-Turbo в совместимом окружении ONNX Runtime. В README указана лицензия STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE, которая ограничивает использование условиями некоммерческой исследовательской лицензии. Модель не поддерживает запуск через CPU и DirectML Execution Provider; заявленная оптимизация ориентирована на CUDA.

Сценарии применения

  • генерация изображений по текстовому описанию
  • быстрое создание изображений 512×512 за один или несколько шагов
  • запуск SD-Turbo через ONNX Runtime на GPU NVIDIA

Ограничения

Для инференса требуется ONNX Runtime с CUDA Execution Provider и видеокарта NVIDIA; CPU и DirectML не поддерживаются. Лицензия ограничивает использование условиями некоммерческой исследовательской лицензии Stability AI.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Stable Diffusion Turbo for ONNX Runtime CUDA

Introduction

This repository hosts the optimized ONNX models of SD Turbo to accelerate inference with ONNX Runtime CUDA execution provider for Nvidia GPUs. It cannot run in other providers like CPU and DirectML.

The models are generated by Olive with command like the following:

python stable_diffusion.py --provider cuda --model_id stabilityai/sd-turbo --optimize --use_fp16_fixed_vae

See the usage instructions for how to run the SDXL pipeline with the ONNX files hosted in this repository.

Model Description

Performance

Latency

Below is average latency of generating an image of size 512x512 using NVIDIA A100-SXM4-80GB GPU:

EngineBatch SizeStepsONNX Runtime CUDA
Static1138.2 ms
Static41120.2 ms
Static1468.7 ms
Static44192.6 ms

Static means the engine is built for the given batch size and image size combination, and CUDA graph is used to speed up.

Usage Example

Following the demo instructions. Example steps:

  1. Install nvidia-docker using these instructions.

  2. Clone onnxruntime repository.

git clone https://github.com/microsoft/onnxruntime
cd onnxruntime
  1. Download the ONNX files from this repo
git lfs install
git clone https://huggingface.co/tlwu/sd-turbo-onnxruntime
  1. Launch the docker
docker run --rm -it --gpus all -v $PWD:/workspace nvcr.io/nvidia/pytorch:23.10-py3 /bin/bash
  1. Build ONNX Runtime from source
export CUDACXX=/usr/local/cuda-12.2/bin/nvcc
git config --global --add safe.directory '*'
sh build.sh --config Release  --build_shared_lib --parallel --use_cuda --cuda_version 12.2 \
            --cuda_home /usr/local/cuda-12.2 --cudnn_home /usr/lib/x86_64-linux-gnu/ --build_wheel --skip_tests \
            --use_tensorrt --tensorrt_home /usr/src/tensorrt \
            --cmake_extra_defines onnxruntime_BUILD_UNIT_TESTS=OFF \
            --cmake_extra_defines CMAKE_CUDA_ARCHITECTURES=80 \
            --allow_running_as_root
python3 -m pip install build/Linux/Release/dist/onnxruntime_gpu-*-cp310-cp310-linux_x86_64.whl --force-reinstall

If the GPU is not A100, change CMAKE_CUDA_ARCHITECTURES=80 in the command line according to the GPU compute capacity (like 89 for RTX 4090, or 86 for RTX 3090). If your machine has less than 64GB memory, replace --parallel by --parallel 4 --nvcc_threads 1 to avoid out of memory.

  1. Install libraries and requirements
python3 -m pip install --upgrade pip
cd /workspace/onnxruntime/python/tools/transformers/models/stable_diffusion
python3 -m pip install -r requirements-cuda12.txt
python3 -m pip install --upgrade polygraphy onnx-graphsurgeon --extra-index-url https://pypi.ngc.nvidia.com
  1. Perform ONNX Runtime optimized inference
python3 demo_txt2img.py \
  "starry night over Golden Gate Bridge by van gogh" \
  --version sd-turbo   \
  --engine-dir /workspace/sd-turbo-onnxruntime

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

В компонентах пайплайна нет весов PyTorch/safetensors.

Ревизия весов
a740aad

0 моделей