mirror of
https://github.com/huggingface/diffusers.git
synced 2025-12-08 05:24:20 +08:00
Compare commits
2 Commits
fix-motion
...
more-lora-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ca6df34da | ||
|
|
a9880092ce |
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
contact_links:
|
contact_links:
|
||||||
- name: Questions / Discussions
|
- name: Forum
|
||||||
url: https://github.com/huggingface/diffusers/discussions
|
url: https://discuss.huggingface.co/c/discussion-related-to-httpsgithubcomhuggingfacediffusers/63
|
||||||
about: General usage questions and community discussions
|
about: General usage questions and community discussions
|
||||||
|
|||||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -38,7 +38,7 @@ members/contributors who may be interested in your PR.
|
|||||||
|
|
||||||
Core library:
|
Core library:
|
||||||
|
|
||||||
- Schedulers: @yiyixuxu and @patrickvonplaten
|
- Schedulers: @williamberman and @patrickvonplaten
|
||||||
- Pipelines: @patrickvonplaten and @sayakpaul
|
- Pipelines: @patrickvonplaten and @sayakpaul
|
||||||
- Training examples: @sayakpaul and @patrickvonplaten
|
- Training examples: @sayakpaul and @patrickvonplaten
|
||||||
- Docs: @stevhliu and @yiyixuxu
|
- Docs: @stevhliu and @yiyixuxu
|
||||||
|
|||||||
2
.github/workflows/benchmark.yml
vendored
2
.github/workflows/benchmark.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
apt-get update && apt-get install libsndfile1-dev libgl1 -y
|
apt-get update && apt-get install libsndfile1-dev libgl1 -y
|
||||||
python -m pip install -e .[quality,test]
|
python -m pip install -e .[quality,test]
|
||||||
python -m pip install pandas peft
|
python -m pip install pandas
|
||||||
- name: Environment
|
- name: Environment
|
||||||
run: |
|
run: |
|
||||||
python utils/print_env.py
|
python utils/print_env.py
|
||||||
|
|||||||
14
.github/workflows/delete_doc_comment.yml
vendored
Normal file
14
.github/workflows/delete_doc_comment.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
name: Delete doc comment
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: ["Delete doc comment trigger"]
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
delete:
|
||||||
|
uses: huggingface/doc-builder/.github/workflows/delete_doc_comment.yml@main
|
||||||
|
secrets:
|
||||||
|
comment_bot_token: ${{ secrets.COMMENT_BOT_TOKEN }}
|
||||||
12
.github/workflows/delete_doc_comment_trigger.yml
vendored
Normal file
12
.github/workflows/delete_doc_comment_trigger.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
name: Delete doc comment trigger
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [ closed ]
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
delete:
|
||||||
|
uses: huggingface/doc-builder/.github/workflows/delete_doc_comment_trigger.yml@main
|
||||||
|
with:
|
||||||
|
pr_number: ${{ github.event.number }}
|
||||||
2
.github/workflows/pr_test_peft_backend.yml
vendored
2
.github/workflows/pr_test_peft_backend.yml
vendored
@@ -59,7 +59,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Run fast PyTorch LoRA CPU tests with PEFT backend
|
- name: Run fast PyTorch LoRA CPU tests with PEFT backend
|
||||||
run: |
|
run: |
|
||||||
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
|
python -m pytest -n 2 --max-worker-restart=0 --dist=loadfile \
|
||||||
-s -v \
|
-s -v \
|
||||||
--make-reports=tests_${{ matrix.config.report }} \
|
--make-reports=tests_${{ matrix.config.report }} \
|
||||||
tests/lora/test_lora_layers_peft.py
|
tests/lora/test_lora_layers_peft.py
|
||||||
|
|||||||
13
.github/workflows/pr_tests.yml
vendored
13
.github/workflows/pr_tests.yml
vendored
@@ -34,6 +34,11 @@ jobs:
|
|||||||
runner: docker-cpu
|
runner: docker-cpu
|
||||||
image: diffusers/diffusers-pytorch-cpu
|
image: diffusers/diffusers-pytorch-cpu
|
||||||
report: torch_cpu_models_schedulers
|
report: torch_cpu_models_schedulers
|
||||||
|
- name: LoRA
|
||||||
|
framework: lora
|
||||||
|
runner: docker-cpu
|
||||||
|
image: diffusers/diffusers-pytorch-cpu
|
||||||
|
report: torch_cpu_lora
|
||||||
- name: Fast Flax CPU tests
|
- name: Fast Flax CPU tests
|
||||||
framework: flax
|
framework: flax
|
||||||
runner: docker-cpu
|
runner: docker-cpu
|
||||||
@@ -89,6 +94,14 @@ jobs:
|
|||||||
--make-reports=tests_${{ matrix.config.report }} \
|
--make-reports=tests_${{ matrix.config.report }} \
|
||||||
tests/models tests/schedulers tests/others
|
tests/models tests/schedulers tests/others
|
||||||
|
|
||||||
|
- name: Run fast PyTorch LoRA CPU tests
|
||||||
|
if: ${{ matrix.config.framework == 'lora' }}
|
||||||
|
run: |
|
||||||
|
python -m pytest -n 2 --max-worker-restart=0 --dist=loadfile \
|
||||||
|
-s -v -k "not Flax and not Onnx and not Dependency" \
|
||||||
|
--make-reports=tests_${{ matrix.config.report }} \
|
||||||
|
tests/lora
|
||||||
|
|
||||||
- name: Run fast Flax TPU tests
|
- name: Run fast Flax TPU tests
|
||||||
if: ${{ matrix.config.framework == 'flax' }}
|
if: ${{ matrix.config.framework == 'flax' }}
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
2
.github/workflows/push_tests.yml
vendored
2
.github/workflows/push_tests.yml
vendored
@@ -189,7 +189,7 @@ jobs:
|
|||||||
CUBLAS_WORKSPACE_CONFIG: :16:8
|
CUBLAS_WORKSPACE_CONFIG: :16:8
|
||||||
run: |
|
run: |
|
||||||
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
|
python -m pytest -n 1 --max-worker-restart=0 --dist=loadfile \
|
||||||
-s -v -k "not Flax and not Onnx and not PEFTLoRALoading" \
|
-s -v -k "not Flax and not Onnx" \
|
||||||
--make-reports=tests_peft_cuda \
|
--make-reports=tests_peft_cuda \
|
||||||
tests/lora/
|
tests/lora/
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ Please refer to the [How to use Stable Diffusion in Apple Silicon](https://huggi
|
|||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
|
||||||
Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the `from_pretrained` method to load any pretrained diffusion model (browse the [Hub](https://huggingface.co/models?library=diffusers&sort=downloads) for 19000+ checkpoints):
|
Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the `from_pretrained` method to load any pretrained diffusion model (browse the [Hub](https://huggingface.co/models?library=diffusers&sort=downloads) for 16000+ checkpoints):
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from diffusers import DiffusionPipeline
|
from diffusers import DiffusionPipeline
|
||||||
@@ -219,7 +219,7 @@ Also, say 👋 in our public Discord channel <a href="https://discord.gg/G7tWnz9
|
|||||||
- https://github.com/deep-floyd/IF
|
- https://github.com/deep-floyd/IF
|
||||||
- https://github.com/bentoml/BentoML
|
- https://github.com/bentoml/BentoML
|
||||||
- https://github.com/bmaltais/kohya_ss
|
- https://github.com/bmaltais/kohya_ss
|
||||||
- +8000 other amazing GitHub repositories 💪
|
- +7000 other amazing GitHub repositories 💪
|
||||||
|
|
||||||
Thank you for using us ❤️.
|
Thank you for using us ❤️.
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ ENV PATH="/opt/venv/bin:$PATH"
|
|||||||
# pre-install the heavy dependencies (these can later be overridden by the deps from setup.py)
|
# pre-install the heavy dependencies (these can later be overridden by the deps from setup.py)
|
||||||
RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
||||||
python3 -m pip install --no-cache-dir \
|
python3 -m pip install --no-cache-dir \
|
||||||
torch==2.1.2 \
|
torch \
|
||||||
torchvision==0.16.2 \
|
torchvision \
|
||||||
torchaudio==2.1.2 \
|
torchaudio \
|
||||||
onnxruntime \
|
onnxruntime \
|
||||||
--extra-index-url https://download.pytorch.org/whl/cpu && \
|
--extra-index-url https://download.pytorch.org/whl/cpu && \
|
||||||
python3 -m pip install --no-cache-dir \
|
python3 -m pip install --no-cache-dir \
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ ENV PATH="/opt/venv/bin:$PATH"
|
|||||||
# pre-install the heavy dependencies (these can later be overridden by the deps from setup.py)
|
# pre-install the heavy dependencies (these can later be overridden by the deps from setup.py)
|
||||||
RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
||||||
python3 -m pip install --no-cache-dir \
|
python3 -m pip install --no-cache-dir \
|
||||||
torch==2.1.2 \
|
torch \
|
||||||
torchvision==0.16.2 \
|
torchvision \
|
||||||
torchaudio==2.1.2 \
|
torchaudio \
|
||||||
"onnxruntime-gpu>=1.13.1" \
|
"onnxruntime-gpu>=1.13.1" \
|
||||||
--extra-index-url https://download.pytorch.org/whl/cu117 && \
|
--extra-index-url https://download.pytorch.org/whl/cu117 && \
|
||||||
python3 -m pip install --no-cache-dir \
|
python3 -m pip install --no-cache-dir \
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ RUN python3.9 -m pip install --no-cache-dir --upgrade pip && \
|
|||||||
numpy \
|
numpy \
|
||||||
scipy \
|
scipy \
|
||||||
tensorboard \
|
tensorboard \
|
||||||
transformers
|
transformers \
|
||||||
|
omegaconf
|
||||||
|
|
||||||
CMD ["/bin/bash"]
|
CMD ["/bin/bash"]
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
|||||||
scipy \
|
scipy \
|
||||||
tensorboard \
|
tensorboard \
|
||||||
transformers \
|
transformers \
|
||||||
|
omegaconf \
|
||||||
pytorch-lightning
|
pytorch-lightning
|
||||||
|
|
||||||
CMD ["/bin/bash"]
|
CMD ["/bin/bash"]
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ RUN python3 -m pip install --no-cache-dir --upgrade pip && \
|
|||||||
scipy \
|
scipy \
|
||||||
tensorboard \
|
tensorboard \
|
||||||
transformers \
|
transformers \
|
||||||
|
omegaconf \
|
||||||
xformers
|
xformers
|
||||||
|
|
||||||
CMD ["/bin/bash"]
|
CMD ["/bin/bash"]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!---
|
<!---
|
||||||
Copyright 2024- The HuggingFace Team. All rights reserved.
|
Copyright 2023- The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -19,8 +19,6 @@
|
|||||||
title: Train a diffusion model
|
title: Train a diffusion model
|
||||||
- local: tutorials/using_peft_for_inference
|
- local: tutorials/using_peft_for_inference
|
||||||
title: Inference with PEFT
|
title: Inference with PEFT
|
||||||
- local: tutorials/fast_diffusion
|
|
||||||
title: Accelerate inference of text-to-image diffusion models
|
|
||||||
title: Tutorials
|
title: Tutorials
|
||||||
- sections:
|
- sections:
|
||||||
- sections:
|
- sections:
|
||||||
@@ -58,8 +56,6 @@
|
|||||||
- sections:
|
- sections:
|
||||||
- local: using-diffusers/textual_inversion_inference
|
- local: using-diffusers/textual_inversion_inference
|
||||||
title: Textual inversion
|
title: Textual inversion
|
||||||
- local: using-diffusers/ip_adapter
|
|
||||||
title: IP-Adapter
|
|
||||||
- local: training/distributed_inference
|
- local: training/distributed_inference
|
||||||
title: Distributed inference with multiple GPUs
|
title: Distributed inference with multiple GPUs
|
||||||
- local: using-diffusers/reusing_seeds
|
- local: using-diffusers/reusing_seeds
|
||||||
@@ -162,8 +158,6 @@
|
|||||||
title: xFormers
|
title: xFormers
|
||||||
- local: optimization/tome
|
- local: optimization/tome
|
||||||
title: Token merging
|
title: Token merging
|
||||||
- local: optimization/deepcache
|
|
||||||
title: DeepCache
|
|
||||||
title: General optimizations
|
title: General optimizations
|
||||||
- sections:
|
- sections:
|
||||||
- local: using-diffusers/stable_diffusion_jax_how_to
|
- local: using-diffusers/stable_diffusion_jax_how_to
|
||||||
@@ -214,8 +208,6 @@
|
|||||||
title: Textual Inversion
|
title: Textual Inversion
|
||||||
- local: api/loaders/unet
|
- local: api/loaders/unet
|
||||||
title: UNet
|
title: UNet
|
||||||
- local: api/loaders/peft
|
|
||||||
title: PEFT
|
|
||||||
title: Loaders
|
title: Loaders
|
||||||
- sections:
|
- sections:
|
||||||
- local: api/models/overview
|
- local: api/models/overview
|
||||||
@@ -230,8 +222,6 @@
|
|||||||
title: UNet3DConditionModel
|
title: UNet3DConditionModel
|
||||||
- local: api/models/unet-motion
|
- local: api/models/unet-motion
|
||||||
title: UNetMotionModel
|
title: UNetMotionModel
|
||||||
- local: api/models/uvit2d
|
|
||||||
title: UViT2DModel
|
|
||||||
- local: api/models/vq
|
- local: api/models/vq
|
||||||
title: VQModel
|
title: VQModel
|
||||||
- local: api/models/autoencoderkl
|
- local: api/models/autoencoderkl
|
||||||
@@ -274,6 +264,10 @@
|
|||||||
title: ControlNet
|
title: ControlNet
|
||||||
- local: api/pipelines/controlnet_sdxl
|
- local: api/pipelines/controlnet_sdxl
|
||||||
title: ControlNet with Stable Diffusion XL
|
title: ControlNet with Stable Diffusion XL
|
||||||
|
- local: api/pipelines/controlnetxs
|
||||||
|
title: ControlNet-XS
|
||||||
|
- local: api/pipelines/controlnetxs_sdxl
|
||||||
|
title: ControlNet-XS with Stable Diffusion XL
|
||||||
- local: api/pipelines/dance_diffusion
|
- local: api/pipelines/dance_diffusion
|
||||||
title: Dance Diffusion
|
title: Dance Diffusion
|
||||||
- local: api/pipelines/ddim
|
- local: api/pipelines/ddim
|
||||||
@@ -286,8 +280,6 @@
|
|||||||
title: DiffEdit
|
title: DiffEdit
|
||||||
- local: api/pipelines/dit
|
- local: api/pipelines/dit
|
||||||
title: DiT
|
title: DiT
|
||||||
- local: api/pipelines/i2vgenxl
|
|
||||||
title: I2VGen-XL
|
|
||||||
- local: api/pipelines/pix2pix
|
- local: api/pipelines/pix2pix
|
||||||
title: InstructPix2Pix
|
title: InstructPix2Pix
|
||||||
- local: api/pipelines/kandinsky
|
- local: api/pipelines/kandinsky
|
||||||
@@ -306,8 +298,6 @@
|
|||||||
title: MusicLDM
|
title: MusicLDM
|
||||||
- local: api/pipelines/paint_by_example
|
- local: api/pipelines/paint_by_example
|
||||||
title: Paint by Example
|
title: Paint by Example
|
||||||
- local: api/pipelines/pia
|
|
||||||
title: Personalized Image Animator (PIA)
|
|
||||||
- local: api/pipelines/pixart
|
- local: api/pipelines/pixart
|
||||||
title: PixArt-α
|
title: PixArt-α
|
||||||
- local: api/pipelines/self_attention_guidance
|
- local: api/pipelines/self_attention_guidance
|
||||||
@@ -341,8 +331,6 @@
|
|||||||
title: Latent upscaler
|
title: Latent upscaler
|
||||||
- local: api/pipelines/stable_diffusion/upscale
|
- local: api/pipelines/stable_diffusion/upscale
|
||||||
title: Super-resolution
|
title: Super-resolution
|
||||||
- local: api/pipelines/stable_diffusion/k_diffusion
|
|
||||||
title: K-Diffusion
|
|
||||||
- local: api/pipelines/stable_diffusion/ldm3d_diffusion
|
- local: api/pipelines/stable_diffusion/ldm3d_diffusion
|
||||||
title: LDM3D Text-to-(RGB, Depth), Text-to-(RGB-pano, Depth-pano), LDM3D Upscaler
|
title: LDM3D Text-to-(RGB, Depth), Text-to-(RGB-pano, Depth-pano), LDM3D Upscaler
|
||||||
- local: api/pipelines/stable_diffusion/adapter
|
- local: api/pipelines/stable_diffusion/adapter
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -12,11 +12,11 @@ specific language governing permissions and limitations under the License.
|
|||||||
|
|
||||||
# IP-Adapter
|
# IP-Adapter
|
||||||
|
|
||||||
[IP-Adapter](https://hf.co/papers/2308.06721) is a lightweight adapter that enables prompting a diffusion model with an image. This method decouples the cross-attention layers of the image and text features. The image features are generated from an image encoder.
|
[IP-Adapter](https://hf.co/papers/2308.06721) is a lightweight adapter that enables prompting a diffusion model with an image. This method decouples the cross-attention layers of the image and text features. The image features are generated from an image encoder. Files generated from IP-Adapter are only ~100MBs.
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
|
|
||||||
Learn how to load an IP-Adapter checkpoint and image in the IP-Adapter [loading](../../using-diffusers/loading_adapters#ip-adapter) guide, and you can see how to use it in the [usage](../../using-diffusers/ip_adapter) guide.
|
Learn how to load an IP-Adapter checkpoint and image in the [IP-Adapter](../../using-diffusers/loading_adapters#ip-adapter) loading guide.
|
||||||
|
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
||||||
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
||||||
specific language governing permissions and limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
# PEFT
|
|
||||||
|
|
||||||
Diffusers supports loading adapters such as [LoRA](../../using-diffusers/loading_adapters) with the [PEFT](https://huggingface.co/docs/peft/index) library with the [`~loaders.peft.PeftAdapterMixin`] class. This allows modeling classes in Diffusers like [`UNet2DConditionModel`] to load an adapter.
|
|
||||||
|
|
||||||
<Tip>
|
|
||||||
|
|
||||||
Refer to the [Inference with PEFT](../../tutorials/using_peft_for_inference.md) tutorial for an overview of how to use PEFT in Diffusers for inference.
|
|
||||||
|
|
||||||
</Tip>
|
|
||||||
|
|
||||||
## PeftAdapterMixin
|
|
||||||
|
|
||||||
[[autodoc]] loaders.peft.PeftAdapterMixin
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -30,8 +30,8 @@ To learn more about how to load single file weights, see the [Load different Sta
|
|||||||
|
|
||||||
## FromOriginalVAEMixin
|
## FromOriginalVAEMixin
|
||||||
|
|
||||||
[[autodoc]] loaders.autoencoder.FromOriginalVAEMixin
|
[[autodoc]] loaders.single_file.FromOriginalVAEMixin
|
||||||
|
|
||||||
## FromOriginalControlnetMixin
|
## FromOriginalControlnetMixin
|
||||||
|
|
||||||
[[autodoc]] loaders.controlnet.FromOriginalControlNetMixin
|
[[autodoc]] loaders.single_file.FromOriginalControlnetMixin
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -33,9 +33,6 @@ model = AutoencoderKL.from_single_file(url)
|
|||||||
## AutoencoderKL
|
## AutoencoderKL
|
||||||
|
|
||||||
[[autodoc]] AutoencoderKL
|
[[autodoc]] AutoencoderKL
|
||||||
- decode
|
|
||||||
- encode
|
|
||||||
- all
|
|
||||||
|
|
||||||
## AutoencoderKLOutput
|
## AutoencoderKLOutput
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -24,4 +24,4 @@ The abstract from the paper is:
|
|||||||
|
|
||||||
## PriorTransformerOutput
|
## PriorTransformerOutput
|
||||||
|
|
||||||
[[autodoc]] models.transformers.prior_transformer.PriorTransformerOutput
|
[[autodoc]] models.prior_transformer.PriorTransformerOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -38,4 +38,4 @@ It is assumed one of the input classes is the masked latent pixel. The predicted
|
|||||||
|
|
||||||
## Transformer2DModelOutput
|
## Transformer2DModelOutput
|
||||||
|
|
||||||
[[autodoc]] models.transformers.transformer_2d.Transformer2DModelOutput
|
[[autodoc]] models.transformer_2d.Transformer2DModelOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -16,8 +16,8 @@ A Transformer model for video-like data.
|
|||||||
|
|
||||||
## TransformerTemporalModel
|
## TransformerTemporalModel
|
||||||
|
|
||||||
[[autodoc]] models.transformers.transformer_temporal.TransformerTemporalModel
|
[[autodoc]] models.transformer_temporal.TransformerTemporalModel
|
||||||
|
|
||||||
## TransformerTemporalModelOutput
|
## TransformerTemporalModelOutput
|
||||||
|
|
||||||
[[autodoc]] models.transformers.transformer_temporal.TransformerTemporalModelOutput
|
[[autodoc]] models.transformer_temporal.TransformerTemporalModelOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -22,4 +22,4 @@ The abstract from the paper is:
|
|||||||
[[autodoc]] UNetMotionModel
|
[[autodoc]] UNetMotionModel
|
||||||
|
|
||||||
## UNet3DConditionOutput
|
## UNet3DConditionOutput
|
||||||
[[autodoc]] models.unets.unet_3d_condition.UNet3DConditionOutput
|
[[autodoc]] models.unet_3d_condition.UNet3DConditionOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -22,4 +22,4 @@ The abstract from the paper is:
|
|||||||
[[autodoc]] UNet1DModel
|
[[autodoc]] UNet1DModel
|
||||||
|
|
||||||
## UNet1DOutput
|
## UNet1DOutput
|
||||||
[[autodoc]] models.unets.unet_1d.UNet1DOutput
|
[[autodoc]] models.unet_1d.UNet1DOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -22,10 +22,10 @@ The abstract from the paper is:
|
|||||||
[[autodoc]] UNet2DConditionModel
|
[[autodoc]] UNet2DConditionModel
|
||||||
|
|
||||||
## UNet2DConditionOutput
|
## UNet2DConditionOutput
|
||||||
[[autodoc]] models.unets.unet_2d_condition.UNet2DConditionOutput
|
[[autodoc]] models.unet_2d_condition.UNet2DConditionOutput
|
||||||
|
|
||||||
## FlaxUNet2DConditionModel
|
## FlaxUNet2DConditionModel
|
||||||
[[autodoc]] models.unets.unet_2d_condition_flax.FlaxUNet2DConditionModel
|
[[autodoc]] models.unet_2d_condition_flax.FlaxUNet2DConditionModel
|
||||||
|
|
||||||
## FlaxUNet2DConditionOutput
|
## FlaxUNet2DConditionOutput
|
||||||
[[autodoc]] models.unets.unet_2d_condition_flax.FlaxUNet2DConditionOutput
|
[[autodoc]] models.unet_2d_condition_flax.FlaxUNet2DConditionOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -22,4 +22,4 @@ The abstract from the paper is:
|
|||||||
[[autodoc]] UNet2DModel
|
[[autodoc]] UNet2DModel
|
||||||
|
|
||||||
## UNet2DOutput
|
## UNet2DOutput
|
||||||
[[autodoc]] models.unets.unet_2d.UNet2DOutput
|
[[autodoc]] models.unet_2d.UNet2DOutput
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -22,4 +22,4 @@ The abstract from the paper is:
|
|||||||
[[autodoc]] UNet3DConditionModel
|
[[autodoc]] UNet3DConditionModel
|
||||||
|
|
||||||
## UNet3DConditionOutput
|
## UNet3DConditionOutput
|
||||||
[[autodoc]] models.unets.unet_3d_condition.UNet3DConditionOutput
|
[[autodoc]] models.unet_3d_condition.UNet3DConditionOutput
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
||||||
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
||||||
specific language governing permissions and limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
# UVit2DModel
|
|
||||||
|
|
||||||
The [U-ViT](https://hf.co/papers/2301.11093) model is a vision transformer (ViT) based UNet. This model incorporates elements from ViT (considers all inputs such as time, conditions and noisy image patches as tokens) and a UNet (long skip connections between the shallow and deep layers). The skip connection is important for predicting pixel-level features. An additional 3x3 convolutional block is applied prior to the final output to improve image quality.
|
|
||||||
|
|
||||||
The abstract from the paper is:
|
|
||||||
|
|
||||||
*Currently, applying diffusion models in pixel space of high resolution images is difficult. Instead, existing approaches focus on diffusion in lower dimensional spaces (latent diffusion), or have multiple super-resolution levels of generation referred to as cascades. The downside is that these approaches add additional complexity to the diffusion framework. This paper aims to improve denoising diffusion for high resolution images while keeping the model as simple as possible. The paper is centered around the research question: How can one train a standard denoising diffusion models on high resolution images, and still obtain performance comparable to these alternate approaches? The four main findings are: 1) the noise schedule should be adjusted for high resolution images, 2) It is sufficient to scale only a particular part of the architecture, 3) dropout should be added at specific locations in the architecture, and 4) downsampling is an effective strategy to avoid high resolution feature maps. Combining these simple yet effective techniques, we achieve state-of-the-art on image generation among diffusion models without sampling modifiers on ImageNet.*
|
|
||||||
|
|
||||||
## UVit2DModel
|
|
||||||
|
|
||||||
[[autodoc]] UVit2DModel
|
|
||||||
|
|
||||||
## UVit2DConvEmbed
|
|
||||||
|
|
||||||
[[autodoc]] models.unets.uvit_2d.UVit2DConvEmbed
|
|
||||||
|
|
||||||
## UVitBlock
|
|
||||||
|
|
||||||
[[autodoc]] models.unets.uvit_2d.UVitBlock
|
|
||||||
|
|
||||||
## ConvNextBlock
|
|
||||||
|
|
||||||
[[autodoc]] models.unets.uvit_2d.ConvNextBlock
|
|
||||||
|
|
||||||
## ConvMlmLayer
|
|
||||||
|
|
||||||
[[autodoc]] models.unets.uvit_2d.ConvMlmLayer
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -12,36 +12,18 @@ specific language governing permissions and limitations under the License.
|
|||||||
|
|
||||||
# aMUSEd
|
# aMUSEd
|
||||||
|
|
||||||
aMUSEd was introduced in [aMUSEd: An Open MUSE Reproduction](https://huggingface.co/papers/2401.01808) by Suraj Patil, William Berman, Robin Rombach, and Patrick von Platen.
|
Amused is a lightweight text to image model based off of the [muse](https://arxiv.org/pdf/2301.00704.pdf) architecture. Amused is particularly useful in applications that require a lightweight and fast model such as generating many images quickly at once.
|
||||||
|
|
||||||
Amused is a lightweight text to image model based off of the [MUSE](https://arxiv.org/abs/2301.00704) architecture. Amused is particularly useful in applications that require a lightweight and fast model such as generating many images quickly at once.
|
|
||||||
|
|
||||||
Amused is a vqvae token based transformer that can generate an image in fewer forward passes than many diffusion models. In contrast with muse, it uses the smaller text encoder CLIP-L/14 instead of t5-xxl. Due to its small parameter count and few forward pass generation process, amused can generate many images quickly. This benefit is seen particularly at larger batch sizes.
|
Amused is a vqvae token based transformer that can generate an image in fewer forward passes than many diffusion models. In contrast with muse, it uses the smaller text encoder CLIP-L/14 instead of t5-xxl. Due to its small parameter count and few forward pass generation process, amused can generate many images quickly. This benefit is seen particularly at larger batch sizes.
|
||||||
|
|
||||||
The abstract from the paper is:
|
|
||||||
|
|
||||||
*We present aMUSEd, an open-source, lightweight masked image model (MIM) for text-to-image generation based on MUSE. With 10 percent of MUSE's parameters, aMUSEd is focused on fast image generation. We believe MIM is under-explored compared to latent diffusion, the prevailing approach for text-to-image generation. Compared to latent diffusion, MIM requires fewer inference steps and is more interpretable. Additionally, MIM can be fine-tuned to learn additional styles with only a single image. We hope to encourage further exploration of MIM by demonstrating its effectiveness on large-scale text-to-image generation and releasing reproducible training code. We also release checkpoints for two models which directly produce images at 256x256 and 512x512 resolutions.*
|
|
||||||
|
|
||||||
| Model | Params |
|
| Model | Params |
|
||||||
|-------|--------|
|
|-------|--------|
|
||||||
| [amused-256](https://huggingface.co/amused/amused-256) | 603M |
|
| [amused-256](https://huggingface.co/huggingface/amused-256) | 603M |
|
||||||
| [amused-512](https://huggingface.co/amused/amused-512) | 608M |
|
| [amused-512](https://huggingface.co/huggingface/amused-512) | 608M |
|
||||||
|
|
||||||
## AmusedPipeline
|
## AmusedPipeline
|
||||||
|
|
||||||
[[autodoc]] AmusedPipeline
|
[[autodoc]] AmusedPipeline
|
||||||
- __call__
|
|
||||||
- all
|
|
||||||
- enable_xformers_memory_efficient_attention
|
|
||||||
- disable_xformers_memory_efficient_attention
|
|
||||||
|
|
||||||
[[autodoc]] AmusedImg2ImgPipeline
|
|
||||||
- __call__
|
|
||||||
- all
|
|
||||||
- enable_xformers_memory_efficient_attention
|
|
||||||
- disable_xformers_memory_efficient_attention
|
|
||||||
|
|
||||||
[[autodoc]] AmusedInpaintPipeline
|
|
||||||
- __call__
|
- __call__
|
||||||
- all
|
- all
|
||||||
- enable_xformers_memory_efficient_attention
|
- enable_xformers_memory_efficient_attention
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -25,7 +25,6 @@ The abstract of the paper is the following:
|
|||||||
| Pipeline | Tasks | Demo
|
| Pipeline | Tasks | Demo
|
||||||
|---|---|:---:|
|
|---|---|:---:|
|
||||||
| [AnimateDiffPipeline](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/animatediff/pipeline_animatediff.py) | *Text-to-Video Generation with AnimateDiff* |
|
| [AnimateDiffPipeline](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/animatediff/pipeline_animatediff.py) | *Text-to-Video Generation with AnimateDiff* |
|
||||||
| [AnimateDiffVideoToVideoPipeline](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/animatediff/pipeline_animatediff_video2video.py) | *Video-to-Video Generation with AnimateDiff* |
|
|
||||||
|
|
||||||
## Available checkpoints
|
## Available checkpoints
|
||||||
|
|
||||||
@@ -33,29 +32,22 @@ Motion Adapter checkpoints can be found under [guoyww](https://huggingface.co/gu
|
|||||||
|
|
||||||
## Usage example
|
## Usage example
|
||||||
|
|
||||||
### AnimateDiffPipeline
|
|
||||||
|
|
||||||
AnimateDiff works with a MotionAdapter checkpoint and a Stable Diffusion model checkpoint. The MotionAdapter is a collection of Motion Modules that are responsible for adding coherent motion across image frames. These modules are applied after the Resnet and Attention blocks in Stable Diffusion UNet.
|
AnimateDiff works with a MotionAdapter checkpoint and a Stable Diffusion model checkpoint. The MotionAdapter is a collection of Motion Modules that are responsible for adding coherent motion across image frames. These modules are applied after the Resnet and Attention blocks in Stable Diffusion UNet.
|
||||||
|
|
||||||
The following example demonstrates how to use a *MotionAdapter* checkpoint with Diffusers for inference based on StableDiffusion-1.4/1.5.
|
The following example demonstrates how to use a *MotionAdapter* checkpoint with Diffusers for inference based on StableDiffusion-1.4/1.5.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import torch
|
import torch
|
||||||
from diffusers import AnimateDiffPipeline, DDIMScheduler, MotionAdapter
|
from diffusers import MotionAdapter, AnimateDiffPipeline, DDIMScheduler
|
||||||
from diffusers.utils import export_to_gif
|
from diffusers.utils import export_to_gif
|
||||||
|
|
||||||
# Load the motion adapter
|
# Load the motion adapter
|
||||||
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2", torch_dtype=torch.float16)
|
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2")
|
||||||
# load SD 1.5 based finetuned model
|
# load SD 1.5 based finetuned model
|
||||||
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
||||||
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter, torch_dtype=torch.float16)
|
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter)
|
||||||
scheduler = DDIMScheduler.from_pretrained(
|
scheduler = DDIMScheduler.from_pretrained(
|
||||||
model_id,
|
model_id, subfolder="scheduler", clip_sample=False, timestep_spacing="linspace", steps_offset=1
|
||||||
subfolder="scheduler",
|
|
||||||
clip_sample=False,
|
|
||||||
timestep_spacing="linspace",
|
|
||||||
beta_schedule="linear",
|
|
||||||
steps_offset=1,
|
|
||||||
)
|
)
|
||||||
pipe.scheduler = scheduler
|
pipe.scheduler = scheduler
|
||||||
|
|
||||||
@@ -78,7 +70,6 @@ output = pipe(
|
|||||||
)
|
)
|
||||||
frames = output.frames[0]
|
frames = output.frames[0]
|
||||||
export_to_gif(frames, "animation.gif")
|
export_to_gif(frames, "animation.gif")
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Here are some sample outputs:
|
Here are some sample outputs:
|
||||||
@@ -97,143 +88,28 @@ Here are some sample outputs:
|
|||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
|
|
||||||
AnimateDiff tends to work better with finetuned Stable Diffusion models. If you plan on using a scheduler that can clip samples, make sure to disable it by setting `clip_sample=False` in the scheduler as this can also have an adverse effect on generated samples. Additionally, the AnimateDiff checkpoints can be sensitive to the beta schedule of the scheduler. We recommend setting this to `linear`.
|
AnimateDiff tends to work better with finetuned Stable Diffusion models. If you plan on using a scheduler that can clip samples, make sure to disable it by setting `clip_sample=False` in the scheduler as this can also have an adverse effect on generated samples.
|
||||||
|
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
||||||
### AnimateDiffVideoToVideoPipeline
|
|
||||||
|
|
||||||
AnimateDiff can also be used to generate visually similar videos or enable style/character/background or other edits starting from an initial video, allowing you to seamlessly explore creative possibilities.
|
|
||||||
|
|
||||||
```python
|
|
||||||
import imageio
|
|
||||||
import requests
|
|
||||||
import torch
|
|
||||||
from diffusers import AnimateDiffVideoToVideoPipeline, DDIMScheduler, MotionAdapter
|
|
||||||
from diffusers.utils import export_to_gif
|
|
||||||
from io import BytesIO
|
|
||||||
from PIL import Image
|
|
||||||
|
|
||||||
# Load the motion adapter
|
|
||||||
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2", torch_dtype=torch.float16)
|
|
||||||
# load SD 1.5 based finetuned model
|
|
||||||
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
|
||||||
pipe = AnimateDiffVideoToVideoPipeline.from_pretrained(model_id, motion_adapter=adapter, torch_dtype=torch.float16).to("cuda")
|
|
||||||
scheduler = DDIMScheduler.from_pretrained(
|
|
||||||
model_id,
|
|
||||||
subfolder="scheduler",
|
|
||||||
clip_sample=False,
|
|
||||||
timestep_spacing="linspace",
|
|
||||||
beta_schedule="linear",
|
|
||||||
steps_offset=1,
|
|
||||||
)
|
|
||||||
pipe.scheduler = scheduler
|
|
||||||
|
|
||||||
# enable memory savings
|
|
||||||
pipe.enable_vae_slicing()
|
|
||||||
pipe.enable_model_cpu_offload()
|
|
||||||
|
|
||||||
# helper function to load videos
|
|
||||||
def load_video(file_path: str):
|
|
||||||
images = []
|
|
||||||
|
|
||||||
if file_path.startswith(('http://', 'https://')):
|
|
||||||
# If the file_path is a URL
|
|
||||||
response = requests.get(file_path)
|
|
||||||
response.raise_for_status()
|
|
||||||
content = BytesIO(response.content)
|
|
||||||
vid = imageio.get_reader(content)
|
|
||||||
else:
|
|
||||||
# Assuming it's a local file path
|
|
||||||
vid = imageio.get_reader(file_path)
|
|
||||||
|
|
||||||
for frame in vid:
|
|
||||||
pil_image = Image.fromarray(frame)
|
|
||||||
images.append(pil_image)
|
|
||||||
|
|
||||||
return images
|
|
||||||
|
|
||||||
video = load_video("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-vid2vid-input-1.gif")
|
|
||||||
|
|
||||||
output = pipe(
|
|
||||||
video = video,
|
|
||||||
prompt="panda playing a guitar, on a boat, in the ocean, high quality",
|
|
||||||
negative_prompt="bad quality, worse quality",
|
|
||||||
guidance_scale=7.5,
|
|
||||||
num_inference_steps=25,
|
|
||||||
strength=0.5,
|
|
||||||
generator=torch.Generator("cpu").manual_seed(42),
|
|
||||||
)
|
|
||||||
frames = output.frames[0]
|
|
||||||
export_to_gif(frames, "animation.gif")
|
|
||||||
```
|
|
||||||
|
|
||||||
Here are some sample outputs:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th align=center>Source Video</th>
|
|
||||||
<th align=center>Output Video</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align=center>
|
|
||||||
raccoon playing a guitar
|
|
||||||
<br />
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-vid2vid-input-1.gif"
|
|
||||||
alt="racoon playing a guitar"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</td>
|
|
||||||
<td align=center>
|
|
||||||
panda playing a guitar
|
|
||||||
<br/>
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-vid2vid-output-1.gif"
|
|
||||||
alt="panda playing a guitar"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align=center>
|
|
||||||
closeup of margot robbie, fireworks in the background, high quality
|
|
||||||
<br />
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-vid2vid-input-2.gif"
|
|
||||||
alt="closeup of margot robbie, fireworks in the background, high quality"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</td>
|
|
||||||
<td align=center>
|
|
||||||
closeup of tony stark, robert downey jr, fireworks
|
|
||||||
<br/>
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/animatediff-vid2vid-output-2.gif"
|
|
||||||
alt="closeup of tony stark, robert downey jr, fireworks"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Using Motion LoRAs
|
## Using Motion LoRAs
|
||||||
|
|
||||||
Motion LoRAs are a collection of LoRAs that work with the `guoyww/animatediff-motion-adapter-v1-5-2` checkpoint. These LoRAs are responsible for adding specific types of motion to the animations.
|
Motion LoRAs are a collection of LoRAs that work with the `guoyww/animatediff-motion-adapter-v1-5-2` checkpoint. These LoRAs are responsible for adding specific types of motion to the animations.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import torch
|
import torch
|
||||||
from diffusers import AnimateDiffPipeline, DDIMScheduler, MotionAdapter
|
from diffusers import MotionAdapter, AnimateDiffPipeline, DDIMScheduler
|
||||||
from diffusers.utils import export_to_gif
|
from diffusers.utils import export_to_gif
|
||||||
|
|
||||||
# Load the motion adapter
|
# Load the motion adapter
|
||||||
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2", torch_dtype=torch.float16)
|
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2")
|
||||||
# load SD 1.5 based finetuned model
|
# load SD 1.5 based finetuned model
|
||||||
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
||||||
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter, torch_dtype=torch.float16)
|
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter)
|
||||||
pipe.load_lora_weights(
|
pipe.load_lora_weights("guoyww/animatediff-motion-lora-zoom-out", adapter_name="zoom-out")
|
||||||
"guoyww/animatediff-motion-lora-zoom-out", adapter_name="zoom-out"
|
|
||||||
)
|
|
||||||
|
|
||||||
scheduler = DDIMScheduler.from_pretrained(
|
scheduler = DDIMScheduler.from_pretrained(
|
||||||
model_id,
|
model_id, subfolder="scheduler", clip_sample=False, timestep_spacing="linspace", steps_offset=1
|
||||||
subfolder="scheduler",
|
|
||||||
clip_sample=False,
|
|
||||||
beta_schedule="linear",
|
|
||||||
timestep_spacing="linspace",
|
|
||||||
steps_offset=1,
|
|
||||||
)
|
)
|
||||||
pipe.scheduler = scheduler
|
pipe.scheduler = scheduler
|
||||||
|
|
||||||
@@ -256,7 +132,6 @@ output = pipe(
|
|||||||
)
|
)
|
||||||
frames = output.frames[0]
|
frames = output.frames[0]
|
||||||
export_to_gif(frames, "animation.gif")
|
export_to_gif(frames, "animation.gif")
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
@@ -285,30 +160,21 @@ Then you can use the following code to combine Motion LoRAs.
|
|||||||
|
|
||||||
```python
|
```python
|
||||||
import torch
|
import torch
|
||||||
from diffusers import AnimateDiffPipeline, DDIMScheduler, MotionAdapter
|
from diffusers import MotionAdapter, AnimateDiffPipeline, DDIMScheduler
|
||||||
from diffusers.utils import export_to_gif
|
from diffusers.utils import export_to_gif
|
||||||
|
|
||||||
# Load the motion adapter
|
# Load the motion adapter
|
||||||
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2", torch_dtype=torch.float16)
|
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2")
|
||||||
# load SD 1.5 based finetuned model
|
# load SD 1.5 based finetuned model
|
||||||
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
||||||
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter, torch_dtype=torch.float16)
|
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter)
|
||||||
|
|
||||||
pipe.load_lora_weights(
|
pipe.load_lora_weights("diffusers/animatediff-motion-lora-zoom-out", adapter_name="zoom-out")
|
||||||
"diffusers/animatediff-motion-lora-zoom-out", adapter_name="zoom-out",
|
pipe.load_lora_weights("diffusers/animatediff-motion-lora-pan-left", adapter_name="pan-left")
|
||||||
)
|
|
||||||
pipe.load_lora_weights(
|
|
||||||
"diffusers/animatediff-motion-lora-pan-left", adapter_name="pan-left",
|
|
||||||
)
|
|
||||||
pipe.set_adapters(["zoom-out", "pan-left"], adapter_weights=[1.0, 1.0])
|
pipe.set_adapters(["zoom-out", "pan-left"], adapter_weights=[1.0, 1.0])
|
||||||
|
|
||||||
scheduler = DDIMScheduler.from_pretrained(
|
scheduler = DDIMScheduler.from_pretrained(
|
||||||
model_id,
|
model_id, subfolder="scheduler", clip_sample=False, timestep_spacing="linspace", steps_offset=1
|
||||||
subfolder="scheduler",
|
|
||||||
clip_sample=False,
|
|
||||||
timestep_spacing="linspace",
|
|
||||||
beta_schedule="linear",
|
|
||||||
steps_offset=1,
|
|
||||||
)
|
)
|
||||||
pipe.scheduler = scheduler
|
pipe.scheduler = scheduler
|
||||||
|
|
||||||
@@ -331,7 +197,6 @@ output = pipe(
|
|||||||
)
|
)
|
||||||
frames = output.frames[0]
|
frames = output.frames[0]
|
||||||
export_to_gif(frames, "animation.gif")
|
export_to_gif(frames, "animation.gif")
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
@@ -346,62 +211,6 @@ export_to_gif(frames, "animation.gif")
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
## Using FreeInit
|
|
||||||
|
|
||||||
[FreeInit: Bridging Initialization Gap in Video Diffusion Models](https://arxiv.org/abs/2312.07537) by Tianxing Wu, Chenyang Si, Yuming Jiang, Ziqi Huang, Ziwei Liu.
|
|
||||||
|
|
||||||
FreeInit is an effective method that improves temporal consistency and overall quality of videos generated using video-diffusion-models without any addition training. It can be applied to AnimateDiff, ModelScope, VideoCrafter and various other video generation models seamlessly at inference time, and works by iteratively refining the latent-initialization noise. More details can be found it the paper.
|
|
||||||
|
|
||||||
The following example demonstrates the usage of FreeInit.
|
|
||||||
|
|
||||||
```python
|
|
||||||
import torch
|
|
||||||
from diffusers import MotionAdapter, AnimateDiffPipeline, DDIMScheduler
|
|
||||||
from diffusers.utils import export_to_gif
|
|
||||||
|
|
||||||
adapter = MotionAdapter.from_pretrained("guoyww/animatediff-motion-adapter-v1-5-2")
|
|
||||||
model_id = "SG161222/Realistic_Vision_V5.1_noVAE"
|
|
||||||
pipe = AnimateDiffPipeline.from_pretrained(model_id, motion_adapter=adapter, torch_dtype=torch.float16).to("cuda")
|
|
||||||
pipe.scheduler = DDIMScheduler.from_pretrained(
|
|
||||||
model_id,
|
|
||||||
subfolder="scheduler",
|
|
||||||
beta_schedule="linear",
|
|
||||||
clip_sample=False,
|
|
||||||
timestep_spacing="linspace",
|
|
||||||
steps_offset=1
|
|
||||||
)
|
|
||||||
|
|
||||||
# enable memory savings
|
|
||||||
pipe.enable_vae_slicing()
|
|
||||||
pipe.enable_vae_tiling()
|
|
||||||
|
|
||||||
# enable FreeInit
|
|
||||||
# Refer to the enable_free_init documentation for a full list of configurable parameters
|
|
||||||
pipe.enable_free_init(method="butterworth", use_fast_sampling=True)
|
|
||||||
|
|
||||||
# run inference
|
|
||||||
output = pipe(
|
|
||||||
prompt="a panda playing a guitar, on a boat, in the ocean, high quality",
|
|
||||||
negative_prompt="bad quality, worse quality",
|
|
||||||
num_frames=16,
|
|
||||||
guidance_scale=7.5,
|
|
||||||
num_inference_steps=20,
|
|
||||||
generator=torch.Generator("cpu").manual_seed(666),
|
|
||||||
)
|
|
||||||
|
|
||||||
# disable FreeInit
|
|
||||||
pipe.disable_free_init()
|
|
||||||
|
|
||||||
frames = output.frames[0]
|
|
||||||
export_to_gif(frames, "animation.gif")
|
|
||||||
```
|
|
||||||
|
|
||||||
<Tip warning={true}>
|
|
||||||
|
|
||||||
FreeInit is not really free - the improved quality comes at the cost of extra computation. It requires sampling a few extra times depending on the `num_iters` parameter that is set when enabling it. Setting the `use_fast_sampling` parameter to `True` can improve the overall performance (at the cost of lower quality compared to when `use_fast_sampling=False` but still better results than vanilla video generation models).
|
|
||||||
|
|
||||||
</Tip>
|
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
|
|
||||||
Make sure to check out the Schedulers [guide](../../using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](../../using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines.
|
Make sure to check out the Schedulers [guide](../../using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](../../using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines.
|
||||||
@@ -411,14 +220,14 @@ Make sure to check out the Schedulers [guide](../../using-diffusers/schedulers)
|
|||||||
## AnimateDiffPipeline
|
## AnimateDiffPipeline
|
||||||
|
|
||||||
[[autodoc]] AnimateDiffPipeline
|
[[autodoc]] AnimateDiffPipeline
|
||||||
- all
|
- all
|
||||||
- __call__
|
- __call__
|
||||||
|
- enable_freeu
|
||||||
## AnimateDiffVideoToVideoPipeline
|
- disable_freeu
|
||||||
|
- enable_vae_slicing
|
||||||
[[autodoc]] AnimateDiffVideoToVideoPipeline
|
- disable_vae_slicing
|
||||||
- all
|
- enable_vae_tiling
|
||||||
- __call__
|
- disable_vae_tiling
|
||||||
|
|
||||||
## AnimateDiffPipelineOutput
|
## AnimateDiffPipelineOutput
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,3 +1,15 @@
|
|||||||
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
||||||
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
# ControlNet-XS
|
# ControlNet-XS
|
||||||
|
|
||||||
ControlNet-XS was introduced in [ControlNet-XS](https://vislearn.github.io/ControlNet-XS/) by Denis Zavadski and Carsten Rother. It is based on the observation that the control model in the [original ControlNet](https://huggingface.co/papers/2302.05543) can be made much smaller and still produce good results.
|
ControlNet-XS was introduced in [ControlNet-XS](https://vislearn.github.io/ControlNet-XS/) by Denis Zavadski and Carsten Rother. It is based on the observation that the control model in the [original ControlNet](https://huggingface.co/papers/2302.05543) can be made much smaller and still produce good results.
|
||||||
@@ -12,5 +24,16 @@ Here's the overview from the [project page](https://vislearn.github.io/ControlNe
|
|||||||
|
|
||||||
This model was contributed by [UmerHA](https://twitter.com/UmerHAdil). ❤️
|
This model was contributed by [UmerHA](https://twitter.com/UmerHAdil). ❤️
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
|
||||||
> 🧠 Make sure to check out the Schedulers [guide](https://huggingface.co/docs/diffusers/main/en/using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](https://huggingface.co/docs/diffusers/main/en/using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines.
|
Make sure to check out the Schedulers [guide](../../using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](../../using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines.
|
||||||
|
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
## StableDiffusionControlNetXSPipeline
|
||||||
|
[[autodoc]] StableDiffusionControlNetXSPipeline
|
||||||
|
- all
|
||||||
|
- __call__
|
||||||
|
|
||||||
|
## StableDiffusionPipelineOutput
|
||||||
|
[[autodoc]] pipelines.stable_diffusion.StableDiffusionPipelineOutput
|
||||||
@@ -1,3 +1,15 @@
|
|||||||
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
||||||
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
# ControlNet-XS with Stable Diffusion XL
|
# ControlNet-XS with Stable Diffusion XL
|
||||||
|
|
||||||
ControlNet-XS was introduced in [ControlNet-XS](https://vislearn.github.io/ControlNet-XS/) by Denis Zavadski and Carsten Rother. It is based on the observation that the control model in the [original ControlNet](https://huggingface.co/papers/2302.05543) can be made much smaller and still produce good results.
|
ControlNet-XS was introduced in [ControlNet-XS](https://vislearn.github.io/ControlNet-XS/) by Denis Zavadski and Carsten Rother. It is based on the observation that the control model in the [original ControlNet](https://huggingface.co/papers/2302.05543) can be made much smaller and still produce good results.
|
||||||
@@ -12,4 +24,22 @@ Here's the overview from the [project page](https://vislearn.github.io/ControlNe
|
|||||||
|
|
||||||
This model was contributed by [UmerHA](https://twitter.com/UmerHAdil). ❤️
|
This model was contributed by [UmerHA](https://twitter.com/UmerHAdil). ❤️
|
||||||
|
|
||||||
> 🧠 Make sure to check out the Schedulers [guide](https://huggingface.co/docs/diffusers/main/en/using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](https://huggingface.co/docs/diffusers/main/en/using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines.
|
<Tip warning={true}>
|
||||||
|
|
||||||
|
🧪 Many of the SDXL ControlNet checkpoints are experimental, and there is a lot of room for improvement. Feel free to open an [Issue](https://github.com/huggingface/diffusers/issues/new/choose) and leave us feedback on how we can improve!
|
||||||
|
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
|
||||||
|
Make sure to check out the Schedulers [guide](../../using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](../../using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines.
|
||||||
|
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
## StableDiffusionXLControlNetXSPipeline
|
||||||
|
[[autodoc]] StableDiffusionXLControlNetXSPipeline
|
||||||
|
- all
|
||||||
|
- __call__
|
||||||
|
|
||||||
|
## StableDiffusionPipelineOutput
|
||||||
|
[[autodoc]] pipelines.stable_diffusion.StableDiffusionPipelineOutput
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
||||||
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
||||||
specific language governing permissions and limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
# I2VGen-XL
|
|
||||||
|
|
||||||
[I2VGen-XL: High-Quality Image-to-Video Synthesis via Cascaded Diffusion Models](https://hf.co/papers/2311.04145.pdf) by Shiwei Zhang, Jiayu Wang, Yingya Zhang, Kang Zhao, Hangjie Yuan, Zhiwu Qin, Xiang Wang, Deli Zhao, and Jingren Zhou.
|
|
||||||
|
|
||||||
The abstract from the paper is:
|
|
||||||
|
|
||||||
*Video synthesis has recently made remarkable strides benefiting from the rapid development of diffusion models. However, it still encounters challenges in terms of semantic accuracy, clarity and spatio-temporal continuity. They primarily arise from the scarcity of well-aligned text-video data and the complex inherent structure of videos, making it difficult for the model to simultaneously ensure semantic and qualitative excellence. In this report, we propose a cascaded I2VGen-XL approach that enhances model performance by decoupling these two factors and ensures the alignment of the input data by utilizing static images as a form of crucial guidance. I2VGen-XL consists of two stages: i) the base stage guarantees coherent semantics and preserves content from input images by using two hierarchical encoders, and ii) the refinement stage enhances the video's details by incorporating an additional brief text and improves the resolution to 1280×720. To improve the diversity, we collect around 35 million single-shot text-video pairs and 6 billion text-image pairs to optimize the model. By this means, I2VGen-XL can simultaneously enhance the semantic accuracy, continuity of details and clarity of generated videos. Through extensive experiments, we have investigated the underlying principles of I2VGen-XL and compared it with current top methods, which can demonstrate its effectiveness on diverse data. The source code and models will be publicly available at [this https URL](https://i2vgen-xl.github.io/).*
|
|
||||||
|
|
||||||
The original codebase can be found [here](https://github.com/ali-vilab/i2vgen-xl/). The model checkpoints can be found [here](https://huggingface.co/ali-vilab/).
|
|
||||||
|
|
||||||
<Tip>
|
|
||||||
|
|
||||||
Make sure to check out the Schedulers [guide](../../using-diffusers/schedulers) to learn how to explore the tradeoff between scheduler speed and quality, and see the [reuse components across pipelines](../../using-diffusers/loading#reuse-components-across-pipelines) section to learn how to efficiently load the same components into multiple pipelines. Also, to know more about reducing the memory usage of this pipeline, refer to the ["Reduce memory usage"] section [here](../../using-diffusers/svd#reduce-memory-usage).
|
|
||||||
|
|
||||||
</Tip>
|
|
||||||
|
|
||||||
Sample output with I2VGenXL:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td><center>
|
|
||||||
library.
|
|
||||||
<br>
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/i2vgen-xl-example.gif"
|
|
||||||
alt="library"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</center></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
* I2VGenXL always uses a `clip_skip` value of 1. This means it leverages the penultimate layer representations from the text encoder of CLIP.
|
|
||||||
* It can generate videos of quality that is often on par with [Stable Video Diffusion](../../using-diffusers/svd) (SVD).
|
|
||||||
* Unlike SVD, it additionally accepts text prompts as inputs.
|
|
||||||
* It can generate higher resolution videos.
|
|
||||||
* When using the [`DDIMScheduler`] (which is default for this pipeline), less than 50 steps for inference leads to bad results.
|
|
||||||
|
|
||||||
## I2VGenXLPipeline
|
|
||||||
[[autodoc]] I2VGenXLPipeline
|
|
||||||
- all
|
|
||||||
- __call__
|
|
||||||
|
|
||||||
## I2VGenXLPipelineOutput
|
|
||||||
[[autodoc]] pipelines.i2vgen_xl.pipeline_i2vgen_xl.I2VGenXLPipelineOutput
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,167 +0,0 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
||||||
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
||||||
specific language governing permissions and limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
# Image-to-Video Generation with PIA (Personalized Image Animator)
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
[PIA: Your Personalized Image Animator via Plug-and-Play Modules in Text-to-Image Models](https://arxiv.org/abs/2312.13964) by Yiming Zhang, Zhening Xing, Yanhong Zeng, Youqing Fang, Kai Chen
|
|
||||||
|
|
||||||
Recent advancements in personalized text-to-image (T2I) models have revolutionized content creation, empowering non-experts to generate stunning images with unique styles. While promising, adding realistic motions into these personalized images by text poses significant challenges in preserving distinct styles, high-fidelity details, and achieving motion controllability by text. In this paper, we present PIA, a Personalized Image Animator that excels in aligning with condition images, achieving motion controllability by text, and the compatibility with various personalized T2I models without specific tuning. To achieve these goals, PIA builds upon a base T2I model with well-trained temporal alignment layers, allowing for the seamless transformation of any personalized T2I model into an image animation model. A key component of PIA is the introduction of the condition module, which utilizes the condition frame and inter-frame affinity as input to transfer appearance information guided by the affinity hint for individual frame synthesis in the latent space. This design mitigates the challenges of appearance-related image alignment within and allows for a stronger focus on aligning with motion-related guidance.
|
|
||||||
|
|
||||||
[Project page](https://pi-animator.github.io/)
|
|
||||||
|
|
||||||
## Available Pipelines
|
|
||||||
|
|
||||||
| Pipeline | Tasks | Demo
|
|
||||||
|---|---|:---:|
|
|
||||||
| [PIAPipeline](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pia/pipeline_pia.py) | *Image-to-Video Generation with PIA* |
|
|
||||||
|
|
||||||
## Available checkpoints
|
|
||||||
|
|
||||||
Motion Adapter checkpoints for PIA can be found under the [OpenMMLab org](https://huggingface.co/openmmlab/PIA-condition-adapter). These checkpoints are meant to work with any model based on Stable Diffusion 1.5
|
|
||||||
|
|
||||||
## Usage example
|
|
||||||
|
|
||||||
PIA works with a MotionAdapter checkpoint and a Stable Diffusion 1.5 model checkpoint. The MotionAdapter is a collection of Motion Modules that are responsible for adding coherent motion across image frames. These modules are applied after the Resnet and Attention blocks in the Stable Diffusion UNet. In addition to the motion modules, PIA also replaces the input convolution layer of the SD 1.5 UNet model with a 9 channel input convolution layer.
|
|
||||||
|
|
||||||
The following example demonstrates how to use PIA to generate a video from a single image.
|
|
||||||
|
|
||||||
```python
|
|
||||||
import torch
|
|
||||||
from diffusers import (
|
|
||||||
EulerDiscreteScheduler,
|
|
||||||
MotionAdapter,
|
|
||||||
PIAPipeline,
|
|
||||||
)
|
|
||||||
from diffusers.utils import export_to_gif, load_image
|
|
||||||
|
|
||||||
adapter = MotionAdapter.from_pretrained("openmmlab/PIA-condition-adapter")
|
|
||||||
pipe = PIAPipeline.from_pretrained("SG161222/Realistic_Vision_V6.0_B1_noVAE", motion_adapter=adapter, torch_dtype=torch.float16)
|
|
||||||
|
|
||||||
pipe.scheduler = EulerDiscreteScheduler.from_config(pipe.scheduler.config)
|
|
||||||
pipe.enable_model_cpu_offload()
|
|
||||||
pipe.enable_vae_slicing()
|
|
||||||
|
|
||||||
image = load_image(
|
|
||||||
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/pix2pix/cat_6.png?download=true"
|
|
||||||
)
|
|
||||||
image = image.resize((512, 512))
|
|
||||||
prompt = "cat in a field"
|
|
||||||
negative_prompt = "wrong white balance, dark, sketches,worst quality,low quality"
|
|
||||||
|
|
||||||
generator = torch.Generator("cpu").manual_seed(0)
|
|
||||||
output = pipe(image=image, prompt=prompt, generator=generator)
|
|
||||||
frames = output.frames[0]
|
|
||||||
export_to_gif(frames, "pia-animation.gif")
|
|
||||||
```
|
|
||||||
|
|
||||||
Here are some sample outputs:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td><center>
|
|
||||||
cat in a field.
|
|
||||||
<br>
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/pia-default-output.gif"
|
|
||||||
alt="cat in a field"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</center></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
<Tip>
|
|
||||||
|
|
||||||
If you plan on using a scheduler that can clip samples, make sure to disable it by setting `clip_sample=False` in the scheduler as this can also have an adverse effect on generated samples. Additionally, the PIA checkpoints can be sensitive to the beta schedule of the scheduler. We recommend setting this to `linear`.
|
|
||||||
|
|
||||||
</Tip>
|
|
||||||
|
|
||||||
## Using FreeInit
|
|
||||||
|
|
||||||
[FreeInit: Bridging Initialization Gap in Video Diffusion Models](https://arxiv.org/abs/2312.07537) by Tianxing Wu, Chenyang Si, Yuming Jiang, Ziqi Huang, Ziwei Liu.
|
|
||||||
|
|
||||||
FreeInit is an effective method that improves temporal consistency and overall quality of videos generated using video-diffusion-models without any addition training. It can be applied to PIA, AnimateDiff, ModelScope, VideoCrafter and various other video generation models seamlessly at inference time, and works by iteratively refining the latent-initialization noise. More details can be found it the paper.
|
|
||||||
|
|
||||||
The following example demonstrates the usage of FreeInit.
|
|
||||||
|
|
||||||
```python
|
|
||||||
import torch
|
|
||||||
from diffusers import (
|
|
||||||
DDIMScheduler,
|
|
||||||
MotionAdapter,
|
|
||||||
PIAPipeline,
|
|
||||||
)
|
|
||||||
from diffusers.utils import export_to_gif, load_image
|
|
||||||
|
|
||||||
adapter = MotionAdapter.from_pretrained("openmmlab/PIA-condition-adapter")
|
|
||||||
pipe = PIAPipeline.from_pretrained("SG161222/Realistic_Vision_V6.0_B1_noVAE", motion_adapter=adapter)
|
|
||||||
|
|
||||||
# enable FreeInit
|
|
||||||
# Refer to the enable_free_init documentation for a full list of configurable parameters
|
|
||||||
pipe.enable_free_init(method="butterworth", use_fast_sampling=True)
|
|
||||||
|
|
||||||
# Memory saving options
|
|
||||||
pipe.enable_model_cpu_offload()
|
|
||||||
pipe.enable_vae_slicing()
|
|
||||||
|
|
||||||
pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
|
|
||||||
image = load_image(
|
|
||||||
"https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/pix2pix/cat_6.png?download=true"
|
|
||||||
)
|
|
||||||
image = image.resize((512, 512))
|
|
||||||
prompt = "cat in a field"
|
|
||||||
negative_prompt = "wrong white balance, dark, sketches,worst quality,low quality"
|
|
||||||
|
|
||||||
generator = torch.Generator("cpu").manual_seed(0)
|
|
||||||
|
|
||||||
output = pipe(image=image, prompt=prompt, generator=generator)
|
|
||||||
frames = output.frames[0]
|
|
||||||
export_to_gif(frames, "pia-freeinit-animation.gif")
|
|
||||||
```
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td><center>
|
|
||||||
cat in a field.
|
|
||||||
<br>
|
|
||||||
<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/pia-freeinit-output-cat.gif"
|
|
||||||
alt="cat in a field"
|
|
||||||
style="width: 300px;" />
|
|
||||||
</center></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
<Tip warning={true}>
|
|
||||||
|
|
||||||
FreeInit is not really free - the improved quality comes at the cost of extra computation. It requires sampling a few extra times depending on the `num_iters` parameter that is set when enabling it. Setting the `use_fast_sampling` parameter to `True` can improve the overall performance (at the cost of lower quality compared to when `use_fast_sampling=False` but still better results than vanilla video generation models).
|
|
||||||
|
|
||||||
</Tip>
|
|
||||||
|
|
||||||
## PIAPipeline
|
|
||||||
|
|
||||||
[[autodoc]] PIAPipeline
|
|
||||||
- all
|
|
||||||
- __call__
|
|
||||||
- enable_freeu
|
|
||||||
- disable_freeu
|
|
||||||
- enable_free_init
|
|
||||||
- disable_free_init
|
|
||||||
- enable_vae_slicing
|
|
||||||
- disable_vae_slicing
|
|
||||||
- enable_vae_tiling
|
|
||||||
- disable_vae_tiling
|
|
||||||
|
|
||||||
## PIAPipelineOutput
|
|
||||||
|
|
||||||
[[autodoc]] pipelines.pia.PIAPipelineOutput
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The GLIGEN Authors and The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The GLIGEN Authors and The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
||||||
the License. You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
||||||
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
||||||
specific language governing permissions and limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
# K-Diffusion
|
|
||||||
|
|
||||||
[k-diffusion](https://github.com/crowsonkb/k-diffusion) is a popular library created by [Katherine Crowson](https://github.com/crowsonkb/). We provide `StableDiffusionKDiffusionPipeline` and `StableDiffusionXLKDiffusionPipeline` that allow you to run Stable DIffusion with samplers from k-diffusion.
|
|
||||||
|
|
||||||
Note that most the samplers from k-diffusion are implemented in Diffusers and we recommend using existing schedulers. You can find a mapping between k-diffusion samplers and schedulers in Diffusers [here](https://huggingface.co/docs/diffusers/api/schedulers/overview)
|
|
||||||
|
|
||||||
|
|
||||||
## StableDiffusionKDiffusionPipeline
|
|
||||||
|
|
||||||
[[autodoc]] StableDiffusionKDiffusionPipeline
|
|
||||||
|
|
||||||
|
|
||||||
## StableDiffusionXLKDiffusionPipeline
|
|
||||||
|
|
||||||
[[autodoc]] StableDiffusionXLKDiffusionPipeline
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The Intel Labs Team Authors and HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The Intel Labs Team Authors and HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!--Copyright 2024 The HuggingFace Team. All rights reserved.
|
<!--Copyright 2023 The HuggingFace Team. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
@@ -41,7 +41,7 @@ pipe = DiffusionPipeline.from_pretrained("damo-vilab/text-to-video-ms-1.7b", tor
|
|||||||
pipe = pipe.to("cuda")
|
pipe = pipe.to("cuda")
|
||||||
|
|
||||||
prompt = "Spiderman is surfing"
|
prompt = "Spiderman is surfing"
|
||||||
video_frames = pipe(prompt).frames[0]
|
video_frames = pipe(prompt).frames
|
||||||
video_path = export_to_video(video_frames)
|
video_path = export_to_video(video_frames)
|
||||||
video_path
|
video_path
|
||||||
```
|
```
|
||||||
@@ -64,7 +64,7 @@ pipe.enable_model_cpu_offload()
|
|||||||
pipe.enable_vae_slicing()
|
pipe.enable_vae_slicing()
|
||||||
|
|
||||||
prompt = "Darth Vader surfing a wave"
|
prompt = "Darth Vader surfing a wave"
|
||||||
video_frames = pipe(prompt, num_frames=64).frames[0]
|
video_frames = pipe(prompt, num_frames=64).frames
|
||||||
video_path = export_to_video(video_frames)
|
video_path = export_to_video(video_frames)
|
||||||
video_path
|
video_path
|
||||||
```
|
```
|
||||||
@@ -83,7 +83,7 @@ pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
|
|||||||
pipe.enable_model_cpu_offload()
|
pipe.enable_model_cpu_offload()
|
||||||
|
|
||||||
prompt = "Spiderman is surfing"
|
prompt = "Spiderman is surfing"
|
||||||
video_frames = pipe(prompt, num_inference_steps=25).frames[0]
|
video_frames = pipe(prompt, num_inference_steps=25).frames
|
||||||
video_path = export_to_video(video_frames)
|
video_path = export_to_video(video_frames)
|
||||||
video_path
|
video_path
|
||||||
```
|
```
|
||||||
@@ -130,7 +130,7 @@ pipe.unet.enable_forward_chunking(chunk_size=1, dim=1)
|
|||||||
pipe.enable_vae_slicing()
|
pipe.enable_vae_slicing()
|
||||||
|
|
||||||
prompt = "Darth Vader surfing a wave"
|
prompt = "Darth Vader surfing a wave"
|
||||||
video_frames = pipe(prompt, num_frames=24).frames[0]
|
video_frames = pipe(prompt, num_frames=24).frames
|
||||||
video_path = export_to_video(video_frames)
|
video_path = export_to_video(video_frames)
|
||||||
video_path
|
video_path
|
||||||
```
|
```
|
||||||
@@ -148,7 +148,7 @@ pipe.enable_vae_slicing()
|
|||||||
|
|
||||||
video = [Image.fromarray(frame).resize((1024, 576)) for frame in video_frames]
|
video = [Image.fromarray(frame).resize((1024, 576)) for frame in video_frames]
|
||||||
|
|
||||||
video_frames = pipe(prompt, video=video, strength=0.6).frames[0]
|
video_frames = pipe(prompt, video=video, strength=0.6).frames
|
||||||
video_path = export_to_video(video_frames)
|
video_path = export_to_video(video_frames)
|
||||||
video_path
|
video_path
|
||||||
```
|
```
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user