from fastapi import FastAPI, UploadFile, Form from fastapi.responses import FileResponse import uuid, os, subprocess app = FastAPI() @app.post("/generate") async def generate(file: UploadFile, prompt: str = Form(...)): input_dir = "input" output_dir = "output" os.makedirs(input_dir, exist_ok=True) os.makedirs(output_dir, exist_ok=True) file_location = f"{input_dir}/{uuid.uuid4()}.png" with open(file_location, "wb") as f: f.write(await file.read()) # เรียก Kolors inference script result = subprocess.run([ "python", "scripts/inference.py", "--ckpt-dir", "models/Kolors", "--prompt", prompt, "--outdir", output_dir, "--input", file_location ]) output_file = f"{output_dir}/{os.path.basename(file_location)}" return FileResponse(output_file, media_type="image/png")