Team Ai
Modelpublic

lmz/rust-stable-diffusion-v1-5

sourceHugging Facecreativeml-openrail-mupdated 3y agoView on Hugging Face
7likes
Model Card

This repository hosts weights for a Rust based version of Stable Diffusion. These weights have been directly adapted from the runwayml/stable-diffusion-v1-5 weights, they can be used with the diffusers-rs crate.

To do so, checkout the diffusers-rs repo, copy the weights in the data/ directory and run the following command:

bash
cargo run --example stable-diffusion --features clap -- --prompt "A rusty robot holding a fire torch."

This is for the image-to-text pipeline, example using the image-to-image and inpainting pipelines can be found in the crate readme.

License

The license is unchanged, see the original version. In line with paragraph 4, the original copyright is preserved: Copyright (c) 2022 Robin Rombach and Patrick Esser and contributors

The model details section below is copied from the runwayml version, refer to the original repo for use restrictions, limitations, bias discussion etc.

Model Details

@InProceedings{Rombach2022CVPR, author = {Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj\"orn}, title = {High-Resolution Image Synthesis With Latent Diffusion Models}, booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, month = {June}, year = {2022}, pages = {10684-10695} }

Weight Extraction

The weights have been converted by downloading them from the runwayml/stable-diffusion-v1.5 repo, and then running the following commands in the diffusers-rs repo.

After downloading the files, use Python to convert them to npz files.

python
import numpy as np
import torch
model = torch.load("./vae.bin")
np.savez("./vae.npz", **{k: v.numpy() for k, v in model.items()})
model = torch.load("./unet.bin")
np.savez("./unet.npz", **{k: v.numpy() for k, v in model.items()})

Convert these .npz files to .ot files via tensor-tools.

bash
cargo run --release --example tensor-tools cp ./data/vae.npz ./data/vae.ot
cargo run --release --example tensor-tools cp ./data/unet.npz ./data/unet.ot