
"""simple docstring"""





import argparse
import os

import torch

from diffusers import (
    CMStochasticIterativeScheduler,
    ConsistencyModelPipeline,
    UNetaDModel,
)


__magic_name__       =			{
    "sample_size": 32,
    "in_channels": 3,
    "out_channels": 3,
    "layers_per_block": 2,
    "num_class_embeds": 1000,
    "block_out_channels": [32, 64],
    "attention_head_dim": 8,
    "down_block_types": [
        "ResnetDownsampleBlock2D",
        "AttnDownBlock2D",
    ],
    "up_block_types": [
        "AttnUpBlock2D",
        "ResnetUpsampleBlock2D",
    ],
    "resnet_time_scale_shift": "scale_shift",
    "upsample_type": "resnet",
    "downsample_type": "resnet",
}

__magic_name__       =			{
    "sample_size": 64,
    "in_channels": 3,
    "out_channels": 3,
    "layers_per_block": 3,
    "num_class_embeds": 1000,
    "block_out_channels": [192, 192 * 2, 192 * 3, 192 * 4],
    "attention_head_dim": 64,
    "down_block_types": [
        "ResnetDownsampleBlock2D",
        "AttnDownBlock2D",
        "AttnDownBlock2D",
        "AttnDownBlock2D",
    ],
    "up_block_types": [
        "AttnUpBlock2D",
        "AttnUpBlock2D",
        "AttnUpBlock2D",
        "ResnetUpsampleBlock2D",
    ],
    "resnet_time_scale_shift": "scale_shift",
    "upsample_type": "resnet",
    "downsample_type": "resnet",
}

__magic_name__       =			{
    "sample_size": 256,
    "in_channels": 3,
    "out_channels": 3,
    "layers_per_block": 2,
    "num_class_embeds": None,
    "block_out_channels": [256, 256, 256 * 2, 256 * 2, 256 * 4, 256 * 4],
    "attention_head_dim": 64,
    "down_block_types": [
        "ResnetDownsampleBlock2D",
        "ResnetDownsampleBlock2D",
        "ResnetDownsampleBlock2D",
        "AttnDownBlock2D",
        "AttnDownBlock2D",
        "AttnDownBlock2D",
    ],
    "up_block_types": [
        "AttnUpBlock2D",
        "AttnUpBlock2D",
        "AttnUpBlock2D",
        "ResnetUpsampleBlock2D",
        "ResnetUpsampleBlock2D",
        "ResnetUpsampleBlock2D",
    ],
    "resnet_time_scale_shift": "default",
    "upsample_type": "resnet",
    "downsample_type": "resnet",
}

__magic_name__       =			{
    "num_train_timesteps": 40,
    "sigma_min": 0.002,
    "sigma_max": 80.0,
}

__magic_name__       =			{
    "num_train_timesteps": 201,
    "sigma_min": 0.002,
    "sigma_max": 80.0,
}

__magic_name__       =			{
    "num_train_timesteps": 151,
    "sigma_min": 0.002,
    "sigma_max": 80.0,
}



def 						_lowerCAmelCase				(				UpperCamelCase_				):
		if isinstance(UpperCamelCase_  ,				UpperCamelCase_				):
				return v
		if v.lower() in ("yes", "true", "t", "y", "1"):
				return True
		elif v.lower() in ("no", "false", "f", "n", "0"):
				return False
		else:
				raise argparse.ArgumentTypeError("""boolean value expected"""				)



def 						_lowerCAmelCase				(				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_=False				):
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.in_layers.0.weight"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.in_layers.0.bias"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.in_layers.2.weight"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.in_layers.2.bias"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.emb_layers.1.weight"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.emb_layers.1.bias"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.out_layers.0.weight"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.out_layers.0.bias"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.out_layers.3.weight"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.out_layers.3.bias"]

		if has_skip:
				__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.skip_connection.weight"]
				__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.skip_connection.bias"]

		return new_checkpoint



