| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- from fastapi import FastAPI, HTTPException
- from pydantic import BaseModel
- from typing import Optional
- import uvicorn
- import sys
- from liblibai_client import LibLibAIClient
- app = FastAPI(title="LibLib ControlNet API")
- class GenerateRequest(BaseModel):
- image: str
- prompt: str
- negative_prompt: str = "lowres, bad anatomy, text, error"
- width: int = 512
- height: int = 512
- steps: int = 20
- cfg_scale: float = 7
- img_count: int = 1
- control_weight: float = 1.0
- preprocessor: int = 1
- canny_low: int = 100
- canny_high: int = 200
- @app.post("/generate")
- async def generate(req: GenerateRequest):
- try:
- client = LibLibAIClient()
- result = client.generate_image(
- image=req.image,
- prompt=req.prompt,
- negative_prompt=req.negative_prompt,
- width=req.width,
- height=req.height,
- steps=req.steps,
- cfg_scale=req.cfg_scale,
- img_count=req.img_count,
- control_weight=req.control_weight,
- preprocessor=req.preprocessor,
- canny_low=req.canny_low,
- canny_high=req.canny_high
- )
- return result
- except Exception as e:
- raise HTTPException(status_code=500, detail=str(e))
- @app.get("/health")
- async def health():
- return {"status": "ok"}
- if __name__ == "__main__":
- port = int(sys.argv[sys.argv.index("--port") + 1]) if "--port" in sys.argv else 8001
- uvicorn.run(app, host="0.0.0.0", port=port)
|