File size: 926 Bytes
e2ad3f3
 
1cc9a69
5846686
e2ad3f3
030dbb8
2b11a8a
e2ad3f3
89cb270
2b11a8a
e2ad3f3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
030dbb8
 
 
 
 
 
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
32
from fastapi import FastAPI, UploadFile
from fastapi.responses import JSONResponse
from hf_diffusion_service import HFDiffusionService
from PIL import Image
import io, base64
import uvicorn

app = FastAPI()
service = HFDiffusionService()

@app.post("/generate")
async def generate(file: UploadFile):
    # Read file bytes
    image_bytes = await file.read()
    mask = Image.open(io.BytesIO(image_bytes)).convert("L")
    
    # Generate CT
    result = service.generate_image(mask)
    
    # Convert to base64
    buffer = io.BytesIO()
    result.save(buffer, format="PNG")
    base64_img = base64.b64encode(buffer.getvalue()).decode("utf-8")
    
    return JSONResponse(content={"image": f"data:image/png;base64,{base64_img}"})


# ✅ Add this to start FastAPI server for Spaces
if __name__ == "__main__":
    # Run uvicorn explicitly so Hugging Face sees a running server
    uvicorn.run(app, host="0.0.0.0", port=7860)