bluestyle97 commited on
Commit
184193d
1 Parent(s): 5a97ec4

Upload 147 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +9 -0
  2. .gitignore +41 -0
  3. app.py +88 -0
  4. configs/freesplatter-object-2dgs.yaml +22 -0
  5. configs/freesplatter-object.yaml +21 -0
  6. configs/freesplatter-scene.yaml +22 -0
  7. examples/img_to_3d/avatar.png +3 -0
  8. examples/img_to_3d/backpack.jpg +0 -0
  9. examples/img_to_3d/basketball.jpg +0 -0
  10. examples/img_to_3d/bird.jpg +0 -0
  11. examples/img_to_3d/boy.jpg +0 -0
  12. examples/img_to_3d/bread.jpg +0 -0
  13. examples/img_to_3d/bull.jpg +0 -0
  14. examples/img_to_3d/camera.jpg +0 -0
  15. examples/img_to_3d/censer.jpg +0 -0
  16. examples/img_to_3d/chair.jpg +0 -0
  17. examples/img_to_3d/chair2.jpg +0 -0
  18. examples/img_to_3d/chameleon.jpg +0 -0
  19. examples/img_to_3d/chicken.jpg +0 -0
  20. examples/img_to_3d/close.jpg +0 -0
  21. examples/img_to_3d/crab.jpg +0 -0
  22. examples/img_to_3d/crocodile.jpg +0 -0
  23. examples/img_to_3d/cute_tiger.jpg +0 -0
  24. examples/img_to_3d/cybertruck.jpg +0 -0
  25. examples/img_to_3d/dog.jpg +0 -0
  26. examples/img_to_3d/dog2.jpg +0 -0
  27. examples/img_to_3d/donkey.jpg +0 -0
  28. examples/img_to_3d/dragon.jpg +0 -0
  29. examples/img_to_3d/fox.jpg +0 -0
  30. examples/img_to_3d/girl.jpg +0 -0
  31. examples/img_to_3d/girl2.jpg +0 -0
  32. examples/img_to_3d/goat.jpg +0 -0
  33. examples/img_to_3d/harp.jpg +0 -0
  34. examples/img_to_3d/head.jpg +0 -0
  35. examples/img_to_3d/house.jpg +0 -0
  36. examples/img_to_3d/house2.jpg +0 -0
  37. examples/img_to_3d/king.jpg +0 -0
  38. examples/img_to_3d/lion.png +3 -0
  39. examples/img_to_3d/magician.jpg +0 -0
  40. examples/img_to_3d/peach.jpg +0 -0
  41. examples/img_to_3d/robot.jpg +0 -0
  42. examples/img_to_3d/robot2.jpg +0 -0
  43. examples/img_to_3d/sculpture.png +3 -0
  44. examples/img_to_3d/sculpture2.jpg +0 -0
  45. examples/img_to_3d/sign.jpg +0 -0
  46. examples/img_to_3d/sit.jpg +0 -0
  47. examples/img_to_3d/skateboard.jpg +0 -0
  48. examples/img_to_3d/stitch.jpg +0 -0
  49. examples/img_to_3d/stone.jpg +0 -0
  50. examples/img_to_3d/teddy_bread.jpg +0 -0
