Diffusers documentation

ONNX Runtime

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ONNX Runtime

🤗 Optimum fornece um pipeline de Stable Diffusion compatível com ONNX Runtime. Você precisará instalar o 🤗 Optimum com o seguinte comando para suporte ao ONNX Runtime:

pip install -q optimum["onnxruntime"]

Este guia mostrará como usar os pipelines Stable Diffusion e Stable Diffusion XL (SDXL) com o ONNX Runtime.

Stable Diffusion

Para carregar e executar inferência, use o ORTStableDiffusionPipeline. Se você quiser carregar um modelo do PyTorch e convertê-lo para o formato ONNX em tempo de execução, defina export=True:

from optimum.onnxruntime import ORTStableDiffusionPipeline

model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
pipeline = ORTStableDiffusionPipeline.from_pretrained(model_id, export=True)
prompt = "sailing ship in storm by Leonardo da Vinci"
image = pipeline(prompt).images[0]
pipeline.save_pretrained("./onnx-stable-diffusion-v1-5")

Gerar múltiplos prompts em um lote parece consumir muita memória. Enquanto investigamos o problema, você pode precisar iterar em vez de usar lotes.

Para exportar o pipeline no formato ONNX offline e usá-lo posteriormente para inferência, use o comando optimum-cli export:

optimum-cli export onnx --model stable-diffusion-v1-5/stable-diffusion-v1-5 sd_v15_onnx/

Em seguida, para executar a inferência (não é necessário especificar export=True novamente):

from optimum.onnxruntime import ORTStableDiffusionPipeline

model_id = "sd_v15_onnx"
pipeline = ORTStableDiffusionPipeline.from_pretrained(model_id)
prompt = "sailing ship in storm by Leonardo da Vinci"
image = pipeline(prompt).images[0]

Você pode encontrar mais exemplos na documentação do 🤗 Optimum, e o Stable Diffusion é suportado para texto-para-imagem, imagem-para-imagem e inpainting.

Stable Diffusion XL

Para carregar e executar inferência com SDXL, use o ORTStableDiffusionXLPipeline:

from optimum.onnxruntime import ORTStableDiffusionXLPipeline

model_id = "stabilityai/stable-diffusion-xl-base-1.0"
pipeline = ORTStableDiffusionXLPipeline.from_pretrained(model_id)
prompt = "sailing ship in storm by Leonardo da Vinci"
image = pipeline(prompt).images[0]

Para exportar o pipeline no formato ONNX e usá-lo posteriormente para inferência, use o comando optimum-cli export:

optimum-cli export onnx --model stabilityai/stable-diffusion-xl-base-1.0 --task stable-diffusion-xl sd_xl_onnx/

O SDXL no formato ONNX é suportado para texto-para-imagem e imagem-para-imagem.

Update on GitHub