Warning: this is an experimental feature under active development.
Make sure you’re running the latest commits from dev branch.
Intro
You’re probably already familiar with StableDiffusionPipeline, StableDiffusionImg2ImgPipeline and StableDiffusionInpaintPipeline, but there are many more, with exciting new additions all the time.
We no longer load a list of hard-coded pipelines in init(). Instead, we init and cache each on first use (for faster first calls on cold boots), and, all pipelines, both official diffusers
and community pipelines, are available.
Initially we’ll be focusing on:
https://banana-forums.dev/t/lpw-stable-diffusion-pipeline-longer-prompts-prompt-weights
but there are many more exciting others, like StableDiffusionUpscalePipeline, StableDiffusionImageVariationPipeline, and Imagic Stable Diffusion (can edit existing images using text prompts). Some may already work out the box, so feel free to post your experiences here ![]()
Note: docker-diffusers-api will eventually cover all diffuser’s use-cases, but for now, we’re only looking at Stable Diffusion related use-cases (and this is the kind of input / output we’re developing against).
Available Pipelines
Full list of *available* pipelines (untested)
- Official
- DanceDiffusionPipeline
- DDIMPipeline
- DDPMPipeline
- LDMSuperResolutionPipeline
- LDMPipeline
- PNDMPipeline
- RePaintPipeline
- ScoreSdeVePipeline
- KarrasVePipeline
- AudioDiffusionPipeline
- AltDiffusionImg2ImgPipeline
- AltDiffusionPipeline
- LDMTextToImagePipeline
- PaintByExamplePipeline
- CycleDiffusionPipeline
- StableDiffusionImageVariationPipeline
- StableDiffusionImg2ImgPipeline
- StableDiffusionInpaintPipeline
- StableDiffusionPipeline
- StableDiffusionUpscalePipeline
- VersatileDiffusionDualGuidedPipeline
- VersatileDiffusionImageVariationPipeline
- VersatileDiffusionPipeline
- VersatileDiffusionTextToImagePipeline
- VQDiffusionPipeline
- Community
- wildcard_stable_diffusion
- one_step_unet
- interpolate_stable_diffusion
- img2img_inpainting
- multilingual_stable_diffusion
- text_inpainting
- lpw_stable_diffusion
- lpw_stable_diffusion_onnx
- stable_diffusion_mega
- clip_guided_stable_diffusion
- composable_stable_diffusion
- checkpoint_merger
- imagic_stable_diffusion
- speech_to_image_diffusion
- seed_resize_stable_diffusion
- sd_text2img_k_diffusion
- bit_diffusio
And links with descriptions of each:
- diffusers/src/diffusers/pipelines at main · huggingface/diffusers · GitHub
- diffusers/examples/community at main · huggingface/diffusers · GitHub
Usage
No special build-args are required! ![]()
Simply use the following callInputs:
-
PIPELINE="DesiredPipeline" -
custom_pipeline_method="custom_method"(optional)If the pipeline needs to be called with a custom method (i.e. instead of
pipeline(**inputs), you callpipeline.custom_method(**inputs), you can specify the custom method name here. e.g. forlpw_stable_diffusionthis would betext2img,img2imgorinpaint.