Unverified Commit b6e0b016 authored by Dhruv Nair's avatar Dhruv Nair Committed by GitHub
Browse files

Lazy Import for Diffusers (#4829)



* initial commit

* move modules to import struct

* add dummy objects and _LazyModule

* add lazy import to schedulers

* clean up unused imports

* lazy import on models module

* lazy import for schedulers module

* add lazy import to pipelines module

* lazy import altdiffusion

* lazy import audio diffusion

* lazy import audioldm

* lazy import consistency model

* lazy import controlnet

* lazy import dance diffusion ddim ddpm

* lazy import deepfloyd

* lazy import kandinksy

* lazy imports

* lazy import semantic diffusion

* lazy imports

* lazy import stable diffusion

* move sd output to its own module

* clean up

* lazy import t2iadapter

* lazy import unclip

* lazy import versatile and vq diffsuion

* lazy import vq diffusion

* helper to fetch objects from modules

* lazy import sdxl

* lazy import txt2vid

* lazy import stochastic karras

* fix model imports

* fix bug

* lazy import

* clean up

* clean up

* fixes for tests

* fixes for tests

* clean up

* remove import of torch_utils from utils module

* clean up

* clean up

* fix mistake import statement

* dedicated modules for exporting and loading

* remove testing utils from utils module

* fixes from  merge conflicts

* Update src/diffusers/pipelines/kandinsky2_2/__init__.py

* fix docs

* fix alt diffusion copied from

* fix check dummies

* fix more docs

* remove accelerate import from utils module

* add type checking

* make style

* fix check dummies

* remove torch import from xformers check

* clean up error message

* fixes after upstream merges

* dummy objects fix

* fix tests

* remove unused module import

---------
Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
parent 88735249
...@@ -27,8 +27,15 @@ from diffusers import ( ...@@ -27,8 +27,15 @@ from diffusers import (
UNet2DConditionModel, UNet2DConditionModel,
VQModel, VQModel,
) )
from diffusers.utils import floats_tensor, load_image, load_numpy, slow, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
require_torch_gpu,
slow,
torch_device,
)
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -28,8 +28,15 @@ from diffusers import ( ...@@ -28,8 +28,15 @@ from diffusers import (
UNet2DConditionModel, UNet2DConditionModel,
VQModel, VQModel,
) )
from diffusers.utils import floats_tensor, load_image, load_numpy, slow, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
require_torch_gpu,
slow,
torch_device,
)
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -28,8 +28,15 @@ from diffusers import ( ...@@ -28,8 +28,15 @@ from diffusers import (
UNet2DConditionModel, UNet2DConditionModel,
VQModel, VQModel,
) )
from diffusers.utils import floats_tensor, load_image, load_numpy, slow, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
require_torch_gpu,
slow,
torch_device,
)
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -28,8 +28,15 @@ from diffusers import ( ...@@ -28,8 +28,15 @@ from diffusers import (
UNet2DConditionModel, UNet2DConditionModel,
VQModel, VQModel,
) )
from diffusers.utils import floats_tensor, load_image, load_numpy, slow, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
require_torch_gpu,
slow,
torch_device,
)
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -28,8 +28,7 @@ from transformers import ( ...@@ -28,8 +28,7 @@ from transformers import (
) )
from diffusers import KandinskyV22PriorPipeline, PriorTransformer, UnCLIPScheduler from diffusers import KandinskyV22PriorPipeline, PriorTransformer, UnCLIPScheduler
from diffusers.utils import torch_device from diffusers.utils.testing_utils import enable_full_determinism, skip_mps, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, skip_mps
from ..test_pipelines_common import PipelineTesterMixin from ..test_pipelines_common import PipelineTesterMixin
......
...@@ -30,8 +30,7 @@ from transformers import ( ...@@ -30,8 +30,7 @@ from transformers import (
) )
from diffusers import KandinskyV22PriorEmb2EmbPipeline, PriorTransformer, UnCLIPScheduler from diffusers import KandinskyV22PriorEmb2EmbPipeline, PriorTransformer, UnCLIPScheduler
from diffusers.utils import floats_tensor, torch_device from diffusers.utils.testing_utils import enable_full_determinism, floats_tensor, skip_mps, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, skip_mps
from ..test_pipelines_common import PipelineTesterMixin from ..test_pipelines_common import PipelineTesterMixin
......
...@@ -20,8 +20,15 @@ import numpy as np ...@@ -20,8 +20,15 @@ import numpy as np
import torch import torch
from diffusers import DDIMScheduler, LDMSuperResolutionPipeline, UNet2DModel, VQModel from diffusers import DDIMScheduler, LDMSuperResolutionPipeline, UNet2DModel, VQModel
from diffusers.utils import PIL_INTERPOLATION, floats_tensor, load_image, slow, torch_device from diffusers.utils import PIL_INTERPOLATION
from diffusers.utils.testing_utils import enable_full_determinism, require_torch from diffusers.utils.testing_utils import (
enable_full_determinism,
floats_tensor,
load_image,
require_torch,
slow,
torch_device,
)
enable_full_determinism() enable_full_determinism()
......
...@@ -38,8 +38,8 @@ from diffusers import ( ...@@ -38,8 +38,8 @@ from diffusers import (
PNDMScheduler, PNDMScheduler,
UNet2DConditionModel, UNet2DConditionModel,
) )
from diffusers.utils import is_xformers_available, torch_device from diffusers.utils import is_xformers_available
from diffusers.utils.testing_utils import enable_full_determinism, nightly, require_torch_gpu from diffusers.utils.testing_utils import enable_full_determinism, nightly, require_torch_gpu, torch_device
from ..pipeline_params import TEXT_TO_AUDIO_BATCH_PARAMS, TEXT_TO_AUDIO_PARAMS from ..pipeline_params import TEXT_TO_AUDIO_BATCH_PARAMS, TEXT_TO_AUDIO_PARAMS
from ..test_pipelines_common import PipelineTesterMixin from ..test_pipelines_common import PipelineTesterMixin
......
...@@ -24,8 +24,14 @@ from transformers import CLIPImageProcessor, CLIPVisionConfig ...@@ -24,8 +24,14 @@ from transformers import CLIPImageProcessor, CLIPVisionConfig
from diffusers import AutoencoderKL, PaintByExamplePipeline, PNDMScheduler, UNet2DConditionModel from diffusers import AutoencoderKL, PaintByExamplePipeline, PNDMScheduler, UNet2DConditionModel
from diffusers.pipelines.paint_by_example import PaintByExampleImageEncoder from diffusers.pipelines.paint_by_example import PaintByExampleImageEncoder
from diffusers.utils import floats_tensor, load_image, nightly, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
load_image,
nightly,
require_torch_gpu,
torch_device,
)
from ..pipeline_params import IMAGE_GUIDED_IMAGE_INPAINTING_BATCH_PARAMS, IMAGE_GUIDED_IMAGE_INPAINTING_PARAMS from ..pipeline_params import IMAGE_GUIDED_IMAGE_INPAINTING_BATCH_PARAMS, IMAGE_GUIDED_IMAGE_INPAINTING_PARAMS
from ..test_pipelines_common import PipelineTesterMixin from ..test_pipelines_common import PipelineTesterMixin
......
...@@ -24,8 +24,13 @@ from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer ...@@ -24,8 +24,13 @@ from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer
from diffusers import AutoencoderKL, DDIMScheduler, LMSDiscreteScheduler, PNDMScheduler, UNet2DConditionModel from diffusers import AutoencoderKL, DDIMScheduler, LMSDiscreteScheduler, PNDMScheduler, UNet2DConditionModel
from diffusers.pipelines.semantic_stable_diffusion import SemanticStableDiffusionPipeline as StableDiffusionPipeline from diffusers.pipelines.semantic_stable_diffusion import SemanticStableDiffusionPipeline as StableDiffusionPipeline
from diffusers.utils import floats_tensor, nightly, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
nightly,
require_torch_gpu,
torch_device,
)
enable_full_determinism() enable_full_determinism()
......
...@@ -21,8 +21,7 @@ from transformers import CLIPTextConfig, CLIPTextModelWithProjection, CLIPTokeni ...@@ -21,8 +21,7 @@ from transformers import CLIPTextConfig, CLIPTextModelWithProjection, CLIPTokeni
from diffusers import HeunDiscreteScheduler, PriorTransformer, ShapEPipeline from diffusers import HeunDiscreteScheduler, PriorTransformer, ShapEPipeline
from diffusers.pipelines.shap_e import ShapERenderer from diffusers.pipelines.shap_e import ShapERenderer
from diffusers.utils import load_numpy, slow from diffusers.utils.testing_utils import load_numpy, require_torch_gpu, slow, torch_device
from diffusers.utils.testing_utils import require_torch_gpu, torch_device
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -22,8 +22,7 @@ from transformers import CLIPImageProcessor, CLIPVisionConfig, CLIPVisionModel ...@@ -22,8 +22,7 @@ from transformers import CLIPImageProcessor, CLIPVisionConfig, CLIPVisionModel
from diffusers import HeunDiscreteScheduler, PriorTransformer, ShapEImg2ImgPipeline from diffusers import HeunDiscreteScheduler, PriorTransformer, ShapEImg2ImgPipeline
from diffusers.pipelines.shap_e import ShapERenderer from diffusers.pipelines.shap_e import ShapERenderer
from diffusers.utils import floats_tensor, load_image, load_numpy, slow from diffusers.utils.testing_utils import floats_tensor, load_image, load_numpy, require_torch_gpu, slow, torch_device
from diffusers.utils.testing_utils import require_torch_gpu, torch_device
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -21,8 +21,15 @@ import torch ...@@ -21,8 +21,15 @@ import torch
from diffusers import DDPMScheduler, MidiProcessor, SpectrogramDiffusionPipeline from diffusers import DDPMScheduler, MidiProcessor, SpectrogramDiffusionPipeline
from diffusers.pipelines.spectrogram_diffusion import SpectrogramContEncoder, SpectrogramNotesEncoder, T5FilmDecoder from diffusers.pipelines.spectrogram_diffusion import SpectrogramContEncoder, SpectrogramNotesEncoder, T5FilmDecoder
from diffusers.utils import nightly, require_torch_gpu, skip_mps, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_note_seq, require_onnxruntime enable_full_determinism,
nightly,
require_note_seq,
require_onnxruntime,
require_torch_gpu,
skip_mps,
torch_device,
)
from ..pipeline_params import TOKENS_TO_AUDIO_GENERATION_BATCH_PARAMS, TOKENS_TO_AUDIO_GENERATION_PARAMS from ..pipeline_params import TOKENS_TO_AUDIO_GENERATION_BATCH_PARAMS, TOKENS_TO_AUDIO_GENERATION_PARAMS
from ..test_pipelines_common import PipelineTesterMixin from ..test_pipelines_common import PipelineTesterMixin
......
...@@ -22,8 +22,16 @@ import torch ...@@ -22,8 +22,16 @@ import torch
from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer
from diffusers import AutoencoderKL, CycleDiffusionPipeline, DDIMScheduler, UNet2DConditionModel from diffusers import AutoencoderKL, CycleDiffusionPipeline, DDIMScheduler, UNet2DConditionModel
from diffusers.utils import floats_tensor, load_image, load_numpy, slow, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu, skip_mps enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
require_torch_gpu,
skip_mps,
slow,
torch_device,
)
from ..pipeline_params import ( from ..pipeline_params import (
IMAGE_TO_IMAGE_IMAGE_PARAMS, IMAGE_TO_IMAGE_IMAGE_PARAMS,
......
...@@ -26,8 +26,8 @@ from diffusers import ( ...@@ -26,8 +26,8 @@ from diffusers import (
OnnxStableDiffusionImg2ImgPipeline, OnnxStableDiffusionImg2ImgPipeline,
PNDMScheduler, PNDMScheduler,
) )
from diffusers.utils import floats_tensor
from diffusers.utils.testing_utils import ( from diffusers.utils.testing_utils import (
floats_tensor,
is_onnx_available, is_onnx_available,
load_image, load_image,
nightly, nightly,
......
...@@ -26,8 +26,8 @@ from diffusers import ( ...@@ -26,8 +26,8 @@ from diffusers import (
OnnxStableDiffusionUpscalePipeline, OnnxStableDiffusionUpscalePipeline,
PNDMScheduler, PNDMScheduler,
) )
from diffusers.utils import floats_tensor
from diffusers.utils.testing_utils import ( from diffusers.utils.testing_utils import (
floats_tensor,
is_onnx_available, is_onnx_available,
load_image, load_image,
nightly, nightly,
......
...@@ -38,14 +38,17 @@ from diffusers import ( ...@@ -38,14 +38,17 @@ from diffusers import (
logging, logging,
) )
from diffusers.models.attention_processor import AttnProcessor, LoRAXFormersAttnProcessor from diffusers.models.attention_processor import AttnProcessor, LoRAXFormersAttnProcessor
from diffusers.utils import load_numpy, nightly, slow, torch_device
from diffusers.utils.testing_utils import ( from diffusers.utils.testing_utils import (
CaptureLogger, CaptureLogger,
enable_full_determinism, enable_full_determinism,
load_numpy,
nightly,
numpy_cosine_similarity_distance, numpy_cosine_similarity_distance,
require_torch_2, require_torch_2,
require_torch_gpu, require_torch_gpu,
run_test_in_subprocess, run_test_in_subprocess,
slow,
torch_device,
) )
from ...models.test_lora_layers import create_unet_lora_layers from ...models.test_lora_layers import create_unet_lora_layers
......
...@@ -30,9 +30,17 @@ from diffusers import ( ...@@ -30,9 +30,17 @@ from diffusers import (
T2IAdapter, T2IAdapter,
UNet2DConditionModel, UNet2DConditionModel,
) )
from diffusers.utils import floats_tensor, load_image, load_numpy, logging, slow, torch_device from diffusers.utils import logging
from diffusers.utils.import_utils import is_xformers_available from diffusers.utils.import_utils import is_xformers_available
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu from diffusers.utils.testing_utils import (
enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
require_torch_gpu,
slow,
torch_device,
)
from ..pipeline_params import TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS, TEXT_GUIDED_IMAGE_VARIATION_PARAMS from ..pipeline_params import TEXT_GUIDED_IMAGE_VARIATION_BATCH_PARAMS, TEXT_GUIDED_IMAGE_VARIATION_PARAMS
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
......
...@@ -28,11 +28,11 @@ from transformers import ( ...@@ -28,11 +28,11 @@ from transformers import (
from diffusers import ( from diffusers import (
AutoencoderKL, AutoencoderKL,
CLIPImageProjection,
DDIMScheduler, DDIMScheduler,
StableDiffusionGLIGENTextImagePipeline, StableDiffusionGLIGENTextImagePipeline,
UNet2DConditionModel, UNet2DConditionModel,
) )
from diffusers.pipelines.stable_diffusion import CLIPImageProjection
from diffusers.utils import load_image from diffusers.utils import load_image
from diffusers.utils.testing_utils import enable_full_determinism from diffusers.utils.testing_utils import enable_full_determinism
......
...@@ -29,8 +29,16 @@ from diffusers import ( ...@@ -29,8 +29,16 @@ from diffusers import (
StableDiffusionImageVariationPipeline, StableDiffusionImageVariationPipeline,
UNet2DConditionModel, UNet2DConditionModel,
) )
from diffusers.utils import floats_tensor, load_image, load_numpy, nightly, slow, torch_device from diffusers.utils.testing_utils import (
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu enable_full_determinism,
floats_tensor,
load_image,
load_numpy,
nightly,
require_torch_gpu,
slow,
torch_device,
)
from ..pipeline_params import IMAGE_VARIATION_BATCH_PARAMS, IMAGE_VARIATION_PARAMS from ..pipeline_params import IMAGE_VARIATION_BATCH_PARAMS, IMAGE_VARIATION_PARAMS
from ..test_pipelines_common import PipelineKarrasSchedulerTesterMixin, PipelineLatentTesterMixin, PipelineTesterMixin from ..test_pipelines_common import PipelineKarrasSchedulerTesterMixin, PipelineLatentTesterMixin, PipelineTesterMixin
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment