alibehzadir's picture
Upload 28 files
d7563ca verified
import time
import asyncio
import base64
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
start_time = time.time()
class GenerateRequest(BaseModel):
prompt: str
height: Optional[int] = 512
width: Optional[int] = 512
num_inference_steps: Optional[int] = 50
guidance_scale: Optional[float] = 7.5
return_base64: Optional[bool] = False
@app.post("/generate")
async def generate(req: GenerateRequest):
# شبیه‌سازی کار سنگین (می‌توانید این بخش را به نمونه واقعی جایگزین کنید)
await asyncio.sleep(0.5) # نصف ثانیه تا یک ثانیه
payload = f"Generated for: {req.prompt}".encode("utf-8")
if req.return_base64:
return {"base64": base64.b64encode(payload).decode()}
return {
"prompt": req.prompt,
"height": req.height,
"width": req.width,
"num_inference_steps": req.num_inference_steps,
"guidance_scale": req.guidance_scale,
"output": payload.decode("utf-8", errors="ignore")
}
@app.get("/status")
async def status():
uptime = int(time.time() - start_time)
return {
"ready": True,
"uptime_seconds": uptime,
"docs": "/docs",
"openapi": "/openapi.json"
}
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)