from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler
import torch

pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
pipeline.scheduler = EulerDiscreteScheduler.from_config(pipeline.scheduler.config)

# Check if CUDA is available and set the device accordingly
device = "cuda" if torch.cuda.is_available() else "cpu"

# Move the pipeline to the device
pipeline.to(device)

def get_images(prompt, skip_layers):
    print('inside get images')
    print(f'skipping {skip_layers}')
    pipeline_output = pipeline(prompt, clip_skip=skip_layers, num_images_per_prompt=1, return_tensors=False)
    print('after pipeline')
    images = pipeline_output.images
    print('got images')
    return images