



import unittest

import numpy as np
import torch

from diffusers import VersatileDiffusionImageVariationPipeline
from diffusers.utils.testing_utils import load_image, require_torch_gpu, slow, torch_device


_lowercase    	=		False



class      _UpperCAmelCase      (							unittest.TestCase  ):
     pass







@slow
@require_torch_gpu
class      _UpperCAmelCase      (							unittest.TestCase  ):




     def 		snake_case_		(					self):
         A__					=       VersatileDiffusionImageVariationPipeline.from_pretrained('''shi-labs/versatile-diffusion''')
         pipe.to(a__)
         pipe.set_progress_bar_config(disable=a__)

         A__					=       load_image(
             '''https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/versatile_diffusion/benz.jpg''')
         A__					=       torch.manual_seed(0)
         A__					=       pipe(
             image=a__			,    generator=a__			,    guidance_scale=7.5			,    num_inference_steps=5_0			,    output_type='''numpy'''			,    ).images

         A__					=       image[0, 2_5_3:2_5_6, 2_5_3:2_5_6, -1]

         assert image.shape == (1, 5_1_2, 5_1_2, 3)
         A__					=       np.array([0.0_4_4_1, 0.0_4_6_9, 0.0_5_0_7, 0.0_5_7_5, 0.0_6_3_2, 0.0_6_5_0, 0.0_8_6_5, 0.0_9_0_9, 0.0_9_4_5])

         assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2





from ...configuration_utils import PretrainedConfig
from ...utils import logging


_lowercase    	=		logging.get_logger(__name__)



class      _UpperCAmelCase      (							A__  ):
     UpperCamelCase__		     =					'''timm_backbone'''




     def __init__(					self			,    a__=None			,    a__=3			,    a__=True			,    a__=True			,    a__=None			,    **a__			,    ):
         super().__init__(**a__)
         A__					=       backbone
         A__					=       num_channels
         A__					=       features_only
         A__					=       use_pretrained_backbone
         A__					=       True
         A__					=       out_indices if out_indices is not None else (-1,)
