1. 14 Mar, 2023 1 commit
  2. 13 Mar, 2023 3 commits
  3. 06 Mar, 2023 1 commit
    • Sean Sube's avatar
      add OnnxStableDiffusionUpscalePipeline pipeline (#2158) · 9920c333
      Sean Sube authored
      * [Onnx] add Stable Diffusion Upscale pipeline
      
      * add a test for the OnnxStableDiffusionUpscalePipeline
      
      * check for VAE config before adjusting scaling factor
      
      * update test assertions, lint fixes
      
      * run fix-copies target
      
      * switch test checkpoint to one hosted on huggingface
      
      * partially restore attention mask
      
      * reshape embeddings after running text encoder
      
      * add longer nightly test for ONNX upscale pipeline
      
      * use package import to fix tests
      
      * fix scheduler compatibility and class labels dtype
      
      * use more precise type
      
      * remove LMS from fast tests
      
      * lookup latent and timestamp types
      
      * add docs for ONNX upscaling, rename lookup table
      
      * replace deprecated pipeline names in ONNX docs
      9920c333
  4. 03 Mar, 2023 1 commit
  5. 02 Mar, 2023 2 commits
    • Ilmari Heikkinen's avatar
      8k Stable Diffusion with tiled VAE (#1441) · 80148484
      Ilmari Heikkinen authored
      
      
      * Tiled VAE for high-res text2img and img2img
      
      * vae tiling, fix formatting
      
      * enable_vae_tiling API and tests
      
      * tiled vae docs, disable tiling for images that would have only one tile
      
      * tiled vae tests, use channels_last memory format
      
      * tiled vae tests, use smaller test image
      
      * tiled vae tests, remove tiling test from fast tests
      
      * up
      
      * up
      
      * make style
      
      * Apply suggestions from code review
      
      * Apply suggestions from code review
      
      * Apply suggestions from code review
      
      * make style
      
      * improve naming
      
      * finish
      
      * apply suggestions
      
      * Apply suggestions from code review
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * up
      
      ---------
      Co-authored-by: default avatarIlmari Heikkinen <ilmari@fhtr.org>
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      80148484
    • Takuma Mori's avatar
      Add a ControlNet model & pipeline (#2407) · 8dfff7c0
      Takuma Mori authored
      
      
      * add scaffold
      - copied convert_controlnet_to_diffusers.py from
      convert_original_stable_diffusion_to_diffusers.py
      
      * Add support to load ControlNet (WIP)
      - this makes Missking Key error on ControlNetModel
      
      * Update to convert ControlNet without error msg
      - init impl for StableDiffusionControlNetPipeline
      - init impl for ControlNetModel
      
      * cleanup of commented out
      
      * split create_controlnet_diffusers_config()
      from create_unet_diffusers_config()
      
      - add config: hint_channels
      
      * Add input_hint_block, input_zero_conv and
      middle_block_out
      - this makes missing key error on loading model
      
      * add unet_2d_blocks_controlnet.py
      - copied from unet_2d_blocks.py as impl CrossAttnDownBlock2D,DownBlock2D
      - this makes missing key error on loading model
      
      * Add loading for input_hint_block, zero_convs
      and middle_block_out
      
      - this makes no error message on model loading
      
      * Copy from UNet2DConditionalModel except __init__
      
      * Add ultra primitive test for ControlNetModel
      inference
      
      * Support ControlNetModel inference
      - without exceptions
      
      * copy forward() from UNet2DConditionModel
      
      * Impl ControlledUNet2DConditionModel inference
      - test_controlled_unet_inference passed
      
      * Frozen weight & biases for training
      
      * Minimized version of ControlNet/ControlledUnet
      - test_modules_controllnet.py passed
      
      * make style
      
      * Add support model loading for minimized ver
      
      * Remove all previous version files
      
      * from_pretrained and inference test passed
      
      * copied from pipeline_stable_diffusion.py
      except `__init__()`
      
      * Impl pipeline, pixel match test (almost) passed.
      
      * make style
      
      * make fix-copies
      
      * Fix to add import ControlNet blocks
      for `make fix-copies`
      
      * Remove einops dependency
      
      * Support  np.ndarray, PIL.Image for controlnet_hint
      
      * set default config file as lllyasviel's
      
      * Add support grayscale (hw) numpy array
      
      * Add and update docstrings
      
      * add control_net.mdx
      
      * add control_net.mdx to toctree
      
      * Update copyright year
      
      * Fix to add PIL.Image RGB->BGR conversion
      - thanks @Mystfit
      
      * make fix-copies
      
      * add basic fast test for controlnet
      
      * add slow test for controlnet/unet
      
      * Ignore down/up_block len check on ControlNet
      
      * add a copy from test_stable_diffusion.py
      
      * Accept controlnet_hint is None
      
      * merge pipeline_stable_diffusion.py diff
      
      * Update class name to SDControlNetPipeline
      
      * make style
      
      * Baseline fast test almost passed (w long desc)
      
      * still needs investigate.
      
      Following didn't passed descriped in TODO comment:
      - test_stable_diffusion_long_prompt
      - test_stable_diffusion_no_safety_checker
      
      Following didn't passed same as stable_diffusion_pipeline:
      - test_attention_slicing_forward_pass
      - test_inference_batch_single_identical
      - test_xformers_attention_forwardGenerator_pass
      these seems come from calc accuracy.
      
      * Add note comment related vae_scale_factor
      
      * add test_stable_diffusion_controlnet_ddim
      
      * add assertion for vae_scale_factor != 8
      
      * slow test of pipeline almost passed
      Failed: test_stable_diffusion_pipeline_with_model_offloading
      - ImportError: `enable_model_offload` requires `accelerate v0.17.0` or higher
      
      but currently latest version == 0.16.0
      
      * test_stable_diffusion_long_prompt passed
      
      * test_stable_diffusion_no_safety_checker passed
      
      - due to its model size, move to slow test
      
      * remove PoC test files
      
      * fix num_of_image, prompt length issue add add test
      
      * add support List[PIL.Image] for controlnet_hint
      
      * wip
      
      * all slow test passed
      
      * make style
      
      * update for slow test
      
      * RGB(PIL)->BGR(ctrlnet) conversion
      
      * fixes
      
      * remove manual num_images_per_prompt test
      
      * add document
      
      * add `image` argument docstring
      
      * make style
      
      * Add line to correct conversion
      
      * add controlnet_conditioning_scale (aka control_scales
      strength)
      
      * rgb channel ordering by default
      
      * image batching logic
      
      * Add control image descriptions for each checkpoint
      
      * Only save controlnet model in conversion script
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_controlnet.py
      
      typo
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/control_net.mdx
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * add gerated image example
      
      * a depth mask -> a depth map
      
      * rename control_net.mdx to controlnet.mdx
      
      * fix toc title
      
      * add ControlNet abstruct and link
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_controlnet.py
      Co-authored-by: default avatardqueue <dbyqin@gmail.com>
      
      * remove controlnet constructor arguments re: @patrickvonplaten
      
      * [integration tests] test canny
      
      * test_canny fixes
      
      * [integration tests] test_depth
      
      * [integration tests] test_hed
      
      * [integration tests] test_mlsd
      
      * add channel order config to controlnet
      
      * [integration tests] test normal
      
      * [integration tests] test_openpose test_scribble
      
      * change height and width to default to conditioning image
      
      * [integration tests] test seg
      
      * style
      
      * test_depth fix
      
      * [integration tests] size fixes
      
      * [integration tests] cpu offloading
      
      * style
      
      * generalize controlnet embedding
      
      * fix conversion script
      
      * Update docs/source/en/api/pipelines/stable_diffusion/controlnet.mdx
      Co-authored-by: default avatarSayak Paul <spsayakpaul@gmail.com>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/controlnet.mdx
      Co-authored-by: default avatarSayak Paul <spsayakpaul@gmail.com>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/controlnet.mdx
      Co-authored-by: default avatarSayak Paul <spsayakpaul@gmail.com>
      
      * Update docs/source/en/api/pipelines/stable_diffusion/controlnet.mdx
      Co-authored-by: default avatarSayak Paul <spsayakpaul@gmail.com>
      
      * Style adapted to the documentation of pix2pix
      
      * merge main by hand
      
      * style
      
      * [docs] controlling generation doc nits
      
      * correct some things
      
      * add: controlnetmodel to autodoc.
      
      * finish docs
      
      * finish
      
      * finish 2
      
      * correct images
      
      * finish controlnet
      
      * Apply suggestions from code review
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      
      * uP
      
      * upload model
      
      * up
      
      * up
      
      ---------
      Co-authored-by: default avatarWilliam Berman <WLBberman@gmail.com>
      Co-authored-by: default avatarPedro Cuenca <pedro@huggingface.co>
      Co-authored-by: default avatardqueue <dbyqin@gmail.com>
      Co-authored-by: default avatarSayak Paul <spsayakpaul@gmail.com>
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      8dfff7c0
  6. 01 Mar, 2023 3 commits
  7. 27 Feb, 2023 2 commits
  8. 24 Feb, 2023 1 commit
    • Pedro Cuenca's avatar
      `mps` test fixes (#2470) · 54bc882d
      Pedro Cuenca authored
      * Skip variant tests (UNet1d, UNetRL) on mps.
      
      mish op not yet supported.
      
      * Exclude a couple of panorama tests on mps
      
      They are too slow for fast CI.
      
      * Exclude mps panorama from more tests.
      
      * mps: exclude all fast panorama tests as they keep failing.
      54bc882d
  9. 17 Feb, 2023 3 commits
  10. 16 Feb, 2023 4 commits
    • Patrick von Platen's avatar
      improve tests · 90a624f6
      Patrick von Platen authored
      90a624f6
    • Pedro Cuenca's avatar
      `enable_model_cpu_offload` (#2285) · 2777264e
      Pedro Cuenca authored
      * enable_model_offload PoC
      
      It's surprisingly more involved than expected, see comments in the PR.
      
      * Rename final_offload_hook
      
      * Invoke the vae forward hook manually.
      
      * Completely remove decoder.
      
      * Style
      
      * apply_forward_hook decorator
      
      * Rename method.
      
      * Style
      
      * Copy enable_model_cpu_offload
      
      * Fix copies.
      
      * Remove comment.
      
      * Fix copies
      
      * Missing import
      
      * Fix doc-builder style.
      
      * Merge main and fix again.
      
      * Add docs
      
      * Fix docs.
      
      * Add a couple of tests.
      
      * style
      2777264e
    • Susung Hong's avatar
      Add Self-Attention-Guided (SAG) Stable Diffusion pipeline (#2193) · fa35750d
      Susung Hong authored
      
      
      * Add Stable Diffusion Sw/ elf-Attention Guidance
      
      * Modify __init__.py
      
      * Register attention storing processor
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Editing default value
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update dummy_torch_and_transformers_objects.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_sag.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Create test_stable_diffusion_sag.py
      
      * Create self_attention_guidance.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update test_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Rename self_attention_guidance.py to self_attention_guidance.mdx
      
      * Update self_attention_guidance.mdx
      
      * Update self_attention_guidance.mdx
      
      * Update _toctree.yml
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Fixing order
      
      * Update pipeline_stable_diffusion_sag.py
      
      * fixing import order
      
      * fix order
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Naming change
      
      * Noting pred_x0
      
      * Adding some fast tests
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update test_stable_diffusion_sag.py
      
      * Update test_stable_diffusion_sag.py
      
      * Update test_stable_diffusion_sag.py
      
      * Update docs/source/en/api/pipelines/stable_diffusion/self_attention_guidance.mdx
      
      * implement gaussian_blur
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      * fix tests
      
      * Update pipeline_stable_diffusion_sag.py
      
      * Update pipeline_stable_diffusion_sag.py
      
      ---------
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      Co-authored-by: default avatarWill Berman <wlbberman@gmail.com>
      fa35750d
    • Sayak Paul's avatar
      [Pipelines] Adds pix2pix zero (#2334) · fd3d5502
      Sayak Paul authored
      * add: support for BLIP generation.
      
      * add: support for editing synthetic images.
      
      * remove unnecessary comments.
      
      * add inits and run make fix-copies.
      
      * version change of diffusers.
      
      * fix: condition for loading the captioner.
      
      * default conditions_input_image to False.
      
      * guidance_amount -> cross_attention_guidance_amount
      
      * fix inputs to check_inputs()
      
      * fix: attribute.
      
      * fix: prepare_attention_mask() call.
      
      * debugging.
      
      * better placement of references.
      
      * remove torch.no_grad() decorations.
      
      * put torch.no_grad() context before the first denoising loop.
      
      * detach() latents before decoding them.
      
      * put deocding in a torch.no_grad() context.
      
      * add reconstructed image for debugging.
      
      * no_grad(0
      
      * apply formatting.
      
      * address one-off suggestions from the draft PR.
      
      * back to torch.no_grad() and add more elaborate comments.
      
      * refactor prepare_unet() per Patrick's suggestions.
      
      * more elaborate description for .
      
      * formatting.
      
      * add docstrings to the methods specific to pix2pix zero.
      
      * suspecting a redundant noise prediction.
      
      * needed for gradient computation chain.
      
      * less hacks.
      
      * fix: attention mask handling within the processor.
      
      * remove attention reference map computation.
      
      * fix: cross attn args.
      
      * fix: prcoessor.
      
      * store attention maps.
      
      * fix: attention processor.
      
      * update docs and better treatment to xa args.
      
      * update the final noise computation call.
      
      * change xa args call.
      
      * remove xa args option from the pipeline.
      
      * add: docs.
      
      * first test.
      
      * fix: url call.
      
      * fix: argument call.
      
      * remove image conditioning for now.
      
      * 🚨 add: fast tests.
      
      * explicit placement of the xa attn weights.
      
      * add: slow tests 🐢
      
      * fix: tests.
      
      * edited direction embedding should be on the same device as prompt_embeds.
      
      * debugging message.
      
      * debugging.
      
      * add pix2pix zero pipeline for a non-deterministic test.
      
      * debugging/
      
      * remove debugging message.
      
      * make caption generation _
      
      * address comments (part I).
      
      * address PR comments (part II)
      
      * fix: DDPM test assertion.
      
      * refactor doc.
      
      * address PR comments (part III).
      
      * fix: type annotation for the scheduler.
      
      * apply styling.
      
      * skip_mps and add note on embeddings in the docs.
      fd3d5502
  11. 07 Feb, 2023 2 commits
  12. 31 Jan, 2023 2 commits
  13. 27 Jan, 2023 1 commit
  14. 25 Jan, 2023 2 commits
  15. 22 Jan, 2023 1 commit
  16. 20 Jan, 2023 2 commits
  17. 13 Jan, 2023 1 commit
    • Vladimir Sotnikov's avatar
      [SD Img2Img] resize source images to multiple of 8 instead of 32 (#1571) · 9b37ed33
      Vladimir Sotnikov authored
      
      
      * [Stable Diffusion Img2Img] resize source images to integer multiple of 8 instead of 32
      
      * [Alt Diffusion Img2Img] resize source images to multiple of 8 instead of 32
      
      * [Img2Img] fix AltDiffusion Img2Img resolution test
      
      * [Img2Img] add Stable Diffusion Img2Img resolution test
      
      * [Cycle Diffusion] round resolution to multiplies of 8 instead of 32
      
      * [ONNX SD Img2Img] round resolution to multiplies of 64 instead of 32
      
      * [SD Depth2Img] round resolution to multiplies of 8 instead of 32
      
      * [Repaint] round resolution to multiplies of 8 instead of 32
      
      * fix make style
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      9b37ed33
  18. 25 Dec, 2022 1 commit
  19. 19 Dec, 2022 1 commit
  20. 16 Dec, 2022 2 commits
  21. 13 Dec, 2022 1 commit
  22. 08 Dec, 2022 1 commit
  23. 07 Dec, 2022 1 commit
  24. 06 Dec, 2022 1 commit
    • Anton Lozhkov's avatar
      Standardize fast pipeline tests with PipelineTestMixin (#1526) · 02d83c9f
      Anton Lozhkov authored
      
      
      * [WIP] Standardize fast pipeline tests with PipelineTestMixin
      
      * refactor the sd tests a bit
      
      * add more common tests
      
      * add xformers
      
      * add progressbar test
      
      * cleanup
      
      * upd fp16
      
      * CycleDiffusionPipelineFastTests
      
      * DanceDiffusionPipelineFastTests
      
      * AltDiffusionPipelineFastTests
      
      * StableDiffusion2PipelineFastTests
      
      * StableDiffusion2InpaintPipelineFastTests
      
      * StableDiffusionImageVariationPipelineFastTests
      
      * StableDiffusionImg2ImgPipelineFastTests
      
      * StableDiffusionInpaintPipelineFastTests
      
      * remove unused mixins
      
      * quality
      
      * add missing inits
      
      * try to fix mps tests
      
      * fix mps tests
      
      * add mps warmups
      
      * skip for some pipelines
      
      * style
      
      * Update tests/test_pipelines_common.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      02d83c9f