def 						_lowerCAmelCase				(				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_=None				):
		__SCREAMING_SNAKE_CASE       ,__SCREAMING_SNAKE_CASE       ,__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.qkv.weight"].chunk(3  ,				dim=0				)
		__SCREAMING_SNAKE_CASE       ,__SCREAMING_SNAKE_CASE       ,__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.qkv.bias"].chunk(3  ,				dim=0				)

		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.norm.weight"]
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.norm.bias"]

		__SCREAMING_SNAKE_CASE            = weight_q.squeeze(-1				).squeeze(-1				)
		__SCREAMING_SNAKE_CASE            = bias_q.squeeze(-1				).squeeze(-1				)
		__SCREAMING_SNAKE_CASE            = weight_k.squeeze(-1				).squeeze(-1				)
		__SCREAMING_SNAKE_CASE            = bias_k.squeeze(-1				).squeeze(-1				)
		__SCREAMING_SNAKE_CASE            = weight_v.squeeze(-1				).squeeze(-1				)
		__SCREAMING_SNAKE_CASE            = bias_v.squeeze(-1				).squeeze(-1				)

		__SCREAMING_SNAKE_CASE            = (
		    checkpoint[f"{old_prefix}.proj_out.weight"].squeeze(-1				).squeeze(-1				)
		)
		__SCREAMING_SNAKE_CASE            = checkpoint[f"{old_prefix}.proj_out.bias"].squeeze(-1				).squeeze(-1				)

		return new_checkpoint



def 						_lowerCAmelCase				(				UpperCamelCase_  ,				UpperCamelCase_				):
		__SCREAMING_SNAKE_CASE            = torch.load(UpperCamelCase_  ,				map_location="""cpu"""				)
		__SCREAMING_SNAKE_CASE            = {}

		__SCREAMING_SNAKE_CASE            = checkpoint["""time_embed.0.weight"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""time_embed.0.bias"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""time_embed.2.weight"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""time_embed.2.bias"""]

		if unet_config["num_class_embeds"] is not None:
				__SCREAMING_SNAKE_CASE            = checkpoint["""label_emb.weight"""]

		__SCREAMING_SNAKE_CASE            = checkpoint["""input_blocks.0.0.weight"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""input_blocks.0.0.bias"""]

		__SCREAMING_SNAKE_CASE            = unet_config["""down_block_types"""]
		__SCREAMING_SNAKE_CASE            = unet_config["""layers_per_block"""]
		__SCREAMING_SNAKE_CASE            = unet_config["""attention_head_dim"""]
		__SCREAMING_SNAKE_CASE            = unet_config["""block_out_channels"""]
		__SCREAMING_SNAKE_CASE            = 1
		__SCREAMING_SNAKE_CASE            = channels_list[0]

		for i, layer_type in enumerate(UpperCamelCase_				):
				__SCREAMING_SNAKE_CASE            = channels_list[i]
				__SCREAMING_SNAKE_CASE            = current_channels != prev_channels
				if layer_type == "ResnetDownsampleBlock2D":
						for j in range(UpperCamelCase_				):
								__SCREAMING_SNAKE_CASE            = f"down_blocks.{i}.resnets.{j}"
								__SCREAMING_SNAKE_CASE            = f"input_blocks.{current_layer}.0"
								__SCREAMING_SNAKE_CASE            = True if j == 0 and downsample_block_has_skip else False
								__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				has_skip=UpperCamelCase_				)
								current_layer += 1

				elif layer_type == "AttnDownBlock2D":
						for j in range(UpperCamelCase_				):
								__SCREAMING_SNAKE_CASE            = f"down_blocks.{i}.resnets.{j}"
								__SCREAMING_SNAKE_CASE            = f"input_blocks.{current_layer}.0"
								__SCREAMING_SNAKE_CASE            = True if j == 0 and downsample_block_has_skip else False
								__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				has_skip=UpperCamelCase_				)
								__SCREAMING_SNAKE_CASE            = f"down_blocks.{i}.attentions.{j}"
								__SCREAMING_SNAKE_CASE            = f"input_blocks.{current_layer}.1"
								__SCREAMING_SNAKE_CASE            = convert_attention(
								    UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)
								current_layer += 1

				if i != len(UpperCamelCase_				) - 1:
						__SCREAMING_SNAKE_CASE            = f"down_blocks.{i}.downsamplers.0"
						__SCREAMING_SNAKE_CASE            = f"input_blocks.{current_layer}.0"
						__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)
						current_layer += 1

				__SCREAMING_SNAKE_CASE            = current_channels

		# hardcoded the mid-block for now
		__SCREAMING_SNAKE_CASE            = """mid_block.resnets.0"""
		__SCREAMING_SNAKE_CASE            = """middle_block.0"""
		__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)
		__SCREAMING_SNAKE_CASE            = """mid_block.attentions.0"""
		__SCREAMING_SNAKE_CASE            = """middle_block.1"""
		__SCREAMING_SNAKE_CASE            = convert_attention(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)
		__SCREAMING_SNAKE_CASE            = """mid_block.resnets.1"""
		__SCREAMING_SNAKE_CASE            = """middle_block.2"""
		__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)

		__SCREAMING_SNAKE_CASE            = 0
		__SCREAMING_SNAKE_CASE            = unet_config["""up_block_types"""]

		for i, layer_type in enumerate(UpperCamelCase_				):
				if layer_type == "ResnetUpsampleBlock2D":
						for j in range(layers_per_block + 1				):
								__SCREAMING_SNAKE_CASE            = f"up_blocks.{i}.resnets.{j}"
								__SCREAMING_SNAKE_CASE            = f"output_blocks.{current_layer}.0"
								__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				has_skip=UpperCamelCase_				)
								current_layer += 1

						if i != len(UpperCamelCase_				) - 1:
								__SCREAMING_SNAKE_CASE            = f"up_blocks.{i}.upsamplers.0"
								__SCREAMING_SNAKE_CASE            = f"output_blocks.{current_layer-1}.1"
								__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)
				elif layer_type == "AttnUpBlock2D":
						for j in range(layers_per_block + 1				):
								__SCREAMING_SNAKE_CASE            = f"up_blocks.{i}.resnets.{j}"
								__SCREAMING_SNAKE_CASE            = f"output_blocks.{current_layer}.0"
								__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				has_skip=UpperCamelCase_				)
								__SCREAMING_SNAKE_CASE            = f"up_blocks.{i}.attentions.{j}"
								__SCREAMING_SNAKE_CASE            = f"output_blocks.{current_layer}.1"
								__SCREAMING_SNAKE_CASE            = convert_attention(
								    UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)
								current_layer += 1

						if i != len(UpperCamelCase_				) - 1:
								__SCREAMING_SNAKE_CASE            = f"up_blocks.{i}.upsamplers.0"
								__SCREAMING_SNAKE_CASE            = f"output_blocks.{current_layer-1}.2"
								__SCREAMING_SNAKE_CASE            = convert_resnet(UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_  ,				UpperCamelCase_				)

		__SCREAMING_SNAKE_CASE            = checkpoint["""out.0.weight"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""out.0.bias"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""out.2.weight"""]
		__SCREAMING_SNAKE_CASE            = checkpoint["""out.2.bias"""]

		return new_checkpoint


