diffusers/docs/source/optimization/onnx.mdx

44 lines
1.7 KiB
Plaintext
Raw Normal View History

<!--Copyright 2022 The HuggingFace Team. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
-->
2022-09-07 03:31:13 -06:00
# How to use the ONNX Runtime for inference
2022-09-07 03:31:13 -06:00
🤗 Diffusers provides a Stable Diffusion pipeline compatible with the ONNX Runtime. This allows you to run Stable Diffusion on any hardware that supports ONNX (including CPUs), and where an accelerated version of PyTorch is not available.
2022-09-07 03:31:13 -06:00
## Installation
2022-09-07 03:31:13 -06:00
- TODO
2022-09-07 03:31:13 -06:00
## Stable Diffusion Inference
2022-09-07 03:31:13 -06:00
The snippet below demonstrates how to use the ONNX runtime. You need to use `StableDiffusionOnnxPipeline` instead of `StableDiffusionPipeline`. You also need to download the weights from the `onnx` branch of the repository, and indicate the runtime provider you want to use.
2022-09-07 03:31:13 -06:00
```python
# make sure you're logged in with `huggingface-cli login`
from diffusers import StableDiffusionOnnxPipeline
2022-09-07 03:31:13 -06:00
pipe = StableDiffusionOnnxPipeline.from_pretrained(
"CompVis/stable-diffusion-v1-4",
revision="onnx",
provider="CUDAExecutionProvider",
use_auth_token=True,
)
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
```
2022-09-07 03:31:13 -06:00
## Known Issues
2022-09-07 03:31:13 -06:00
- Generating multiple prompts in a batch seems to take too much memory. While we look into it, you may need to iterate instead of batching.