| from diffusers import ControlNetModel, StableDiffusionControlNetPipeline, DiffusionPipeline as Pipe |
| import torch |
|
|
| class Generador: |
| def img_to_bytes(image) -> bytes: |
| import io |
| _imgByteArr = io.BytesIO() |
| image.save(_imgByteArr, format="png") |
| return _imgByteArr.getvalue() |
| def using_runway_sd_15(prompt:str)->bytes: |
| try: |
| _generador = Pipe.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16) |
| _generador.to("cuda") |
| _imagen = _generador(prompt).images[0] |
| _response = bytes(Generador.img_to_bytes(image=_imagen)) |
| except Exception as e: |
| _response = bytes(str(e), 'utf-8') |
| finally: |
| return _response |
| def using_stability_sd_21(prompt:str)->bytes: |
| try: |
| _generador = Pipe.from_pretrained("stabilityai/stable-diffusion-2-1", torch_dtype=torch.float16) |
| _generador.to("cuda") |
| _imagen = _generador(prompt).images[0] |
| _response = bytes(Generador.img_to_bytes(image=_imagen)) |
| except Exception as e: |
| _response = bytes(str(e), 'utf-8') |
| finally: |
| return _response |
| def using_realistic_v14(prompt:str)->bytes: |
| try: |
| _generador = Pipe.from_pretrained("SG161222/Realistic_Vision_V1.4", torch_dtype=torch.float16) |
| _generador.to("cuda") |
| _imagen = _generador(prompt).images[0] |
| _response = bytes(Generador.img_to_bytes(image=_imagen)) |
| except Exception as e: |
| _response = bytes(str(e), 'utf-8') |
| finally: |
| return _response |
| def using_prompthero_openjourney(prompt:str)->bytes: |
| try: |
| _generador = Pipe.from_pretrained("prompthero/openjourney", torch_dtype=torch.float16) |
| _generador.to("cuda") |
| _imagen = _generador(prompt).images[0] |
| _response = bytes(Generador.img_to_bytes(image=_imagen)) |
| except Exception as e: |
| print(e) |
| _response = bytes(str(e), 'utf-8') |
| finally: |
| return _response |
| class Difusor: |
| def using_runway_sd_15(prompt:str)->bytes: |
| try: |
| controlnet = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-mlsd") |
| _generador = StableDiffusionControlNetPipeline.from_pretrained( |
| "runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16) |
| _generador.to("cuda") |
| _imagen = _generador(prompt).images[0] |
| _response = bytes(Generador.img_to_bytes(image=_imagen)) |
| except Exception as e: |
| print(e) |
| _response = bytes(str(e), 'utf-8') |
| finally: |
| return _response |