if __name__ == "__main__":
							__magic_name__       =			argparse.ArgumentParser()

							parser.add_argument("--unet_path", default=None, type=str, required=True, help="Path to the unet.pt to convert.")
							parser.add_argument(
							    "--dump_path", default=None, type=str, required=True, help="Path to output the converted UNet model."
							)
							parser.add_argument("--class_cond", default=True, type=str, help="Whether the model is class-conditional.")

							__magic_name__       =			parser.parse_args()
							__magic_name__       =			strabool(args.class_cond)

							__magic_name__       =			os.path.basename(args.unet_path)
							print(F"""Checkpoint: {ckpt_name}""")

							# Get U-Net config
							if "imagenet64" in ckpt_name:
														__magic_name__       =			IMAGENET_64_UNET_CONFIG
							elif "256" in ckpt_name and (("bedroom" in ckpt_name) or ("cat" in ckpt_name)):
														__magic_name__       =			LSUN_256_UNET_CONFIG
							elif "test" in ckpt_name:
														__magic_name__       =			TEST_UNET_CONFIG
							else:
														raise ValueError(F"""Checkpoint type {ckpt_name} is not currently supported.""")

							if not args.class_cond:
														__magic_name__       =			None

							__magic_name__       =			con_pt_to_diffuser(args.unet_path, unet_config)

							__magic_name__       =			UNetaDModel(**unet_config)
							image_unet.load_state_dict(converted_unet_ckpt)

							# Get scheduler config
							if "cd" in ckpt_name or "test" in ckpt_name:
														__magic_name__       =			CD_SCHEDULER_CONFIG
							elif "ct" in ckpt_name and "imagenet64" in ckpt_name:
														__magic_name__       =			CT_IMAGENET_64_SCHEDULER_CONFIG
							elif "ct" in ckpt_name and "256" in ckpt_name and (("bedroom" in ckpt_name) or ("cat" in ckpt_name)):
														__magic_name__       =			CT_LSUN_256_SCHEDULER_CONFIG
							else:
														raise ValueError(F"""Checkpoint type {ckpt_name} is not currently supported.""")

							__magic_name__       =			CMStochasticIterativeScheduler(**scheduler_config)

							__magic_name__       =			ConsistencyModelPipeline(unet=image_unet, scheduler=cm_scheduler)
							consistency_model.save_pretrained(args.dump_path)






