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") | |