File size: 1,026 Bytes
01ff4cd
 
 
f336632
01ff4cd
 
0abd45b
01ff4cd
 
0abd45b
01ff4cd
 
 
433854d
01ff4cd
1a3a6e5
01ff4cd
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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:
        # 创建InferenceClient
        client = InferenceClient("stabilityai/stable-diffusion-3-medium-diffusers", token=token)
        # 使用text_to_image方法生成图片
        image = client.text_to_image(prompt=prompt)

        # 将PIL.Image对象转换为byte数据
        buffered = BytesIO()
        image.save(buffered, format="PNG")
        image_bytes = buffered.getvalue()

        # 将图片转换为base64编码
        image_base64 = base64.b64encode(image_bytes).decode("utf-8")

        # 返回base64编码的图片
        return {"image_base64": image_base64}

    except Exception as e:
        raise HTTPException(status_code=500, detail=f"Error generating image: {str(e)}")