import os import shutil import spaces import gradio as gr from gradio_litmodel3d import LitModel3D TMP_DIR = os.path.join( os.path.dirname(os.path.abspath(__file__)), "sessions/imageto3d" ) os.makedirs(TMP_DIR, exist_ok=True) # RBG_REMOVER = RembgRemover() # SAM_PREDICTOR = SAMPredictor(model_type="vit_h") # DELIGHT = DelightingModel() # IMAGESR_MODEL = ImageRealESRGAN(outscale=4) # PIPELINE = TrellisImageTo3DPipeline.from_pretrained( # "JeffreyXiang/TRELLIS-image-large" # ) # # PIPELINE.cuda() # IMAGE_BUFFER = {} # SEG_CHECKER = ImageSegChecker(GPT_CLIENT) # GEO_CHECKER = MeshGeoChecker(GPT_CLIENT) # AESTHETIC_CHECKER = ImageAestheticChecker() # CHECKERS = [GEO_CHECKER, SEG_CHECKER, AESTHETIC_CHECKER] # URDF_CONVERTOR = URDFGenerator(GPT_CLIENT, render_view_num=4) def start_session(req: gr.Request) -> None: user_dir = os.path.join(TMP_DIR, str(req.session_hash)) os.makedirs(user_dir, exist_ok=True) def end_session(req: gr.Request) -> None: user_dir = os.path.join(TMP_DIR, str(req.session_hash)) if os.path.exists(user_dir): shutil.rmtree(user_dir) @spaces.GPU def greet(n): print(zero.device) # <-- 'cuda:0' 🤗 return f"Hello {zero + n} Tensor" with gr.Blocks( delete_cache=(43200, 43200) ) as demo: with gr.Column(): video_output = gr.Video( label="Generated 3D Asset", autoplay=True, loop=True, height=300, interactive=False ) model_output_gs = gr.Model3D( label="Gaussian Representation", height=300, interactive=False ) aligned_gs = gr.Textbox(visible=False) # model_output_mesh = LitModel3D( # # label="Mesh Representation", # # height=300, # # exposure=10, # # interactive=False # ) model_output_mesh = LitModel3D(label="Extracted GLB/Gaussian", exposure=10.0, height=300) gr.Markdown( """ The rendering of `Gaussian Representation` takes additional 10s. """ # noqa ) demo.load(start_session) demo.unload(end_session) if __name__ == "__main__": demo.launch()