orange15's picture
Upload 4 files
2cc8fc5 verified
raw
history blame contribute delete
988 Bytes
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)})