Diffusers documentation
OpenVINO
OpenVINO
🤗 Optimum fournit des pipelines Stable Diffusion compatibles avec OpenVINO pour effectuer de l'inférence sur une variété de processeurs Intel (voir la liste complète des appareils pris en charge).
Vous devrez installer 🤗 Optimum Intel avec l’option --upgrade-strategy eager pour vous assurer que optimum-intel utilise la dernière version :
pip install --upgrade-strategy eager optimum["openvino"]Ce guide vous montre comment utiliser les pipelines Stable Diffusion et Stable Diffusion XL (SDXL) avec OpenVINO.
Stable Diffusion
Pour charger et exécuter l'inférence, utilisez OVStableDiffusionPipeline. Si vous souhaitez charger un modèle PyTorch et le convertir au format OpenVINO à la volée, définissez export=True :
from optimum.intel import OVStableDiffusionPipeline
model_id = "stable-diffusion-v1-5/stable-diffusion-v1-5"
pipeline = OVStableDiffusionPipeline.from_pretrained(model_id, export=True)
prompt = "sailing ship in storm by Rembrandt"
image = pipeline(prompt).images[0]
# Don't forget to save the exported model
pipeline.save_pretrained("openvino-sd-v1-5")Pour accélérer davantage l'inférence, redimensionnez statiquement le modèle. Si vous modifiez des paramètres tels que la hauteur ou la largeur des sorties, vous devrez à nouveau redimensionner statiquement votre modèle.
# Define the shapes related to the inputs and desired outputs
batch_size, num_images, height, width = 1, 1, 512, 512
# Statically reshape the model
pipeline.reshape(batch_size, height, width, num_images)
# Compile the model before inference
pipeline.compile()
image = pipeline(
prompt,
height=height,
width=width,
num_images_per_prompt=num_images,
).images[0]
Vous trouverez d'autres exemples dans la documentation de 🤗 Optimum, et Stable Diffusion est pris en charge pour le texte-vers-image, l'image-vers-image et l'inpainting.
Stable Diffusion XL
Pour charger et exécuter l'inférence avec SDXL, utilisez le OVStableDiffusionXLPipeline :
from optimum.intel import OVStableDiffusionXLPipeline
model_id = "stabilityai/stable-diffusion-xl-base-1.0"
pipeline = OVStableDiffusionXLPipeline.from_pretrained(model_id)
prompt = "sailing ship in storm by Rembrandt"
image = pipeline(prompt).images[0]Pour accélérer davantage l'inférence, redimensionner statiquement le modèle comme indiqué dans la section Stable Diffusion.
Vous trouverez d'autres exemples dans la documentation de 🤗 Optimum, et l'exécution de SDXL dans OpenVINO est prise en charge pour le texte-vers-image et l'image-vers-image.
Update on GitHub