update img2img test1
Browse files- api/core/app.py +28 -4
- api/main.py +16 -1
api/core/app.py
CHANGED
@@ -1,22 +1,24 @@
|
|
1 |
class Demos:
|
2 |
def __init__(self):
|
3 |
-
from fastapi import FastAPI, HTTPException, Response
|
|
|
4 |
self.api = FastAPI
|
5 |
self.exception = HTTPException
|
6 |
self.api_response = Response
|
|
|
|
|
7 |
def validate_apikey(self,api_key)->bool:
|
8 |
__validation = True
|
9 |
return __validation
|
10 |
@staticmethod
|
11 |
def text_to_img(texto:str=None, model:str="PROMPTHERO")->bytes:
|
12 |
-
"""Genera un
|
13 |
|
14 |
args:
|
15 |
texto (str) : Texto para generar imagen
|
16 |
return:
|
17 |
-
_img (
|
18 |
"""
|
19 |
-
|
20 |
from api.core.controllers.text2image import Generador
|
21 |
_imagen = str()
|
22 |
if "RUNWAY" in model.upper():
|
@@ -66,5 +68,27 @@ class Demos:
|
|
66 |
"""
|
67 |
_image = str()
|
68 |
return _image
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
|
|
|
1 |
class Demos:
|
2 |
def __init__(self):
|
3 |
+
from fastapi import FastAPI, HTTPException, Response, File
|
4 |
+
from typing import Annotated
|
5 |
self.api = FastAPI
|
6 |
self.exception = HTTPException
|
7 |
self.api_response = Response
|
8 |
+
self.annotated = Annotated
|
9 |
+
self.fileupload = File
|
10 |
def validate_apikey(self,api_key)->bool:
|
11 |
__validation = True
|
12 |
return __validation
|
13 |
@staticmethod
|
14 |
def text_to_img(texto:str=None, model:str="PROMPTHERO")->bytes:
|
15 |
+
"""Genera un Bytes de la imagen con el texto dado.
|
16 |
|
17 |
args:
|
18 |
texto (str) : Texto para generar imagen
|
19 |
return:
|
20 |
+
_img (bytes) : Imagen en Bytes
|
21 |
"""
|
|
|
22 |
from api.core.controllers.text2image import Generador
|
23 |
_imagen = str()
|
24 |
if "RUNWAY" in model.upper():
|
|
|
68 |
"""
|
69 |
_image = str()
|
70 |
return _image
|
71 |
+
@staticmethod
|
72 |
+
def img_to_img(texto:str=None, model:str="PROMPTHERO")->bytes:
|
73 |
+
"""Genera un Bytes de la imagen con el texto dado.
|
74 |
+
|
75 |
+
args:
|
76 |
+
texto (str) : Texto para generar imagen
|
77 |
+
return:
|
78 |
+
_img (bytes) : Imagen en Bytes
|
79 |
+
"""
|
80 |
+
from api.core.controllers.text2image import Generador
|
81 |
+
_imagen = str()
|
82 |
+
if "RUNWAY" in model.upper():
|
83 |
+
_imagen = Generador.using_runway_sd_15(prompt=texto)
|
84 |
+
elif "STABILITY" in model.upper():
|
85 |
+
_imagen = Generador.using_stability_sd_21(prompt=texto)
|
86 |
+
elif "REALISTIC" in model.upper():
|
87 |
+
_imagen = Generador.using_realistic_v14(prompt=texto)
|
88 |
+
elif "PROMPTHERO" in model.upper():
|
89 |
+
_imagen = Generador.using_prompthero_openjourney(prompt=texto)
|
90 |
+
else:
|
91 |
+
_imagen = bytes("error", 'utf-8')
|
92 |
+
return _imagen
|
93 |
|
94 |
|
api/main.py
CHANGED
@@ -54,4 +54,19 @@ def get_text2speach(data:dict) -> dict:
|
|
54 |
|
55 |
|
56 |
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
|
56 |
|
57 |
+
|
58 |
+
@api.post("/imagen_a_imagen/", status_code=201, responses = {201: {"content": {"image/png": {}}}} ,response_class=__main.api_response)
|
59 |
+
def get_text2img(data:dict, file: __main.annotated[bytes, __main.fileupload()]):
|
60 |
+
__response=dict({"request_data":data})
|
61 |
+
try:
|
62 |
+
if data and 'texto' in data and 'modelo' in data and file is not None:
|
63 |
+
__response['original']= data.get('texto')
|
64 |
+
__image = file
|
65 |
+
else:
|
66 |
+
raise __main.exception(status_code = 401, datail=f"Datos mal formados:\n{data}")
|
67 |
+
except Exception as e:
|
68 |
+
print(e)
|
69 |
+
#To-do ->agregar mas información en el error fecha, usuario, reqs
|
70 |
+
raise __main.exception(status_code = 403, datail=str(e))
|
71 |
+
finally:
|
72 |
+
return __main.api_response(content=__image, media_type="image/png")
|