Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -32,6 +32,8 @@ pipeline = None
|
|
| 32 |
logging.basicConfig(level=logging.INFO)
|
| 33 |
logger = logging.getLogger(__name__)
|
| 34 |
|
|
|
|
|
|
|
| 35 |
def start_session(req: gr.Request):
|
| 36 |
user_dir = os.path.join(TMP_DIR, str(req.session_hash))
|
| 37 |
os.makedirs(user_dir, exist_ok=True)
|
|
@@ -313,15 +315,39 @@ with gr.Blocks(delete_cache=(600, 600)) as demo:
|
|
| 313 |
|
| 314 |
# Launch the Gradio app and FastAPI server
|
| 315 |
if __name__ == "__main__":
|
| 316 |
-
logger.info("Initializing Trellis Pipeline...")
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 324 |
|
| 325 |
# Launch the Gradio interface (blocking call)
|
| 326 |
-
logger.info("Launching Gradio Demo...")
|
| 327 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
logging.basicConfig(level=logging.INFO)
|
| 33 |
logger = logging.getLogger(__name__)
|
| 34 |
|
| 35 |
+
logger.info("Trellis App: Script starting.")
|
| 36 |
+
|
| 37 |
def start_session(req: gr.Request):
|
| 38 |
user_dir = os.path.join(TMP_DIR, str(req.session_hash))
|
| 39 |
os.makedirs(user_dir, exist_ok=True)
|
|
|
|
| 315 |
|
| 316 |
# Launch the Gradio app and FastAPI server
|
| 317 |
if __name__ == "__main__":
|
| 318 |
+
logger.info("Trellis App: Initializing Trellis Pipeline...")
|
| 319 |
+
try:
|
| 320 |
+
# Make pipeline global so Gradio functions and API endpoint can access it
|
| 321 |
+
pipeline = TrellisTextTo3DPipeline.from_pretrained("JeffreyXiang/TRELLIS-text-xlarge")
|
| 322 |
+
pipeline.cuda()
|
| 323 |
+
logger.info("Trellis App: Trellis Pipeline Initialized successfully.")
|
| 324 |
+
except Exception as e:
|
| 325 |
+
logger.error(f"Trellis App: FATAL ERROR initializing pipeline: {e}", exc_info=True)
|
| 326 |
+
pipeline = None # Ensure pipeline is None if initialization failed
|
| 327 |
+
# Optionally exit if pipeline is critical
|
| 328 |
+
# import sys
|
| 329 |
+
# sys.exit("Pipeline initialization failed.")
|
| 330 |
+
|
| 331 |
+
# Start the background API server using the integration module only if pipeline loaded
|
| 332 |
+
if pipeline:
|
| 333 |
+
logger.info("Trellis App: Attempting to start FastAPI server thread...")
|
| 334 |
+
try:
|
| 335 |
+
api_thread = trellis_fastAPI_integration.start_api_thread(pipeline)
|
| 336 |
+
if api_thread and api_thread.is_alive():
|
| 337 |
+
logger.info("Trellis App: FastAPI server thread started successfully (is_alive check passed).")
|
| 338 |
+
elif api_thread:
|
| 339 |
+
logger.warning("Trellis App: FastAPI server thread was created but is not alive shortly after starting.")
|
| 340 |
+
else:
|
| 341 |
+
logger.error("Trellis App: start_api_thread returned None, thread not created.")
|
| 342 |
+
except Exception as e:
|
| 343 |
+
logger.error(f"Trellis App: Error occurred during start_api_thread call: {e}", exc_info=True)
|
| 344 |
+
else:
|
| 345 |
+
logger.error("Trellis App: Skipping FastAPI server start because pipeline failed to initialize.")
|
| 346 |
|
| 347 |
# Launch the Gradio interface (blocking call)
|
| 348 |
+
logger.info("Trellis App: Launching Gradio Demo...")
|
| 349 |
+
try:
|
| 350 |
+
demo.launch()
|
| 351 |
+
logger.info("Trellis App: Gradio Demo launched.") # This might not be reached if launch blocks indefinitely
|
| 352 |
+
except Exception as e:
|
| 353 |
+
logger.error(f"Trellis App: Error launching Gradio demo: {e}", exc_info=True)
|