File size: 2,176 Bytes
2e90551
5f6e2e5
8a571e5
5f6e2e5
 
2e90551
 
 
 
 
9dd1694
 
 
 
 
 
 
 
2e90551
9dd1694
 
 
 
 
 
2e90551
 
 
 
 
 
 
 
 
 
 
 
8a571e5
 
 
 
2e90551
 
5aae6b8
2e90551
37b4bf9
044ab04
 
 
 
 
8278d5e
044ab04
 
 
 
 
af48ff9
37b4bf9
 
 
 
 
 
 
044ab04
 
 
2e90551
 
 
 
921d811
cac4e12
2e90551
ad80ffb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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()