|
from diffusers import DiffusionPipeline as Pipe |
|
import torch |
|
|
|
class Converter: |
|
import io |
|
from PIL import Image |
|
|
|
img = Image.open(fh, mode='r') |
|
roi_img = img.crop(box) |
|
|
|
img_byte_arr = io.BytesIO() |
|
roi_img.save(img_byte_arr, format='PNG') |
|
img_byte_arr = img_byte_arr.getvalue() |
|
|
|
class Generador: |
|
def img_to_bytes(image) -> bytes: |
|
import io |
|
_imgByteArr = io.BytesIO() |
|
image.save(_imgByteArr, format=image.format) |
|
return _imgByteArr.getvalue() |
|
def using_runway_sd_15(prompt:str)->bytes|None: |
|
try: |
|
_generador = Pipe.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16) |
|
_generador.to("cuda") |
|
_imagen = _generador(prompt).images[0] |
|
_response = Generador.img_to_bytes(img=_imagen) |
|
except Exception as e: |
|
_response = None |
|
finally: |
|
return _response |
|
def using_stability_sd_21(prompt:str)->bytes|None: |
|
try: |
|
_generador = Pipe.from_pretrained("stabilityai/stable-diffusion-2-1", torch_dtype=torch.float16) |
|
_generador.to("cuda") |
|
_imagen = _generador(prompt).images[0] |
|
_response = Generador.img_to_bytes(img=_imagen) |
|
except Exception as e: |
|
_response = None |
|
finally: |
|
return _response |
|
def using_realistic_v14(prompt:str)->bytes|None: |
|
try: |
|
_generador = Pipe.from_pretrained("SG161222/Realistic_Vision_V1.4", torch_dtype=torch.float16) |
|
_generador.to("cuda") |
|
_imagen = _generador(prompt).images[0] |
|
_response = Generador.img_to_bytes(img=_imagen) |
|
except Exception as e: |
|
_response = None |
|
finally: |
|
return _response |
|
def using_prompthero_openjourney(prompt:str)->bytes|None: |
|
try: |
|
_generador = Pipe.from_pretrained("prompthero/openjourney", torch_dtype=torch.float16) |
|
_generador.to("cuda") |
|
_imagen = _generador(prompt).images[0] |
|
_response = Generador.img_to_bytes(img=_imagen) |
|
except Exception as e: |
|
_response = None |
|
finally: |
|
return _response |
|
|