| from fastapi import FastAPI, UploadFile, Form | |
| from fastapi.responses import FileResponse | |
| import uuid, os, subprocess | |
| app = FastAPI() | |
| 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") | |