.gitattributes CHANGED
@@ -33,3 +33,12 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ examples/img_to_3d/avatar.png filter=lfs diff=lfs merge=lfs -text
37
+ examples/img_to_3d/lion.png filter=lfs diff=lfs merge=lfs -text
38
+ examples/img_to_3d/sculpture.png filter=lfs diff=lfs merge=lfs -text
39
+ examples/views_to_scene/dtu_1/000000.png filter=lfs diff=lfs merge=lfs -text
40
+ examples/views_to_scene/dtu_1/000002.png filter=lfs diff=lfs merge=lfs -text
41
+ examples/views_to_scene/wild_1/000.jpg filter=lfs diff=lfs merge=lfs -text
42
+ examples/views_to_scene/wild_1/001.jpg filter=lfs diff=lfs merge=lfs -text
43
+ examples/views_to_scene/wild_2/000.jpg filter=lfs diff=lfs merge=lfs -text
44
+ examples/views_to_scene/wild_2/001.jpg filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ eggs/
15
+ .eggs/
16
+ .vscode/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+ MANIFEST
27
+
28
+ .DS_Store
29
+
30
+ .env/
31
+ .trash/
32
+ ckpts/
33
+ logs/
34
+ data/
35
+ outputs/
36
+ figures*/
37
+ examples/
38
+ rebuttal/
39
+ apps/
40
+ *.sh
41
+ run.py
app.py ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ if 'OMP_NUM_THREADS' not in os.environ:
3
+ os.environ['OMP_NUM_THREADS'] = '16'
4
+ import torch
5
+ import gradio as gr
6
+ from functools import partial
7
+ from huggingface_hub import snapshot_download
8
+
9
+ from freesplatter.webui.runner import FreeSplatterRunner
10
+ from freesplatter.webui.tab_img_to_3d import create_interface_img_to_3d
11
+ from freesplatter.webui.tab_views_to_3d import create_interface_views_to_3d
12
+ from freesplatter.webui.tab_views_to_scene import create_interface_views_to_scene
13
+
14
+
15
+ os.makedirs('./ckpts/Hunyuan3D-1', exist_ok=True)
16
+ snapshot_download('tencent/Hunyuan3D-1', repo_type='model', local_dir='./ckpts/Hunyuan3D-1')
17
+
18
+ torch.set_grad_enabled(False)
19
+ device = torch.device('cuda')
20
+ runner = FreeSplatterRunner(device)
21
+
22
+
23
+ _HEADER_ = '''
24
+ # FreeSplatter 🤗 Gradio Demo
25
+ \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)
26
+ **FreeSplatter** is a feed-forward framework capable of generating high-quality 3D Gaussians from **uncalibrated** sparse-view images and recovering their camera parameters in mere seconds.
27
+ '''
28
+
29
+ _IMG_TO_3D_HELP_ = '''
30
+ 💡💡💡**Usage Tips:**
31
+ - This demo supports various multi-view diffusion models, including [Hunyuan3D](https://github.com/Tencent/Hunyuan3D-1) Std and [Zero123++](https://github.com/SUDO-AI-3D/zero123plus) v1.1/v1.2. You can try different models to get the best result.
32
+ - Try clicking the \U0001f3b2\ufe0f button to use a different `Random seed` (default: 42) for diverse outputs.
33
+ - In most cases, using `2DGS` leads to better mesh geometry than `3DGS`. Please refer to the [2DGS paper](https://arxiv.org/abs/2403.17888).
34
+ - You can adjust the views used for reconstruction to alleviate the blurry texture problem caused by multi-view inconsistency.
35
+ '''
36
+
37
+ _CITE_ = r"""
38
+ If FreeSplatter is helpful, please help to ⭐ the <a href='https://github.com/TencentARC/FreeSplatter' target='_blank'>Github Repo</a>. Thanks! [![GitHub Stars](https://img.shields.io/github/stars/TencentARC/FreeSplatter?style=social)](https://github.com/TencentARC/FreeSplatter)
39
+ ---
40
+ 📝 **Citation**
41
+ If you find our work useful for your research or applications, please cite using this bibtex:
42
+ ```bibtex
43
+ @article{xu2024freesplatter,
44
+ title={FreeSplatter: Pose-free Gaussian Splatting for Sparse-view 3D Reconstruction},
45
+ author={Xu, Jiale and Gao, Shenghua and Shan, Ying},
46
+ journal={arXiv preprint},
47
+ year={2024}
48
+ }
49
+ ```
50
+ 📋 **License**
51
+ Apache-2.0 LICENSE. Please refer to the [LICENSE file](https://huggingface.co/spaces/TencentARC/FreeSplatter/blob/main/LICENSE) for details.
52
+ 📧 **Contact**
53
+ If you have any questions, feel free to open a discussion or contact us at <b>bluestyle928@gmail.com</b>.
54
+ """
55
+
56
+
57
+ with gr.Blocks(analytics_enabled=False, title='FreeSplatter Demo', theme=gr.themes.Ocean()) as demo:
58
+ gr.Markdown(_HEADER_)
59
+
60
+ with gr.Tabs() as main_tabs:
61
+ with gr.TabItem('Image-to-3D', id='tab_img_to_3d'):
62
+ gr.Markdown(_IMG_TO_3D_HELP_)
63
+
64
+ with gr.Tabs() as sub_tabs_img_to_3d:
65
+ with gr.TabItem('Hunyuan3D Std', id='tab_hunyuan3d_std'):
66
+ _, var_img_to_3d_hunyuan3d_std = create_interface_img_to_3d(
67
+ runner.run_segmentation,
68
+ runner.run_img_to_3d,
69
+ model='Hunyuan3D Std')
70
+ with gr.TabItem('Zero123++ v1.1', id='tab_zero123plus_v11'):
71
+ _, var_img_to_3d_zero123plus_v11 = create_interface_img_to_3d(
72
+ runner.run_segmentation,
73
+ runner.run_img_to_3d,
74
+ model='Zero123++ v1.1')
75
+ with gr.TabItem('Zero123++ v1.2', id='tab_zero123plus_v12'):
76
+ _, var_img_to_3d_zero123plus_v12 = create_interface_img_to_3d(
77
+ runner.run_segmentation,
78
+ runner.run_img_to_3d,
79
+ model='Zero123++ v1.2')
80
+
81
+ gr.Markdown(_CITE_)
82
+
83
+ demo.queue().launch(
84
+ share=False,
85
+ server_name="0.0.0.0",
86
+ server_port=41137,
87
+ ssl_verify=False,
88
+ )
configs/freesplatter-object-2dgs.yaml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ model:
2
+ target: freesplatter.models.model.FreeSplatterModel
3
+ params:
4
+ transformer_config:
5
+ target: freesplatter.models.transformer.Transformer
6
+ params:
7
+ patch_size: 8
8
+ input_dim: 3
9
+ inner_dim: 1024
10
+ output_dim: 22
11
+ depth: 24
12
+ n_heads: 16
13
+ renderer_config:
14
+ sh_degree: 1
15
+ img_height: 512
16
+ img_width: 512
17
+ scaling_activation_type: sigmoid
18
+ scale_min_act: 0.0001
19
+ scale_max_act: 0.02
20
+ scale_multi_act: 0.1
21
+ sh_residual: false
22
+ use_2dgs: true
configs/freesplatter-object.yaml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ model:
2
+ target: freesplatter.models.model.FreeSplatterModel
3
+ params:
4
+ transformer_config:
5
+ target: freesplatter.models.transformer.Transformer
6
+ params:
7
+ patch_size: 8
8
+ input_dim: 3
9
+ inner_dim: 1024
10
+ output_dim: 23
11
+ depth: 24
12
+ n_heads: 16
13
+ renderer_config:
14
+ sh_degree: 1
15
+ img_height: 512
16
+ img_width: 512
17
+ scaling_activation_type: sigmoid
18
+ scale_min_act: 0.0001
19
+ scale_max_act: 0.02
20
+ scale_multi_act: 0.1
21
+ sh_residual: false
configs/freesplatter-scene.yaml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ model:
2
+ target: freesplatter.models.model.FreeSplatterModel
3
+ params:
4
+ transformer_config:
5
+ target: freesplatter.models.transformer.Transformer
6
+ params:
7
+ patch_size: 8
8
+ input_dim: 3
9
+ inner_dim: 1024
10
+ output_dim: 23
11
+ depth: 24
12
+ n_heads: 16
13
+ renderer_config:
14
+ sh_degree: 1
15
+ img_height: 512
16
+ img_width: 512
17
+ scaling_activation_type: sigmoid
18
+ scale_min_act: 0.0001
19
+ scale_max_act: 0.02
20
+ scale_multi_act: 0.1
21
+ bg_color: [0., 0., 0.]
22
+ sh_residual: true
examples/img_to_3d/avatar.png ADDED

