llm / routes /textToImage.py
ngd1210's picture
vl
30451f1
from fastapi import APIRouter, Response
from models.text_to_image import TextToImageRequest
from huggingface_hub import InferenceClient
import io
router = APIRouter()
@router.post("/v1/images/generations", tags=["Text to Image"])
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