Spaces:
Sleeping
Sleeping
from fastapi import APIRouter, Response | |
from models.text_to_image import TextToImageRequest | |
from huggingface_hub import InferenceClient | |
import io | |
router = APIRouter() | |
async def text_to_image(t2i_body: TextToImageRequest): | |
client = InferenceClient(model=t2i_body.model) | |
res = client.text_to_image( | |
t2i_body.prompt, | |
negative_prompt=t2i_body.negative_prompt, | |
height=t2i_body.height, | |
width=t2i_body.width, | |
num_inference_steps=t2i_body.num_inference_steps, | |
guidance_scale=t2i_body.guidance_scale, | |
scheduler=t2i_body.scheduler, | |
# target_size=t2i_body.target_size, | |
seed=t2i_body.seed | |
) | |
img_byte_arr = io.BytesIO() | |
res.save(img_byte_arr, format="PNG") | |
img_byte_arr.seek(0) | |
try: | |
res = client.text_to_image( | |
prompt=t2i_body.prompt, | |
negative_prompt=t2i_body.negative_prompt, | |
height=t2i_body.height, | |
width=t2i_body.width, | |
num_inference_steps=t2i_body.num_inference_steps, | |
guidance_scale=t2i_body.guidance_scale, | |
scheduler=t2i_body.scheduler, | |
seed=t2i_body.seed | |
) | |
img_byte_arr = io.BytesIO() | |
res.save(img_byte_arr, format="PNG") | |
img_byte_arr.seek(0) | |
return Response(content=img_byte_arr.getvalue(), media_type="image/png") | |
except Exception as e: | |
print(f"Error generating image: {e}") | |
return {"error": str(e)}, 500 |