|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from typing import TYPE_CHECKING |
|
|
|
from ..utils import ( |
|
DIFFUSERS_SLOW_IMPORT, |
|
OptionalDependencyNotAvailable, |
|
_LazyModule, |
|
get_objects_from_module, |
|
is_flax_available, |
|
is_scipy_available, |
|
is_torch_available, |
|
is_torchsde_available, |
|
) |
|
|
|
|
|
_dummy_modules = {} |
|
_import_structure = {} |
|
|
|
try: |
|
if not is_torch_available(): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils import dummy_pt_objects |
|
|
|
_dummy_modules.update(get_objects_from_module(dummy_pt_objects)) |
|
|
|
else: |
|
_import_structure["deprecated"] = ["KarrasVeScheduler", "ScoreSdeVpScheduler"] |
|
_import_structure["scheduling_amused"] = ["AmusedScheduler"] |
|
_import_structure["scheduling_consistency_decoder"] = ["ConsistencyDecoderScheduler"] |
|
_import_structure["scheduling_consistency_models"] = ["CMStochasticIterativeScheduler"] |
|
_import_structure["scheduling_ddim"] = ["DDIMScheduler"] |
|
_import_structure["scheduling_ddim_inverse"] = ["DDIMInverseScheduler"] |
|
_import_structure["scheduling_ddim_parallel"] = ["DDIMParallelScheduler"] |
|
_import_structure["scheduling_ddpm"] = ["DDPMScheduler"] |
|
_import_structure["scheduling_ddpm_parallel"] = ["DDPMParallelScheduler"] |
|
_import_structure["scheduling_ddpm_wuerstchen"] = ["DDPMWuerstchenScheduler"] |
|
_import_structure["scheduling_deis_multistep"] = ["DEISMultistepScheduler"] |
|
_import_structure["scheduling_dpmsolver_multistep"] = ["DPMSolverMultistepScheduler"] |
|
_import_structure["scheduling_dpmsolver_multistep_inverse"] = ["DPMSolverMultistepInverseScheduler"] |
|
_import_structure["scheduling_dpmsolver_singlestep"] = ["DPMSolverSinglestepScheduler"] |
|
_import_structure["scheduling_edm_dpmsolver_multistep"] = ["EDMDPMSolverMultistepScheduler"] |
|
_import_structure["scheduling_edm_euler"] = ["EDMEulerScheduler"] |
|
_import_structure["scheduling_euler_ancestral_discrete"] = ["EulerAncestralDiscreteScheduler"] |
|
_import_structure["scheduling_euler_discrete"] = ["EulerDiscreteScheduler"] |
|
_import_structure["scheduling_flow_match_euler_discrete"] = ["FlowMatchEulerDiscreteScheduler"] |
|
_import_structure["scheduling_heun_discrete"] = ["HeunDiscreteScheduler"] |
|
_import_structure["scheduling_ipndm"] = ["IPNDMScheduler"] |
|
_import_structure["scheduling_k_dpm_2_ancestral_discrete"] = ["KDPM2AncestralDiscreteScheduler"] |
|
_import_structure["scheduling_k_dpm_2_discrete"] = ["KDPM2DiscreteScheduler"] |
|
_import_structure["scheduling_lcm"] = ["LCMScheduler"] |
|
_import_structure["scheduling_pndm"] = ["PNDMScheduler"] |
|
_import_structure["scheduling_repaint"] = ["RePaintScheduler"] |
|
_import_structure["scheduling_sasolver"] = ["SASolverScheduler"] |
|
_import_structure["scheduling_sde_ve"] = ["ScoreSdeVeScheduler"] |
|
_import_structure["scheduling_tcd"] = ["TCDScheduler"] |
|
_import_structure["scheduling_unclip"] = ["UnCLIPScheduler"] |
|
_import_structure["scheduling_unipc_multistep"] = ["UniPCMultistepScheduler"] |
|
_import_structure["scheduling_utils"] = ["AysSchedules", "KarrasDiffusionSchedulers", "SchedulerMixin"] |
|
_import_structure["scheduling_vq_diffusion"] = ["VQDiffusionScheduler"] |
|
|
|
try: |
|
if not is_flax_available(): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils import dummy_flax_objects |
|
|
|
_dummy_modules.update(get_objects_from_module(dummy_flax_objects)) |
|
|
|
else: |
|
_import_structure["scheduling_ddim_flax"] = ["FlaxDDIMScheduler"] |
|
_import_structure["scheduling_ddpm_flax"] = ["FlaxDDPMScheduler"] |
|
_import_structure["scheduling_dpmsolver_multistep_flax"] = ["FlaxDPMSolverMultistepScheduler"] |
|
_import_structure["scheduling_euler_discrete_flax"] = ["FlaxEulerDiscreteScheduler"] |
|
_import_structure["scheduling_karras_ve_flax"] = ["FlaxKarrasVeScheduler"] |
|
_import_structure["scheduling_lms_discrete_flax"] = ["FlaxLMSDiscreteScheduler"] |
|
_import_structure["scheduling_pndm_flax"] = ["FlaxPNDMScheduler"] |
|
_import_structure["scheduling_sde_ve_flax"] = ["FlaxScoreSdeVeScheduler"] |
|
_import_structure["scheduling_utils_flax"] = [ |
|
"FlaxKarrasDiffusionSchedulers", |
|
"FlaxSchedulerMixin", |
|
"FlaxSchedulerOutput", |
|
"broadcast_to_shape_from_left", |
|
] |
|
|
|
|
|
try: |
|
if not (is_torch_available() and is_scipy_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils import dummy_torch_and_scipy_objects |
|
|
|
_dummy_modules.update(get_objects_from_module(dummy_torch_and_scipy_objects)) |
|
|
|
else: |
|
_import_structure["scheduling_lms_discrete"] = ["LMSDiscreteScheduler"] |
|
|
|
try: |
|
if not (is_torch_available() and is_torchsde_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils import dummy_torch_and_torchsde_objects |
|
|
|
_dummy_modules.update(get_objects_from_module(dummy_torch_and_torchsde_objects)) |
|
|
|
else: |
|
_import_structure["scheduling_dpmsolver_sde"] = ["DPMSolverSDEScheduler"] |
|
|
|
if TYPE_CHECKING or DIFFUSERS_SLOW_IMPORT: |
|
from ..utils import ( |
|
OptionalDependencyNotAvailable, |
|
is_flax_available, |
|
is_scipy_available, |
|
is_torch_available, |
|
is_torchsde_available, |
|
) |
|
|
|
try: |
|
if not is_torch_available(): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils.dummy_pt_objects import * |
|
else: |
|
from .deprecated import KarrasVeScheduler, ScoreSdeVpScheduler |
|
from .scheduling_amused import AmusedScheduler |
|
from .scheduling_consistency_decoder import ConsistencyDecoderScheduler |
|
from .scheduling_consistency_models import CMStochasticIterativeScheduler |
|
from .scheduling_ddim import DDIMScheduler |
|
from .scheduling_ddim_inverse import DDIMInverseScheduler |
|
from .scheduling_ddim_parallel import DDIMParallelScheduler |
|
from .scheduling_ddpm import DDPMScheduler |
|
from .scheduling_ddpm_parallel import DDPMParallelScheduler |
|
from .scheduling_ddpm_wuerstchen import DDPMWuerstchenScheduler |
|
from .scheduling_deis_multistep import DEISMultistepScheduler |
|
from .scheduling_dpmsolver_multistep import DPMSolverMultistepScheduler |
|
from .scheduling_dpmsolver_multistep_inverse import DPMSolverMultistepInverseScheduler |
|
from .scheduling_dpmsolver_singlestep import DPMSolverSinglestepScheduler |
|
from .scheduling_edm_dpmsolver_multistep import EDMDPMSolverMultistepScheduler |
|
from .scheduling_edm_euler import EDMEulerScheduler |
|
from .scheduling_euler_ancestral_discrete import EulerAncestralDiscreteScheduler |
|
from .scheduling_euler_discrete import EulerDiscreteScheduler |
|
from .scheduling_flow_match_euler_discrete import FlowMatchEulerDiscreteScheduler |
|
from .scheduling_heun_discrete import HeunDiscreteScheduler |
|
from .scheduling_ipndm import IPNDMScheduler |
|
from .scheduling_k_dpm_2_ancestral_discrete import KDPM2AncestralDiscreteScheduler |
|
from .scheduling_k_dpm_2_discrete import KDPM2DiscreteScheduler |
|
from .scheduling_lcm import LCMScheduler |
|
from .scheduling_pndm import PNDMScheduler |
|
from .scheduling_repaint import RePaintScheduler |
|
from .scheduling_sasolver import SASolverScheduler |
|
from .scheduling_sde_ve import ScoreSdeVeScheduler |
|
from .scheduling_tcd import TCDScheduler |
|
from .scheduling_unclip import UnCLIPScheduler |
|
from .scheduling_unipc_multistep import UniPCMultistepScheduler |
|
from .scheduling_utils import AysSchedules, KarrasDiffusionSchedulers, SchedulerMixin |
|
from .scheduling_vq_diffusion import VQDiffusionScheduler |
|
|
|
try: |
|
if not is_flax_available(): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils.dummy_flax_objects import * |
|
else: |
|
from .scheduling_ddim_flax import FlaxDDIMScheduler |
|
from .scheduling_ddpm_flax import FlaxDDPMScheduler |
|
from .scheduling_dpmsolver_multistep_flax import FlaxDPMSolverMultistepScheduler |
|
from .scheduling_euler_discrete_flax import FlaxEulerDiscreteScheduler |
|
from .scheduling_karras_ve_flax import FlaxKarrasVeScheduler |
|
from .scheduling_lms_discrete_flax import FlaxLMSDiscreteScheduler |
|
from .scheduling_pndm_flax import FlaxPNDMScheduler |
|
from .scheduling_sde_ve_flax import FlaxScoreSdeVeScheduler |
|
from .scheduling_utils_flax import ( |
|
FlaxKarrasDiffusionSchedulers, |
|
FlaxSchedulerMixin, |
|
FlaxSchedulerOutput, |
|
broadcast_to_shape_from_left, |
|
) |
|
|
|
try: |
|
if not (is_torch_available() and is_scipy_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils.dummy_torch_and_scipy_objects import * |
|
else: |
|
from .scheduling_lms_discrete import LMSDiscreteScheduler |
|
|
|
try: |
|
if not (is_torch_available() and is_torchsde_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ..utils.dummy_torch_and_torchsde_objects import * |
|
else: |
|
from .scheduling_dpmsolver_sde import DPMSolverSDEScheduler |
|
|
|
else: |
|
import sys |
|
|
|
sys.modules[__name__] = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__) |
|
for name, value in _dummy_modules.items(): |
|
setattr(sys.modules[__name__], name, value) |
|
|