Git LFS Details

  • SHA256: d49ccccd40fe0317c2886b0d36a11667003d17a49cc49d9244208d250de9fe31
  • Pointer size: 132 Bytes
  • Size of remote file: 1.17 MB
examples/img_to_3d/backpack.jpg ADDED
examples/img_to_3d/basketball.jpg ADDED
examples/img_to_3d/bird.jpg ADDED
examples/img_to_3d/boy.jpg ADDED
examples/img_to_3d/bread.jpg ADDED
examples/img_to_3d/bull.jpg ADDED
examples/img_to_3d/camera.jpg ADDED
examples/img_to_3d/censer.jpg ADDED
examples/img_to_3d/chair.jpg ADDED
examples/img_to_3d/chair2.jpg ADDED
examples/img_to_3d/chameleon.jpg ADDED
examples/img_to_3d/chicken.jpg ADDED
examples/img_to_3d/close.jpg ADDED
examples/img_to_3d/crab.jpg ADDED
examples/img_to_3d/crocodile.jpg ADDED
examples/img_to_3d/cute_tiger.jpg ADDED
examples/img_to_3d/cybertruck.jpg ADDED
examples/img_to_3d/dog.jpg ADDED
examples/img_to_3d/dog2.jpg ADDED
examples/img_to_3d/donkey.jpg ADDED
examples/img_to_3d/dragon.jpg ADDED
examples/img_to_3d/fox.jpg ADDED
examples/img_to_3d/girl.jpg ADDED
examples/img_to_3d/girl2.jpg ADDED
examples/img_to_3d/goat.jpg ADDED
examples/img_to_3d/harp.jpg ADDED
examples/img_to_3d/head.jpg ADDED
examples/img_to_3d/house.jpg ADDED
examples/img_to_3d/house2.jpg ADDED
examples/img_to_3d/king.jpg ADDED
examples/img_to_3d/lion.png ADDED

Git LFS Details

  • SHA256: cace48d8ecfd3544ad46ced1bd010e4761ce6ef95ff0d5f2831635539b0ca522
  • Pointer size: 132 Bytes
  • Size of remote file: 1.48 MB
examples/img_to_3d/magician.jpg ADDED
examples/img_to_3d/peach.jpg ADDED
examples/img_to_3d/robot.jpg ADDED
examples/img_to_3d/robot2.jpg ADDED
examples/img_to_3d/sculpture.png ADDED

Git LFS Details

  • SHA256: d947e0ef10baf761abb78d2842519ae7428bc6eadab26a159510ddcaf2a47e67
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
examples/img_to_3d/sculpture2.jpg ADDED
examples/img_to_3d/sign.jpg ADDED
examples/img_to_3d/sit.jpg ADDED
examples/img_to_3d/skateboard.jpg ADDED
examples/img_to_3d/stitch.jpg ADDED
examples/img_to_3d/stone.jpg ADDED
examples/img_to_3d/teddy_bread.jpg ADDED