import torch from diffusers import StableDiffusionInstructPix2PixPipeline, EulerAncestralDiscreteScheduler import base64 from io import BytesIO from PIL import Image import json class EndpointHandler(): def __init__(self, path=""): model_id = "timbrooks/instruct-pix2pix" self.pipe = StableDiffusionInstructPix2PixPipeline.from_pretrained(model_id, torch_dtype=torch.float16, safety_checker=None) self.pipe.to("cuda") self.pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(self.pipe.scheduler.config) def __call__(self, data): info=data['inputs'] image=info.pop("image",data) prompt=info.pop("text",data) image=base64.b64decode(image) raw_images = Image.open(BytesIO(image)).convert('RGB') images = self.pipe(prompt, image=raw_images, num_inference_steps=25, image_guidance_scale=1).images img=images[0] img.save("./1.png") with open('./1.png','rb') as img_file: encoded_string = base64.b64encode(img_file.read()).decode('utf-8') return {'image':encoded_string} if __name__=="__main__": my_handler=EndpointHandler(path='.')