File size: 988 Bytes
2cc8fc5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import io, base64, traceback
from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
from PIL import Image
from wfcontrol import generate_image

app = FastAPI()

@app.post("/transform")
async def transform_image_api(request: Request):
    try:
        data = await request.json()
        img_data = data["image"].split(",")[1]
        prompt = data.get("prompt", "Studio Ghibli")
        style = data.get("style", "ghibli")

        img = Image.open(io.BytesIO(base64.b64decode(img_data))).convert("RGB")

        result = generate_image(input_image=img, prompt=prompt, style=style)

        buffer = io.BytesIO()
        result.save(buffer, format="JPEG")
        result_b64 = base64.b64encode(buffer.getvalue()).decode()

        return JSONResponse(content={"image": "data:image/jpeg;base64," + result_b64})

    except Exception as e:
        print("🔥 ERROR:", traceback.format_exc())
        return JSONResponse(status_code=500, content={"error": str(e)})