Spaces:
Running
on
Zero
Running
on
Zero
Upload 85 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +43 -0
- LICENSE +21 -0
- assets/images/np10_b07dbghsn7.png +3 -0
- assets/images/np10_cc486e491a2c499f9fd2aad2b02c6ccb.png +3 -0
- assets/images/np11_0603aac4bbf241c383115f9da3e38d80.png +3 -0
- assets/images/np11_fa2a78dddbbf44589ebe1a315c5077e7.png +3 -0
- assets/images/np12_6f9431c68ffa44d0b2e7635d646c4000.png +3 -0
- assets/images/np12_8a68419f5d454a28a7bc36da4395be60.png +3 -0
- assets/images/np13_39c0fa16ed324b54a605dcdbcd80797c.png +3 -0
- assets/images/np13_b07b4d858z.png +3 -0
- assets/images/np13_d8258903a23e4a368ede8fd584919b68.png +3 -0
- assets/images/np14_2faf0a30b1614a9ba029def4e63270d0.png +3 -0
- assets/images/np14_b8f46cf7daca419a87ac8d131bad056f.png +3 -0
- assets/images/np15_56f1ef2b84514e5e8c11a42aaab6cda7.png +3 -0
- assets/images/np15_b07k7k8yf9.png +0 -0
- assets/images/np2_2b7c6f4109fa4f84919bd30c367c663b.png +3 -0
- assets/images/np2_3cd2cdea87f34bd7acb096f5178b3760.png +3 -0
- assets/images/np3_2f6ab901c5a84ed6bbdf85a67b22a2ee.png +3 -0
- assets/images/np3_5bbc755b07924fcba6ccd702191f90df.png +3 -0
- assets/images/np3_7ba4129133dc46d0818930adb53c0315.png +3 -0
- assets/images/np3_7c00a1667b2c4413b4dcb24500f05892.png +3 -0
- assets/images/np3_be2e5af368e748b88871ed5776e951bb.png +3 -0
- assets/images/np3_c25308e36b3a4c6d9745e01fb34a93a1.png +3 -0
- assets/images/np3_d2e1aa2d2b4b424282d3b643fc8169cf.png +3 -0
- assets/images/np4_2444ea17f3a448b1bb7e2a74b276f015.png +3 -0
- assets/images/np4_4d6e4d3dd9194633ac86285ada1017ad.png +3 -0
- assets/images/np4_7bd5d25aa77b4fb18e780d7a4c97d342.png +3 -0
- assets/images/np4_80e586911397457aa9245eed1eb03abe.png +3 -0
- assets/images/np4_ca27601df1384a7aa152baacfb072306.png +3 -0
- assets/images/np5_23ae06bb5cf84e13ae973721fa5f5625.png +3 -0
- assets/images/np5_b81f29e567ea4db48014f89c9079e403.png +3 -0
- assets/images/np6_b7295d1f9c484a84a53f7ba62ead149e.png +3 -0
- assets/images/np6_bd2716459c774dc48fc793f1b76511e8.png +3 -0
- assets/images/np7_1749ad163235411295ed3342d024f1ac.png +3 -0
- assets/images/np7_1c004909dedb4ebe8db69b4d7b077434.png +3 -0
- assets/images/np7_8d3e568f059244e19f3b5f7e789cccb2.png +3 -0
- assets/images/np8_a7d7c17eadc54aa5a0094415025463ff.png +3 -0
- assets/images/np8_d84dc4fc47614a4687a774152b343ddd.png +3 -0
- assets/images/np9_5cc2b8234ff04a2aa29d5f0a0393ed0c.png +3 -0
- assets/images/np9_8031fc7690e640038ff6a6766e97f19d.png +3 -0
- assets/images/np9_94b4b6d936214b3f988bd4b520da4f53.png +3 -0
- assets/images/np9_dd0ec139989c430fb6572fa024ae1c20.png +3 -0
- assets/objects/scissors.glb +3 -0
- assets/objects/sword.glb +3 -0
- assets/robot.gif +3 -0
- assets/teaser.png +3 -0
- configs/mp16_nt1024.yaml +77 -0
- configs/mp16_nt512.yaml +77 -0
- configs/mp8_nt512.yaml +77 -0
- datasets/README.md +64 -0
.gitattributes
CHANGED
@@ -33,3 +33,46 @@ 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 |
+
assets/images/np10_b07dbghsn7.png filter=lfs diff=lfs merge=lfs -text
|
37 |
+
assets/images/np10_cc486e491a2c499f9fd2aad2b02c6ccb.png filter=lfs diff=lfs merge=lfs -text
|
38 |
+
assets/images/np11_0603aac4bbf241c383115f9da3e38d80.png filter=lfs diff=lfs merge=lfs -text
|
39 |
+
assets/images/np11_fa2a78dddbbf44589ebe1a315c5077e7.png filter=lfs diff=lfs merge=lfs -text
|
40 |
+
assets/images/np12_6f9431c68ffa44d0b2e7635d646c4000.png filter=lfs diff=lfs merge=lfs -text
|
41 |
+
assets/images/np12_8a68419f5d454a28a7bc36da4395be60.png filter=lfs diff=lfs merge=lfs -text
|
42 |
+
assets/images/np13_39c0fa16ed324b54a605dcdbcd80797c.png filter=lfs diff=lfs merge=lfs -text
|
43 |
+
assets/images/np13_b07b4d858z.png filter=lfs diff=lfs merge=lfs -text
|
44 |
+
assets/images/np13_d8258903a23e4a368ede8fd584919b68.png filter=lfs diff=lfs merge=lfs -text
|
45 |
+
assets/images/np14_2faf0a30b1614a9ba029def4e63270d0.png filter=lfs diff=lfs merge=lfs -text
|
46 |
+
assets/images/np14_b8f46cf7daca419a87ac8d131bad056f.png filter=lfs diff=lfs merge=lfs -text
|
47 |
+
assets/images/np15_56f1ef2b84514e5e8c11a42aaab6cda7.png filter=lfs diff=lfs merge=lfs -text
|
48 |
+
assets/images/np2_2b7c6f4109fa4f84919bd30c367c663b.png filter=lfs diff=lfs merge=lfs -text
|
49 |
+
assets/images/np2_3cd2cdea87f34bd7acb096f5178b3760.png filter=lfs diff=lfs merge=lfs -text
|
50 |
+
assets/images/np3_2f6ab901c5a84ed6bbdf85a67b22a2ee.png filter=lfs diff=lfs merge=lfs -text
|
51 |
+
assets/images/np3_5bbc755b07924fcba6ccd702191f90df.png filter=lfs diff=lfs merge=lfs -text
|
52 |
+
assets/images/np3_7ba4129133dc46d0818930adb53c0315.png filter=lfs diff=lfs merge=lfs -text
|
53 |
+
assets/images/np3_7c00a1667b2c4413b4dcb24500f05892.png filter=lfs diff=lfs merge=lfs -text
|
54 |
+
assets/images/np3_be2e5af368e748b88871ed5776e951bb.png filter=lfs diff=lfs merge=lfs -text
|
55 |
+
assets/images/np3_c25308e36b3a4c6d9745e01fb34a93a1.png filter=lfs diff=lfs merge=lfs -text
|
56 |
+
assets/images/np3_d2e1aa2d2b4b424282d3b643fc8169cf.png filter=lfs diff=lfs merge=lfs -text
|
57 |
+
assets/images/np4_2444ea17f3a448b1bb7e2a74b276f015.png filter=lfs diff=lfs merge=lfs -text
|
58 |
+
assets/images/np4_4d6e4d3dd9194633ac86285ada1017ad.png filter=lfs diff=lfs merge=lfs -text
|
59 |
+
assets/images/np4_7bd5d25aa77b4fb18e780d7a4c97d342.png filter=lfs diff=lfs merge=lfs -text
|
60 |
+
assets/images/np4_80e586911397457aa9245eed1eb03abe.png filter=lfs diff=lfs merge=lfs -text
|
61 |
+
assets/images/np4_ca27601df1384a7aa152baacfb072306.png filter=lfs diff=lfs merge=lfs -text
|
62 |
+
assets/images/np5_23ae06bb5cf84e13ae973721fa5f5625.png filter=lfs diff=lfs merge=lfs -text
|
63 |
+
assets/images/np5_b81f29e567ea4db48014f89c9079e403.png filter=lfs diff=lfs merge=lfs -text
|
64 |
+
assets/images/np6_b7295d1f9c484a84a53f7ba62ead149e.png filter=lfs diff=lfs merge=lfs -text
|
65 |
+
assets/images/np6_bd2716459c774dc48fc793f1b76511e8.png filter=lfs diff=lfs merge=lfs -text
|
66 |
+
assets/images/np7_1749ad163235411295ed3342d024f1ac.png filter=lfs diff=lfs merge=lfs -text
|
67 |
+
assets/images/np7_1c004909dedb4ebe8db69b4d7b077434.png filter=lfs diff=lfs merge=lfs -text
|
68 |
+
assets/images/np7_8d3e568f059244e19f3b5f7e789cccb2.png filter=lfs diff=lfs merge=lfs -text
|
69 |
+
assets/images/np8_a7d7c17eadc54aa5a0094415025463ff.png filter=lfs diff=lfs merge=lfs -text
|
70 |
+
assets/images/np8_d84dc4fc47614a4687a774152b343ddd.png filter=lfs diff=lfs merge=lfs -text
|
71 |
+
assets/images/np9_5cc2b8234ff04a2aa29d5f0a0393ed0c.png filter=lfs diff=lfs merge=lfs -text
|
72 |
+
assets/images/np9_8031fc7690e640038ff6a6766e97f19d.png filter=lfs diff=lfs merge=lfs -text
|
73 |
+
assets/images/np9_94b4b6d936214b3f988bd4b520da4f53.png filter=lfs diff=lfs merge=lfs -text
|
74 |
+
assets/images/np9_dd0ec139989c430fb6572fa024ae1c20.png filter=lfs diff=lfs merge=lfs -text
|
75 |
+
assets/objects/scissors.glb filter=lfs diff=lfs merge=lfs -text
|
76 |
+
assets/objects/sword.glb filter=lfs diff=lfs merge=lfs -text
|
77 |
+
assets/robot.gif filter=lfs diff=lfs merge=lfs -text
|
78 |
+
assets/teaser.png filter=lfs diff=lfs merge=lfs -text
|
LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2025 Yuchen Lin
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
assets/images/np10_b07dbghsn7.png
ADDED
![]() |
Git LFS Details
|
assets/images/np10_cc486e491a2c499f9fd2aad2b02c6ccb.png
ADDED
![]() |
Git LFS Details
|
assets/images/np11_0603aac4bbf241c383115f9da3e38d80.png
ADDED
![]() |
Git LFS Details
|
assets/images/np11_fa2a78dddbbf44589ebe1a315c5077e7.png
ADDED
![]() |
Git LFS Details
|
assets/images/np12_6f9431c68ffa44d0b2e7635d646c4000.png
ADDED
![]() |
Git LFS Details
|
assets/images/np12_8a68419f5d454a28a7bc36da4395be60.png
ADDED
![]() |
Git LFS Details
|
assets/images/np13_39c0fa16ed324b54a605dcdbcd80797c.png
ADDED
![]() |
Git LFS Details
|
assets/images/np13_b07b4d858z.png
ADDED
![]() |
Git LFS Details
|
assets/images/np13_d8258903a23e4a368ede8fd584919b68.png
ADDED
![]() |
Git LFS Details
|
assets/images/np14_2faf0a30b1614a9ba029def4e63270d0.png
ADDED
![]() |
Git LFS Details
|
assets/images/np14_b8f46cf7daca419a87ac8d131bad056f.png
ADDED
![]() |
Git LFS Details
|
assets/images/np15_56f1ef2b84514e5e8c11a42aaab6cda7.png
ADDED
![]() |
Git LFS Details
|
assets/images/np15_b07k7k8yf9.png
ADDED
![]() |
assets/images/np2_2b7c6f4109fa4f84919bd30c367c663b.png
ADDED
![]() |
Git LFS Details
|
assets/images/np2_3cd2cdea87f34bd7acb096f5178b3760.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_2f6ab901c5a84ed6bbdf85a67b22a2ee.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_5bbc755b07924fcba6ccd702191f90df.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_7ba4129133dc46d0818930adb53c0315.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_7c00a1667b2c4413b4dcb24500f05892.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_be2e5af368e748b88871ed5776e951bb.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_c25308e36b3a4c6d9745e01fb34a93a1.png
ADDED
![]() |
Git LFS Details
|
assets/images/np3_d2e1aa2d2b4b424282d3b643fc8169cf.png
ADDED
![]() |
Git LFS Details
|
assets/images/np4_2444ea17f3a448b1bb7e2a74b276f015.png
ADDED
![]() |
Git LFS Details
|
assets/images/np4_4d6e4d3dd9194633ac86285ada1017ad.png
ADDED
![]() |
Git LFS Details
|
assets/images/np4_7bd5d25aa77b4fb18e780d7a4c97d342.png
ADDED
![]() |
Git LFS Details
|
assets/images/np4_80e586911397457aa9245eed1eb03abe.png
ADDED
![]() |
Git LFS Details
|
assets/images/np4_ca27601df1384a7aa152baacfb072306.png
ADDED
![]() |
Git LFS Details
|
assets/images/np5_23ae06bb5cf84e13ae973721fa5f5625.png
ADDED
![]() |
Git LFS Details
|
assets/images/np5_b81f29e567ea4db48014f89c9079e403.png
ADDED
![]() |
Git LFS Details
|
assets/images/np6_b7295d1f9c484a84a53f7ba62ead149e.png
ADDED
![]() |
Git LFS Details
|
assets/images/np6_bd2716459c774dc48fc793f1b76511e8.png
ADDED
![]() |
Git LFS Details
|
assets/images/np7_1749ad163235411295ed3342d024f1ac.png
ADDED
![]() |
Git LFS Details
|
assets/images/np7_1c004909dedb4ebe8db69b4d7b077434.png
ADDED
![]() |
Git LFS Details
|
assets/images/np7_8d3e568f059244e19f3b5f7e789cccb2.png
ADDED
![]() |
Git LFS Details
|
assets/images/np8_a7d7c17eadc54aa5a0094415025463ff.png
ADDED
![]() |
Git LFS Details
|
assets/images/np8_d84dc4fc47614a4687a774152b343ddd.png
ADDED
![]() |
Git LFS Details
|
assets/images/np9_5cc2b8234ff04a2aa29d5f0a0393ed0c.png
ADDED
![]() |
Git LFS Details
|
assets/images/np9_8031fc7690e640038ff6a6766e97f19d.png
ADDED
![]() |
Git LFS Details
|
assets/images/np9_94b4b6d936214b3f988bd4b520da4f53.png
ADDED
![]() |
Git LFS Details
|
assets/images/np9_dd0ec139989c430fb6572fa024ae1c20.png
ADDED
![]() |
Git LFS Details
|
assets/objects/scissors.glb
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ac7b9d2218cb6db57c90581bf43b10ccf641bdd0f5eeda9de38770341f01bcef
|
3 |
+
size 9250644
|
assets/objects/sword.glb
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:731fdcff8f129f2ebdb4c5b8967091e0d2041c7ce5064d5061ef628bcdb7e0f2
|
3 |
+
size 413064
|
assets/robot.gif
ADDED
![]() |
Git LFS Details
|
assets/teaser.png
ADDED
![]() |
Git LFS Details
|
configs/mp16_nt1024.yaml
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
model:
|
2 |
+
pretrained_model_name_or_path: 'pretrained_weights/TripoSG'
|
3 |
+
vae:
|
4 |
+
num_tokens: 1024
|
5 |
+
transformer:
|
6 |
+
enable_local_cross_attn: true
|
7 |
+
global_attn_block_ids: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
|
8 |
+
global_attn_block_id_range: null # The average should be 10 for unet-skipping
|
9 |
+
|
10 |
+
|
11 |
+
dataset:
|
12 |
+
config:
|
13 |
+
- 'datasets/object_part_configs.json' # Modify this path if you use your own dataset
|
14 |
+
training_ratio: 0.9
|
15 |
+
min_num_parts: 1
|
16 |
+
max_num_parts: 16
|
17 |
+
max_iou_mean: 0.2
|
18 |
+
max_iou_max: 0.2
|
19 |
+
shuffle_parts: true
|
20 |
+
object_ratio: 0.3
|
21 |
+
rotating_ratio: 0.2
|
22 |
+
ratating_degree: 10
|
23 |
+
|
24 |
+
optimizer:
|
25 |
+
name: "adamw"
|
26 |
+
lr: 5e-5
|
27 |
+
betas:
|
28 |
+
- 0.9
|
29 |
+
- 0.999
|
30 |
+
weight_decay: 0.01
|
31 |
+
eps: 1.e-8
|
32 |
+
|
33 |
+
lr_scheduler:
|
34 |
+
name: "constant_warmup"
|
35 |
+
num_warmup_steps: 1000
|
36 |
+
|
37 |
+
train:
|
38 |
+
batch_size_per_gpu: 32
|
39 |
+
epochs: 10
|
40 |
+
grad_checkpoint: true
|
41 |
+
weighting_scheme: "logit_normal"
|
42 |
+
logit_mean: 0.0
|
43 |
+
logit_std: 1.0
|
44 |
+
mode_scale: 1.29
|
45 |
+
cfg_dropout_prob: 0.1
|
46 |
+
training_objective: "-v"
|
47 |
+
log_freq: 1
|
48 |
+
early_eval_freq: 500
|
49 |
+
early_eval: 1000
|
50 |
+
eval_freq: 1000
|
51 |
+
save_freq: 2000
|
52 |
+
eval_freq_epoch: 5
|
53 |
+
save_freq_epoch: 10
|
54 |
+
ema_kwargs:
|
55 |
+
decay: 0.9999
|
56 |
+
use_ema_warmup: true
|
57 |
+
inv_gamma: 1.
|
58 |
+
power: 0.75
|
59 |
+
|
60 |
+
val:
|
61 |
+
batch_size_per_gpu: 1
|
62 |
+
nrow: 4
|
63 |
+
min_num_parts: 2
|
64 |
+
max_num_parts: 8
|
65 |
+
num_inference_steps: 50
|
66 |
+
max_num_expanded_coords: 1e8
|
67 |
+
use_flash_decoder: false
|
68 |
+
rendering:
|
69 |
+
radius: 4.0
|
70 |
+
num_views: 36
|
71 |
+
fps: 18
|
72 |
+
metric:
|
73 |
+
cd_num_samples: 204800
|
74 |
+
cd_metric: "l2"
|
75 |
+
f1_score_threshold: 0.1
|
76 |
+
default_cd: 1e6
|
77 |
+
default_f1: 0.0
|
configs/mp16_nt512.yaml
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
model:
|
2 |
+
pretrained_model_name_or_path: 'pretrained_weights/TripoSG'
|
3 |
+
vae:
|
4 |
+
num_tokens: 512
|
5 |
+
transformer:
|
6 |
+
enable_local_cross_attn: true
|
7 |
+
global_attn_block_ids: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
|
8 |
+
global_attn_block_id_range: null # The average should be 10 for unet-skipping
|
9 |
+
|
10 |
+
|
11 |
+
dataset:
|
12 |
+
config:
|
13 |
+
- 'datasets/object_part_configs.json' # Modify this path if you use your own dataset
|
14 |
+
training_ratio: 0.9
|
15 |
+
min_num_parts: 1
|
16 |
+
max_num_parts: 16
|
17 |
+
max_iou_mean: 0.5
|
18 |
+
max_iou_max: 0.5
|
19 |
+
shuffle_parts: true
|
20 |
+
object_ratio: 0.3
|
21 |
+
rotating_ratio: 0.2
|
22 |
+
ratating_degree: 10
|
23 |
+
|
24 |
+
optimizer:
|
25 |
+
name: "adamw"
|
26 |
+
lr: 5e-5
|
27 |
+
betas:
|
28 |
+
- 0.9
|
29 |
+
- 0.999
|
30 |
+
weight_decay: 0.01
|
31 |
+
eps: 1.e-8
|
32 |
+
|
33 |
+
lr_scheduler:
|
34 |
+
name: "constant_warmup"
|
35 |
+
num_warmup_steps: 1000
|
36 |
+
|
37 |
+
train:
|
38 |
+
batch_size_per_gpu: 32
|
39 |
+
epochs: 10
|
40 |
+
grad_checkpoint: true
|
41 |
+
weighting_scheme: "logit_normal"
|
42 |
+
logit_mean: 0.0
|
43 |
+
logit_std: 1.0
|
44 |
+
mode_scale: 1.29
|
45 |
+
cfg_dropout_prob: 0.1
|
46 |
+
training_objective: "-v"
|
47 |
+
log_freq: 1
|
48 |
+
early_eval_freq: 500
|
49 |
+
early_eval: 1000
|
50 |
+
eval_freq: 1000
|
51 |
+
save_freq: 2000
|
52 |
+
eval_freq_epoch: 5
|
53 |
+
save_freq_epoch: 10
|
54 |
+
ema_kwargs:
|
55 |
+
decay: 0.9999
|
56 |
+
use_ema_warmup: true
|
57 |
+
inv_gamma: 1.
|
58 |
+
power: 0.75
|
59 |
+
|
60 |
+
val:
|
61 |
+
batch_size_per_gpu: 1
|
62 |
+
nrow: 4
|
63 |
+
min_num_parts: 2
|
64 |
+
max_num_parts: 8
|
65 |
+
num_inference_steps: 50
|
66 |
+
max_num_expanded_coords: 1e8
|
67 |
+
use_flash_decoder: false
|
68 |
+
rendering:
|
69 |
+
radius: 4.0
|
70 |
+
num_views: 36
|
71 |
+
fps: 18
|
72 |
+
metric:
|
73 |
+
cd_num_samples: 204800
|
74 |
+
cd_metric: "l2"
|
75 |
+
f1_score_threshold: 0.1
|
76 |
+
default_cd: 1e6
|
77 |
+
default_f1: 0.0
|
configs/mp8_nt512.yaml
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
model:
|
2 |
+
pretrained_model_name_or_path: 'pretrained_weights/TripoSG'
|
3 |
+
vae:
|
4 |
+
num_tokens: 512
|
5 |
+
transformer:
|
6 |
+
enable_local_cross_attn: true
|
7 |
+
global_attn_block_ids: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
|
8 |
+
global_attn_block_id_range: null # The average should be 10 for unet-skipping
|
9 |
+
|
10 |
+
|
11 |
+
dataset:
|
12 |
+
config:
|
13 |
+
- 'datasets/object_part_configs.json' # Modify this path if you use your own dataset
|
14 |
+
training_ratio: 0.9
|
15 |
+
min_num_parts: 1
|
16 |
+
max_num_parts: 8
|
17 |
+
max_iou_mean: 0.5
|
18 |
+
max_iou_max: 0.5
|
19 |
+
shuffle_parts: true
|
20 |
+
object_ratio: 0.3
|
21 |
+
rotating_ratio: 0.2
|
22 |
+
ratating_degree: 10
|
23 |
+
|
24 |
+
optimizer:
|
25 |
+
name: "adamw"
|
26 |
+
lr: 1e-4
|
27 |
+
betas:
|
28 |
+
- 0.9
|
29 |
+
- 0.999
|
30 |
+
weight_decay: 0.01
|
31 |
+
eps: 1.e-8
|
32 |
+
|
33 |
+
lr_scheduler:
|
34 |
+
name: "constant_warmup"
|
35 |
+
num_warmup_steps: 1000
|
36 |
+
|
37 |
+
train:
|
38 |
+
batch_size_per_gpu: 32
|
39 |
+
epochs: 10
|
40 |
+
grad_checkpoint: true
|
41 |
+
weighting_scheme: "logit_normal"
|
42 |
+
logit_mean: 0.0
|
43 |
+
logit_std: 1.0
|
44 |
+
mode_scale: 1.29
|
45 |
+
cfg_dropout_prob: 0.1
|
46 |
+
training_objective: "-v"
|
47 |
+
log_freq: 1
|
48 |
+
early_eval_freq: 500
|
49 |
+
early_eval: 1000
|
50 |
+
eval_freq: 1000
|
51 |
+
save_freq: 2000
|
52 |
+
eval_freq_epoch: 5
|
53 |
+
save_freq_epoch: 10
|
54 |
+
ema_kwargs:
|
55 |
+
decay: 0.9999
|
56 |
+
use_ema_warmup: true
|
57 |
+
inv_gamma: 1.
|
58 |
+
power: 0.75
|
59 |
+
|
60 |
+
val:
|
61 |
+
batch_size_per_gpu: 1
|
62 |
+
nrow: 4
|
63 |
+
min_num_parts: 2
|
64 |
+
max_num_parts: 8
|
65 |
+
num_inference_steps: 50
|
66 |
+
max_num_expanded_coords: 1e8
|
67 |
+
use_flash_decoder: false
|
68 |
+
rendering:
|
69 |
+
radius: 4.0
|
70 |
+
num_views: 36
|
71 |
+
fps: 18
|
72 |
+
metric:
|
73 |
+
cd_num_samples: 204800
|
74 |
+
cd_metric: "l2"
|
75 |
+
f1_score_threshold: 0.1
|
76 |
+
default_cd: 1e6
|
77 |
+
default_f1: 0.0
|
datasets/README.md
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Dataset Preparation
|
2 |
+
We provide the data preprocessing pipeline for PartCrafter. By following the instructions, you can generate the training data from the raw GLB data. While we are considering releasing the preprocessed dataset, please note that it may take some time before it becomes available.
|
3 |
+
|
4 |
+
## Download Raw Data
|
5 |
+
Our final model uses a subset of [Objaverse](https://huggingface.co/datasets/allenai/objaverse) provided by [LGM](https://github.com/ashawkey/objaverse_filter) and [Amazon Berkeley Objects (ABO) Dataset](https://amazon-berkeley-objects.s3.amazonaws.com/index.html). Please download the raw GLB files according to their instructions. You can also use other source of data.
|
6 |
+
|
7 |
+
## Data Preprocess
|
8 |
+
We provide several scripts to preprocess the raw GLB files [here](./preprocess/). These scripts are minimal implementations and illustrate the whole preprocessing pipeline on a single 3D object.
|
9 |
+
|
10 |
+
1. Sample points from mesh surface
|
11 |
+
```
|
12 |
+
python datasets/preprocess/mesh_to_point.py --input assets/objects/scissors.glb --output preprocessed_data
|
13 |
+
```
|
14 |
+
|
15 |
+
2. Render images
|
16 |
+
```
|
17 |
+
python datasets/preprocess/render.py --input assets/objects/scissors.glb --output preprocessed_data
|
18 |
+
```
|
19 |
+
|
20 |
+
3. Remove background for rendered images and resize to 90%
|
21 |
+
```
|
22 |
+
python datasets/preprocess/rmbg.py --input preprocessed_data/scissors/rendering.png --output preprocessed_data
|
23 |
+
```
|
24 |
+
|
25 |
+
4. (Optional) Calculate IoU
|
26 |
+
```
|
27 |
+
python datasets/preprocess/calculate_iou.py --input assets/objects/scissors.glb --output preprocessed_data
|
28 |
+
```
|
29 |
+
After preprocessing, you can generate a dataset configuration file according to the example configuration file with your own data path.
|
30 |
+
|
31 |
+
To preprocess a folder of meshes, run
|
32 |
+
```
|
33 |
+
python datasets/preprocess/preprocess.py --input assets/objects --output preprocessed_data
|
34 |
+
```
|
35 |
+
This will also generate a configuration file in `./preprocessed_data/object_part_configs.json`.
|
36 |
+
|
37 |
+
## Dataset Configuration
|
38 |
+
The training code requires specific format of dataset configuration. I provide an example configuration [here](example_configs.json). You can use it as a template to configure your own dataset. A minimal legal configuration file should be like:
|
39 |
+
|
40 |
+
```
|
41 |
+
[
|
42 |
+
{
|
43 |
+
"mesh_path": "/path/to/object.glb",
|
44 |
+
"surface_path": "/path/to/object.npy",
|
45 |
+
"image_path": "/path/to/object.png",
|
46 |
+
"num_parts": 4,
|
47 |
+
"iou_mean": 0.5,
|
48 |
+
"iou_max": 0.9,
|
49 |
+
"valid": true
|
50 |
+
},
|
51 |
+
{
|
52 |
+
...
|
53 |
+
},
|
54 |
+
...
|
55 |
+
]
|
56 |
+
```
|
57 |
+
Explaination:
|
58 |
+
- `mesh_path`: The path to the GLB file of the object.
|
59 |
+
- `surface_path`: The path to the npy file of the object surface points.
|
60 |
+
- `image_path`: The path to the rendered image of the object (after removing background).
|
61 |
+
- `num_parts`: The number of parts of the object.
|
62 |
+
- `iou_mean`: The mean IoU of the object parts.
|
63 |
+
- `iou_max`: The max IoU of the object parts.
|
64 |
+
- `valid`: Whether the object is valid. If set to false, the object will be filtered out during training.
|