ypedz-api / server.py
ypedz's picture
Upload 2 files
d33fd6a verified
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