Spaces:
Running
on
Zero
Running
on
Zero
Working ZeroGPU version
Browse files
app.py
CHANGED
@@ -1,6 +1,8 @@
|
|
|
|
1 |
import os
|
2 |
if 'OMP_NUM_THREADS' not in os.environ:
|
3 |
os.environ['OMP_NUM_THREADS'] = '16'
|
|
|
4 |
import torch
|
5 |
import subprocess
|
6 |
import gradio as gr
|
@@ -11,30 +13,16 @@ from freesplatter.webui.runner import FreeSplatterRunner
|
|
11 |
from freesplatter.webui.tab_img_to_3d import create_interface_img_to_3d
|
12 |
|
13 |
|
14 |
-
def install_cuda_toolkit():
|
15 |
-
CUDA_TOOLKIT_URL = "https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run"
|
16 |
-
CUDA_TOOLKIT_FILE = "/tmp/%s" % os.path.basename(CUDA_TOOLKIT_URL)
|
17 |
-
subprocess.call(["wget", "-q", CUDA_TOOLKIT_URL, "-O", CUDA_TOOLKIT_FILE])
|
18 |
-
subprocess.call(["chmod", "+x", CUDA_TOOLKIT_FILE])
|
19 |
-
subprocess.call([CUDA_TOOLKIT_FILE, "--silent", "--toolkit"])
|
20 |
-
|
21 |
-
os.environ["CUDA_HOME"] = "/usr/local/cuda"
|
22 |
-
os.environ["PATH"] = "%s/bin:%s" % (os.environ["CUDA_HOME"], os.environ["PATH"])
|
23 |
-
os.environ["LD_LIBRARY_PATH"] = "%s/lib:%s" % (
|
24 |
-
os.environ["CUDA_HOME"],
|
25 |
-
"" if "LD_LIBRARY_PATH" not in os.environ else os.environ["LD_LIBRARY_PATH"],
|
26 |
-
)
|
27 |
-
# Fix: arch_list[-1] += '+PTX'; IndexError: list index out of range
|
28 |
-
os.environ["TORCH_CUDA_ARCH_LIST"] = "8.0;8.6"
|
29 |
-
|
30 |
-
install_cuda_toolkit()
|
31 |
-
|
32 |
-
|
33 |
torch.set_grad_enabled(False)
|
34 |
device = torch.device('cuda')
|
35 |
runner = FreeSplatterRunner(device)
|
36 |
|
37 |
|
|
|
|
|
|
|
|
|
|
|
38 |
_HEADER_ = '''
|
39 |
# FreeSplatter 🤗 Gradio Demo
|
40 |
\n\nOfficial demo of the paper [FreeSplatter: Pose-free Gaussian Splatting for Sparse-view 3D Reconstruction](https://arxiv.org/abs/2404.07191). [[Github]](https://github.com/TencentARC/FreeSplatter)
|
@@ -82,20 +70,17 @@ with gr.Blocks(analytics_enabled=False, title='FreeSplatter Demo') as demo:
|
|
82 |
with gr.Tabs() as sub_tabs_img_to_3d:
|
83 |
with gr.TabItem('Hunyuan3D Std', id='tab_hunyuan3d_std'):
|
84 |
_, var_img_to_3d_hunyuan3d_std = create_interface_img_to_3d(
|
85 |
-
|
86 |
-
runner.run_img_to_3d,
|
87 |
model='Hunyuan3D Std')
|
88 |
with gr.TabItem('Zero123++ v1.1', id='tab_zero123plus_v11'):
|
89 |
_, var_img_to_3d_zero123plus_v11 = create_interface_img_to_3d(
|
90 |
-
|
91 |
-
runner.run_img_to_3d,
|
92 |
model='Zero123++ v1.1')
|
93 |
with gr.TabItem('Zero123++ v1.2', id='tab_zero123plus_v12'):
|
94 |
_, var_img_to_3d_zero123plus_v12 = create_interface_img_to_3d(
|
95 |
-
|
96 |
-
runner.run_img_to_3d,
|
97 |
model='Zero123++ v1.2')
|
98 |
|
99 |
gr.Markdown(_CITE_)
|
100 |
|
101 |
-
demo.launch()
|
|
|
1 |
+
import open3d_zerogpu_fix
|
2 |
import os
|
3 |
if 'OMP_NUM_THREADS' not in os.environ:
|
4 |
os.environ['OMP_NUM_THREADS'] = '16'
|
5 |
+
import spaces
|
6 |
import torch
|
7 |
import subprocess
|
8 |
import gradio as gr
|
|
|
13 |
from freesplatter.webui.tab_img_to_3d import create_interface_img_to_3d
|
14 |
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
torch.set_grad_enabled(False)
|
17 |
device = torch.device('cuda')
|
18 |
runner = FreeSplatterRunner(device)
|
19 |
|
20 |
|
21 |
+
@spaces.GPU(duration=120)
|
22 |
+
def run_img_to_3d(*args):
|
23 |
+
yield from runner.run_img_to_3d(*args, cache_dir=gr.utils.get_upload_folder())
|
24 |
+
|
25 |
+
|
26 |
_HEADER_ = '''
|
27 |
# FreeSplatter 🤗 Gradio Demo
|
28 |
\n\nOfficial demo of the paper [FreeSplatter: Pose-free Gaussian Splatting for Sparse-view 3D Reconstruction](https://arxiv.org/abs/2404.07191). [[Github]](https://github.com/TencentARC/FreeSplatter)
|
|
|
70 |
with gr.Tabs() as sub_tabs_img_to_3d:
|
71 |
with gr.TabItem('Hunyuan3D Std', id='tab_hunyuan3d_std'):
|
72 |
_, var_img_to_3d_hunyuan3d_std = create_interface_img_to_3d(
|
73 |
+
run_img_to_3d,
|
|
|
74 |
model='Hunyuan3D Std')
|
75 |
with gr.TabItem('Zero123++ v1.1', id='tab_zero123plus_v11'):
|
76 |
_, var_img_to_3d_zero123plus_v11 = create_interface_img_to_3d(
|
77 |
+
run_img_to_3d,
|
|
|
78 |
model='Zero123++ v1.1')
|
79 |
with gr.TabItem('Zero123++ v1.2', id='tab_zero123plus_v12'):
|
80 |
_, var_img_to_3d_zero123plus_v12 = create_interface_img_to_3d(
|
81 |
+
run_img_to_3d,
|
|
|
82 |
model='Zero123++ v1.2')
|
83 |
|
84 |
gr.Markdown(_CITE_)
|
85 |
|
86 |
+
demo.launch()
|