File size: 1,378 Bytes
d33fd6a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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