|
import base64 |
|
from fastapi import APIRouter, HTTPException |
|
from fastapi import Body |
|
from huggingface_hub import InferenceClient, TextToImageTargetSize |
|
from io import BytesIO |
|
|
|
routerImg = APIRouter() |
|
|
|
|
|
@routerImg.post("/generate-image/") |
|
async def generate_image(token: str = Body(...), prompt: str = Body(...)): |
|
try: |
|
|
|
client = InferenceClient("stabilityai/stable-diffusion-3-medium-diffusers", token=token) |
|
|
|
image = client.text_to_image(prompt=prompt) |
|
|
|
|
|
buffered = BytesIO() |
|
image.save(buffered, format="PNG") |
|
image_bytes = buffered.getvalue() |
|
|
|
|
|
image_base64 = base64.b64encode(image_bytes).decode("utf-8") |
|
|
|
|
|
return {"image_base64": image_base64} |
|
|
|
except Exception as e: |
|
raise HTTPException(status_code=500, detail=f"Error generating image: {str(e)}") |
|
|