Optimum Habana is the interface between the Hugging Face Transformers and Diffusers libraries and Habana's Gaudi processor (HPU). It provides a set of tools enabling easy and fast model loading, training and inference on single- and multi-HPU settings for different downstream tasks. Learn more about how to take advantage of the power of Habana HPUs to train and deploy Transformers and Diffusers models at hf.co/hardware/habana.
Stable Diffusion HPU configuration
This model only contains the GaudiConfig file for running Stable Diffusion v2 (e.g. stabilityai/stable-diffusion-2-1) on Habana's Gaudi processors (HPU).
This model contains no model weights, only a GaudiConfig.
This enables to specify:
use_torch_autocast: whether to use Torch Autocast for mixed precisionhmp_bf16_ops: list of operators that should run in bf16hmp_fp32_ops: list of operators that should run in fp32
Usage
The GaudiStableDiffusionPipeline (GaudiDDIMScheduler) is instantiated the same way as the StableDiffusionPipeline (DDIMScheduler) in the ๐ค Diffusers library.
The only difference is that there are a few new training arguments specific to HPUs.
Here is an example with one prompt:
from optimum.habana import GaudiConfig
from optimum.habana.diffusers import GaudiDDIMScheduler, GaudiStableDiffusionPipeline
model_name = "stabilityai/stable-diffusion-2-1"
scheduler = GaudiDDIMScheduler.from_pretrained(model_name, subfolder="scheduler")
pipeline = GaudiStableDiffusionPipeline.from_pretrained(
model_name,
height=768,
width=768,
scheduler=scheduler,
use_habana=True,
use_hpu_graphs=True,
gaudi_config="Habana/stable-diffusion-2",
)
outputs = pipeline(
["An image of a squirrel in Picasso style"],
num_images_per_prompt=6,
batch_size=2,
)
Check out the documentation and this example for more advanced usage.