"""simple docstring"""





__magic_name__       =			"0.18.2"

from .configuration_utils import ConfigMixin
from .utils import (
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_inflect_available,
    is_invisible_watermark_available,
    is_k_diffusion_available,
    is_k_diffusion_version,
    is_librosa_available,
    is_note_seq_available,
    is_onnx_available,
    is_scipy_available,
    is_torch_available,
    is_torchsde_available,
    is_transformers_available,
    is_transformers_version,
    is_unidecode_available,
    logging,
)


try:
							if not is_onnx_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_onnx_objects import *  # noqa F403
else:
							from .pipelines import OnnxRuntimeModel

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_pt_objects import *  # noqa F403
else:
							from .models import (
							    AutoencoderKL,
							    ControlNetModel,
							    ModelMixin,
							    PriorTransformer,
							    TaFilmDecoder,
							    TransformeraDModel,
							    UNetaDModel,
							    UNetaDConditionModel,
							    UNetaDModel,
							    UNetaDConditionModel,
							    VQModel,
							)
							from .optimization import (
							    get_constant_schedule,
							    get_constant_schedule_with_warmup,
							    get_cosine_schedule_with_warmup,
							    get_cosine_with_hard_restarts_schedule_with_warmup,
							    get_linear_schedule_with_warmup,
							    get_polynomial_decay_schedule_with_warmup,
							    get_scheduler,
							)
							from .pipelines import (
							    AudioPipelineOutput,
							    ConsistencyModelPipeline,
							    DanceDiffusionPipeline,
							    DDIMPipeline,
							    DDPMPipeline,
							    DiffusionPipeline,
							    DiTPipeline,
							    ImagePipelineOutput,
							    KarrasVePipeline,
							    LDMPipeline,
							    LDMSuperResolutionPipeline,
							    PNDMPipeline,
							    RePaintPipeline,
							    ScoreSdeVePipeline,
							)
							from .schedulers import (
							    CMStochasticIterativeScheduler,
							    DDIMInverseScheduler,
							    DDIMParallelScheduler,
							    DDIMScheduler,
							    DDPMParallelScheduler,
							    DDPMScheduler,
							    DEISMultistepScheduler,
							    DPMSolverMultistepInverseScheduler,
							    DPMSolverMultistepScheduler,
							    DPMSolverSinglestepScheduler,
							    EulerAncestralDiscreteScheduler,
							    EulerDiscreteScheduler,
							    HeunDiscreteScheduler,
							    IPNDMScheduler,
							    KarrasVeScheduler,
							    KDPMaAncestralDiscreteScheduler,
							    KDPMaDiscreteScheduler,
							    PNDMScheduler,
							    RePaintScheduler,
							    SchedulerMixin,
							    ScoreSdeVeScheduler,
							    UnCLIPScheduler,
							    UniPCMultistepScheduler,
							    VQDiffusionScheduler,
							)
							from .training_utils import EMAModel

