anvilinteractiv commited on
Commit
f3e022c
·
verified ·
1 Parent(s): 970d1f9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -0
app.py CHANGED
@@ -13,11 +13,33 @@ import subprocess
13
  import shutil
14
  import base64
15
  import logging
 
 
 
 
 
 
 
 
16
 
17
  # Set up logging
18
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
19
  logger = logging.getLogger(__name__)
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  # Install additional dependencies
22
  try:
23
  subprocess.run("pip install spandrel==0.4.1 --no-deps", shell=True, check=True)
@@ -384,6 +406,14 @@ def image_to_3d(
384
  mesh_path = os.path.join(save_dir, f"polygenixai_{get_random_hex()}.glb")
385
  mesh.export(mesh_path)
386
  logger.info(f"Saved mesh to {mesh_path}")
 
 
 
 
 
 
 
 
387
 
388
  torch.cuda.empty_cache()
389
  return mesh_path
@@ -391,6 +421,8 @@ def image_to_3d(
391
  logger.error(f"Error in image_to_3d: {str(e)}")
392
  raise
393
 
 
 
394
  @spaces.GPU(duration=5)
395
  @torch.no_grad()
396
  def run_texture(image: Image, mesh_path: str, seed: int, req: gr.Request):
 
13
  import shutil
14
  import base64
15
  import logging
16
+ from fastapi import FastAPI
17
+ from fastapi.responses import JSONResponse
18
+ from fastapi.middleware.wsgi import WSGIMiddleware
19
+ import uvicorn
20
+
21
+ # Job status dictionary
22
+ generation_status = {}
23
+
24
 
25
  # Set up logging
26
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
27
  logger = logging.getLogger(__name__)
28
 
29
+ # FastAPI app to wrap both Gradio and API routes
30
+ api_app = FastAPI()
31
+
32
+ @api_app.get("/generation_status/{job_id}")
33
+ async def check_generation_status(job_id: str):
34
+ if job_id in generation_status:
35
+ return JSONResponse(content=generation_status[job_id])
36
+ else:
37
+ return JSONResponse(content={"status": "not_found"}, status_code=404)
38
+
39
+
40
+ # Mount the Gradio Blocks demo interface as WSGI
41
+ api_app.mount("/", WSGIMiddleware(demo))
42
+
43
  # Install additional dependencies
44
  try:
45
  subprocess.run("pip install spandrel==0.4.1 --no-deps", shell=True, check=True)
 
406
  mesh_path = os.path.join(save_dir, f"polygenixai_{get_random_hex()}.glb")
407
  mesh.export(mesh_path)
408
  logger.info(f"Saved mesh to {mesh_path}")
409
+
410
+ # Track job status
411
+ job_id = req.session_hash
412
+ generation_status[job_id] = {
413
+ "status": "ready",
414
+ "mesh_path": mesh_path
415
+ }
416
+
417
 
418
  torch.cuda.empty_cache()
419
  return mesh_path
 
421
  logger.error(f"Error in image_to_3d: {str(e)}")
422
  raise
423
 
424
+
425
+
426
  @spaces.GPU(duration=5)
427
  @torch.no_grad()
428
  def run_texture(image: Image, mesh_path: str, seed: int, req: gr.Request):