'''
    #################################################################################################################################################################################################
    # This code library is an adaptation of the original Transformers and was designed, developed and programmed by Sapiens Technology®.                                                            #
    # Any alteration and/or disclosure of this code without prior authorization is strictly prohibited and is subject to legal action that will be forwarded by the Sapiens Technology® legal team. #
    # This set of algorithms aims to download, train, fine-tune and/or infer large language models from various sources and slopes.                                                                 #
    #################################################################################################################################################################################################
'''
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_cogvideox'] = ['CogVideoXDDIMScheduler']
    _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_dpm_cogvideox'] = ['CogVideoXDPMScheduler']
    _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_flow_match_heun_discrete'] = ['FlowMatchHeunDiscreteScheduler']
    _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_cosine_dpmsolver_multistep'] = ['CosineDPMSolverMultistepScheduler']
    _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_cogvideox import CogVideoXDDIMScheduler
        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_dpm_cogvideox import CogVideoXDPMScheduler
        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_flow_match_heun_discrete import FlowMatchHeunDiscreteScheduler
        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_cosine_dpmsolver_multistep import CosineDPMSolverMultistepScheduler
        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)
'''
    #################################################################################################################################################################################################
    # This code library is an adaptation of the original Transformers and was designed, developed and programmed by Sapiens Technology®.                                                            #
    # Any alteration and/or disclosure of this code without prior authorization is strictly prohibited and is subject to legal action that will be forwarded by the Sapiens Technology® legal team. #
    # This set of algorithms aims to download, train, fine-tune and/or infer large language models from various sources and slopes.                                                                 #
    #################################################################################################################################################################################################
'''
