Skip to main content

Minimal helpers to run standalone Stable Diffusion experiments

Project description

The min_diffusion library

This library was put together for a series of experiments on Classifier-free Guidance.

Install

pip install min_diffusion

How to use min_diffusion

The library has a single main class MinimalDiffusion.

This class takes three arguments:

  • model_name
  • device
  • dtype

model_name is the string model name on the HuggingFace hub.
device sets the hardware to run on.
dtype is the torch.dtype precision for the torch modules.

# import the library
from min_diffusion.core import MinimalDiffusion

Loading a sample model

Below is an example to load the openjourney model from PromptHero.

The model will be loaded in torch.float16 precision and placed on the GPU.

# set the model to load and its options
model_name = 'prompthero/openjourney'
device     = 'cuda'
dtype      = torch.float32
revision   = "fp32"

Creating a MinimalDiffusion with these arguments:

# create the minimal diffusion pipeline
pipeline = MinimalDiffusion(model_name, device, dtype, revision)

Loading the pipeline:

# load the pipeline
pipeline.load();
Enabling default unet attention slicing.

Generating an image

Below is an example text prompt for image generation.

Note the keyword "mdjrny-v4 style" at the start of the prompt. This is how the openjourney model creates images in the style of Midjourney v4.

# text prompt for image generations
prompt = "mdjrny-v4 style a photograph of an astronaut riding a horse"

Calling MinimalDiffusion on the input text prompt

# generate the image
img = pipeline.generate(prompt);
Using the default Classifier-free Guidance.

  0%|          | 0/50 [00:00<?, ?it/s]

Here is the generated image:

# view the output image
img

Notes:

The pipeline assumes you have logged in to the HuggingFace hub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

min_diffusion-0.0.3.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

min_diffusion-0.0.3-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file min_diffusion-0.0.3.tar.gz.

File metadata

  • Download URL: min_diffusion-0.0.3.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for min_diffusion-0.0.3.tar.gz
Algorithm Hash digest
SHA256 a05ead6610b178ea0d1da1e4661808e9c311c2d7424a80da4e77662203e9994d
MD5 24fb3630f44b83eeadc22cea72507a45
BLAKE2b-256 a4f10a9d767f37ba525c3a956bb178b34d6cd0609a9619758b3b7403c576b710

See more details on using hashes here.

File details

Details for the file min_diffusion-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: min_diffusion-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for min_diffusion-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8e463c0db7b193a0c77bab3754ab4b30fec8e88b81df773e5a8a6db776a5eb5b
MD5 0c4cfbd7d718097230edae7496ca501d
BLAKE2b-256 2db0c3a43c05896d1be7b729f0ef0d14da5877b3db8c30f00130d3aea1baee70

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page