try:
							if not (is_torch_available() and is_scipy_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_scipy_objects import *  # noqa F403
else:
							from .schedulers import LMSDiscreteScheduler

try:
							if not (is_torch_available() and is_torchsde_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_torchsde_objects import *  # noqa F403
else:
							from .schedulers import DPMSolverSDEScheduler

try:
							if not (is_torch_available() and is_transformers_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
							from .pipelines import (
							    AltDiffusionImgaImgPipeline,
							    AltDiffusionPipeline,
							    AudioLDMPipeline,
							    CycleDiffusionPipeline,
							    IFImgaImgPipeline,
							    IFImgaImgSuperResolutionPipeline,
							    IFInpaintingPipeline,
							    IFInpaintingSuperResolutionPipeline,
							    IFPipeline,
							    IFSuperResolutionPipeline,
							    ImageTextPipelineOutput,
							    KandinskyImgaImgPipeline,
							    KandinskyInpaintPipeline,
							    KandinskyPipeline,
							    KandinskyPriorPipeline,
							    KandinskyVaaControlnetImgaImgPipeline,
							    KandinskyVaaControlnetPipeline,
							    KandinskyVaaImgaImgPipeline,
							    KandinskyVaaInpaintPipeline,
							    KandinskyVaaPipeline,
							    KandinskyVaaPriorEmbaEmbPipeline,
							    KandinskyVaaPriorPipeline,
							    LDMTextToImagePipeline,
							    PaintByExamplePipeline,
							    SemanticStableDiffusionPipeline,
							    ShapEImgaImgPipeline,
							    ShapEPipeline,
							    StableDiffusionAttendAndExcitePipeline,
							    StableDiffusionControlNetImgaImgPipeline,
							    StableDiffusionControlNetInpaintPipeline,
							    StableDiffusionControlNetPipeline,
							    StableDiffusionDepthaImgPipeline,
							    StableDiffusionDiffEditPipeline,
							    StableDiffusionImageVariationPipeline,
							    StableDiffusionImgaImgPipeline,
							    StableDiffusionInpaintPipeline,
							    StableDiffusionInpaintPipelineLegacy,
							    StableDiffusionInstructPixaPixPipeline,
							    StableDiffusionLatentUpscalePipeline,
							    StableDiffusionLDMaDPipeline,
							    StableDiffusionModelEditingPipeline,
							    StableDiffusionPanoramaPipeline,
							    StableDiffusionParadigmsPipeline,
							    StableDiffusionPipeline,
							    StableDiffusionPipelineSafe,
							    StableDiffusionPixaPixZeroPipeline,
							    StableDiffusionSAGPipeline,
							    StableDiffusionUpscalePipeline,
							    StableUnCLIPImgaImgPipeline,
							    StableUnCLIPPipeline,
							    TextToVideoSDPipeline,
							    TextToVideoZeroPipeline,
							    UnCLIPImageVariationPipeline,
							    UnCLIPPipeline,
							    UniDiffuserModel,
							    UniDiffuserPipeline,
							    UniDiffuserTextDecoder,
							    VersatileDiffusionDualGuidedPipeline,
							    VersatileDiffusionImageVariationPipeline,
							    VersatileDiffusionPipeline,
							    VersatileDiffusionTextToImagePipeline,
							    VideoToVideoSDPipeline,
							    VQDiffusionPipeline,
							)

try:
							if not (is_torch_available() and is_transformers_available() and is_invisible_watermark_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_transformers_and_invisible_watermark_objects import *  # noqa F403
else:
							from .pipelines import StableDiffusionXLImgaImgPipeline, StableDiffusionXLPipeline

try:
							if not (is_torch_available() and is_transformers_available() and is_k_diffusion_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_transformers_and_k_diffusion_objects import *  # noqa F403
else:
							from .pipelines import StableDiffusionKDiffusionPipeline

try:
							if not (is_torch_available() and is_transformers_available() and is_onnx_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_transformers_and_onnx_objects import *  # noqa F403
else:
							from .pipelines import (
							    OnnxStableDiffusionImgaImgPipeline,
							    OnnxStableDiffusionInpaintPipeline,
							    OnnxStableDiffusionInpaintPipelineLegacy,
							    OnnxStableDiffusionPipeline,
							    OnnxStableDiffusionUpscalePipeline,
							    StableDiffusionOnnxPipeline,
							)

try:
							if not (is_torch_available() and is_librosa_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_torch_and_librosa_objects import *  # noqa F403
else:
							from .pipelines import AudioDiffusionPipeline, Mel

try:
							if not (is_transformers_available() and is_torch_available() and is_note_seq_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_transformers_and_torch_and_note_seq_objects import *  # noqa F403
else:
							from .pipelines import SpectrogramDiffusionPipeline

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_flax_objects import *  # noqa F403
else:
							from .models.controlnet_flax import FlaxControlNetModel
							from .models.modeling_flax_utils import FlaxModelMixin
							from .models.unet_ad_condition_flax import FlaxUNetaDConditionModel
							from .models.vae_flax import FlaxAutoencoderKL
							from .pipelines import FlaxDiffusionPipeline
							from .schedulers import (
							    FlaxDDIMScheduler,
							    FlaxDDPMScheduler,
							    FlaxDPMSolverMultistepScheduler,
							    FlaxKarrasVeScheduler,
							    FlaxLMSDiscreteScheduler,
							    FlaxPNDMScheduler,
							    FlaxSchedulerMixin,
							    FlaxScoreSdeVeScheduler,
							)


try:
							if not (is_flax_available() and is_transformers_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_flax_and_transformers_objects import *  # noqa F403
else:
							from .pipelines import (
							    FlaxStableDiffusionControlNetPipeline,
							    FlaxStableDiffusionImgaImgPipeline,
							    FlaxStableDiffusionInpaintPipeline,
							    FlaxStableDiffusionPipeline,
							)

try:
							if not (is_note_seq_available()):
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							from .utils.dummy_note_seq_objects import *  # noqa F403
else:
							from .pipelines import MidiProcessor




