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 fournit un pipeline Stable Diffusion compatible avec ONNX Runtime. Vous devez installer 🤗 Optimum avec la commande suivante pour la prise en charge d'ONNX Runtime :

pip install -q optimum["onnxruntime"]

Ce guide vous montre comment utiliser les pipelines Stable Diffusion et Stable Diffusion XL (SDXL) avec ONNX Runtime.

Stable Diffusion

Pour charger et exécuter l'inférence, utilisez ORTStableDiffusionPipeline. Si vous souhaitez charger un modèle PyTorch et le convertir au format ONNX à la volée, définissez 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")

Générer plusieurs prompts en lot semble consommer trop de mémoire. Pendant que nous investiguons, vous devrez peut-être itérer plutôt que de traiter en lot.

Pour exporter le pipeline au format ONNX hors ligne et l'utiliser ultérieurement pour l'inférence, utilisez la commande optimum-cli export :

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

Ensuite, pour effectuer l'inférence (vous n'avez pas besoin de spécifier export=True à nouveau) :

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]

Vous trouverez d'autres exemples dans la documentation de 🤗 Optimum, et Stable Diffusion est pris en charge pour la génération d'images à partir de texte, la transformation d'image en image et l'inpainting.

Stable Diffusion XL

Pour charger et exécuter l'inférence avec SDXL, utilisez le 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]

Pour exporter le pipeline au format ONNX et l'utiliser ultérieurement pour l'inférence, utilisez la commande optimum-cli export :

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

SDXL au format ONNX est pris en charge pour le texte-vers-image et l'image-vers-image.

Update on GitHub