main.py 1001 B

1234567891011121314151617181920212223242526272829303132333435
  1. import os
  2. import uvicorn
  3. from fastapi import FastAPI
  4. from pydantic import BaseModel
  5. from typing import Optional
  6. from comfy_launcher import launch_comfy_server
  7. from dotenv import load_dotenv
  8. env_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), ".env")
  9. if os.path.exists(env_path):
  10. load_dotenv(env_path)
  11. else:
  12. load_dotenv()
  13. app = FastAPI()
  14. class LaunchRequest(BaseModel):
  15. version_id: Optional[str] = "90f77137-ba75-400d-870f-204c614ae8a3"
  16. server_type: Optional[str] = "medium"
  17. duration: Optional[int] = 3600
  18. @app.post("/launch")
  19. def launch(req: LaunchRequest):
  20. return launch_comfy_server(
  21. version_id=req.version_id,
  22. server_type=req.server_type,
  23. duration=req.duration
  24. )
  25. if __name__ == "__main__":
  26. import argparse
  27. parser = argparse.ArgumentParser()
  28. parser.add_argument("--port", type=int, default=8101)
  29. args = parser.parse_args()
  30. uvicorn.run(app, host="0.0.0.0", port=args.port)