from fastapi import FastAPI, UploadFile, File from fastapi.responses import FileResponse from fastapi.middleware.cors import CORSMiddleware import os import subprocess app = FastAPI() # Wajib: Mengizinkan YPEDZ TOOLS (Frontend) mengakses API ini (CORS) app.add_middleware( CORSMiddleware, allow_origins=["*"], # Mengizinkan semua akses. Nanti bisa diganti dengan URL web Anda. allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.post("/api/enhance") async def enhance_image(file: UploadFile = File(...)): # Buat folder penyimpanan sementara os.makedirs("temp_input", exist_ok=True) os.makedirs("temp_output", exist_ok=True) input_path = f"temp_input/{file.filename}" output_path = f"temp_output/enhanced_{file.filename}" # Simpan foto mentah yang dikirim dari web with open(input_path, "wb") as buffer: buffer.write(await file.read()) # Jalankan Real-ESRGAN (Pastikan realesrgan-ncnn-vulkan.exe ada di folder yang sama) # -n adalah nama model, -i input, -o output command = f"realesrgan-ncnn-vulkan.exe -i {input_path} -o {output_path} -n realesrgan-x4plus" subprocess.run(command, shell=True) # Kirim foto yang sudah jernih kembali ke website return FileResponse(output_path) # Cara menjalankan server: uvicorn server:app --reload