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_diffusion
this would betext2img
,img2img
orinpaint
.