Skip to content

Commit 14c4d3b

Browse files
authored
Merge pull request #517 from DenisKochetov/partcrafter-scene
Add partcrafter scene
2 parents ffa5ff8 + 4785b7d commit 14c4d3b

13 files changed

Lines changed: 689 additions & 8 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
*.7z filter=lfs diff=lfs merge=lfs -text
2+
*.arrow filter=lfs diff=lfs merge=lfs -text
3+
*.bin filter=lfs diff=lfs merge=lfs -text
4+
*.bz2 filter=lfs diff=lfs merge=lfs -text
5+
*.ckpt filter=lfs diff=lfs merge=lfs -text
6+
*.ftz filter=lfs diff=lfs merge=lfs -text
7+
*.gz filter=lfs diff=lfs merge=lfs -text
8+
*.h5 filter=lfs diff=lfs merge=lfs -text
9+
*.joblib filter=lfs diff=lfs merge=lfs -text
10+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
11+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
12+
*.model filter=lfs diff=lfs merge=lfs -text
13+
*.msgpack filter=lfs diff=lfs merge=lfs -text
14+
*.npy filter=lfs diff=lfs merge=lfs -text
15+
*.npz filter=lfs diff=lfs merge=lfs -text
16+
*.onnx filter=lfs diff=lfs merge=lfs -text
17+
*.ot filter=lfs diff=lfs merge=lfs -text
18+
*.parquet filter=lfs diff=lfs merge=lfs -text
19+
*.pb filter=lfs diff=lfs merge=lfs -text
20+
*.pickle filter=lfs diff=lfs merge=lfs -text
21+
*.pkl filter=lfs diff=lfs merge=lfs -text
22+
*.pt filter=lfs diff=lfs merge=lfs -text
23+
*.pth filter=lfs diff=lfs merge=lfs -text
24+
*.rar filter=lfs diff=lfs merge=lfs -text
25+
*.safetensors filter=lfs diff=lfs merge=lfs -text
26+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27+
*.tar.* filter=lfs diff=lfs merge=lfs -text
28+
*.tar filter=lfs diff=lfs merge=lfs -text
29+
*.tflite filter=lfs diff=lfs merge=lfs -text
30+
*.tgz filter=lfs diff=lfs merge=lfs -text
31+
*.wasm filter=lfs diff=lfs merge=lfs -text
32+
*.xz 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
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
license: mit
3+
pipeline_tag: image-to-3d
4+
tags:
5+
- partcrafter
6+
- 3d-generation
7+
- rectified-flow
8+
---
9+
# PartCrafter: Structured 3D Mesh Generation via Compositional Latent Diffusion Transformers (Scene Level)
10+
11+
PartCrafter is a structured 3D generative model that jointly generates multiple parts and objects from a single RGB image in one shot.
12+
This HuggingFace🤗 repo stores pretrained model weights for PartCrafter on **scene level**.
13+
14+
For more details about usage, please refer to the [official GitHub repo](https://github.com/wgsxm/PartCrafter).
15+
16+
- Project page: https://wgsxm.github.io/projects/partcrafter/
17+
- Code: https://github.com/wgsxm/PartCrafter
18+
- Paper: https://arxiv.org/abs/2506.05573
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"crop_size": {
3+
"height": 224,
4+
"width": 224
5+
},
6+
"do_center_crop": true,
7+
"do_convert_rgb": true,
8+
"do_normalize": true,
9+
"do_rescale": true,
10+
"do_resize": true,
11+
"image_mean": [
12+
0.485,
13+
0.456,
14+
0.406
15+
],
16+
"image_processor_type": "BitImageProcessor",
17+
"image_std": [
18+
0.229,
19+
0.224,
20+
0.225
21+
],
22+
"resample": 3,
23+
"rescale_factor": 0.00392156862745098,
24+
"size": {
25+
"shortest_edge": 256
26+
}
27+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"apply_layernorm": true,
3+
"architectures": [
4+
"Dinov2Model"
5+
],
6+
"attention_probs_dropout_prob": 0.0,
7+
"drop_path_rate": 0.0,
8+
"hidden_act": "gelu",
9+
"hidden_dropout_prob": 0.0,
10+
"hidden_size": 1024,
11+
"image_size": 518,
12+
"initializer_range": 0.02,
13+
"layer_norm_eps": 1e-06,
14+
"layerscale_value": 1.0,
15+
"mlp_ratio": 4,
16+
"model_type": "dinov2",
17+
"num_attention_heads": 16,
18+
"num_channels": 3,
19+
"num_hidden_layers": 24,
20+
"out_features": [
21+
"stage24"
22+
],
23+
"out_indices": [
24+
24
25+
],
26+
"patch_size": 14,
27+
"qkv_bias": true,
28+
"reshape_hidden_states": true,
29+
"stage_names": [
30+
"stem",
31+
"stage1",
32+
"stage2",
33+
"stage3",
34+
"stage4",
35+
"stage5",
36+
"stage6",
37+
"stage7",
38+
"stage8",
39+
"stage9",
40+
"stage10",
41+
"stage11",
42+
"stage12",
43+
"stage13",
44+
"stage14",
45+
"stage15",
46+
"stage16",
47+
"stage17",
48+
"stage18",
49+
"stage19",
50+
"stage20",
51+
"stage21",
52+
"stage22",
53+
"stage23",
54+
"stage24"
55+
],
56+
"torch_dtype": "float16",
57+
"transformers_version": "4.53.2",
58+
"use_mask_token": true,
59+
"use_swiglu_ffn": false
60+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"_class_name": "PartCrafterPipeline",
3+
"_diffusers_version": "0.34.0",
4+
"feature_extractor_dinov2": [
5+
"transformers",
6+
"BitImageProcessor"
7+
],
8+
"image_encoder_dinov2": [
9+
"transformers",
10+
"Dinov2Model"
11+
],
12+
"scheduler": [
13+
"partcrafter_src.schedulers.scheduling_rectified_flow",
14+
"RectifiedFlowScheduler"
15+
],
16+
"transformer": [
17+
"partcrafter_src.models.transformers.partcrafter_transformer",
18+
"PartCrafterDiTModel"
19+
],
20+
"vae": [
21+
"partcrafter_src.models.autoencoders.autoencoder_kl_triposg",
22+
"TripoSGVAEModel"
23+
]
24+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"_class_name": "RectifiedFlowScheduler",
3+
"_diffusers_version": "0.34.0",
4+
"num_train_timesteps": 1000,
5+
"shift": 1,
6+
"use_dynamic_shifting": false
7+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"_class_name": "PartCrafterDiTModel",
3+
"_diffusers_version": "0.34.0",
4+
"cross_attention_dim": 1024,
5+
"enable_global_cross_attn": true,
6+
"enable_local_cross_attn": true,
7+
"enable_part_embedding": true,
8+
"global_attn_block_id_range": null,
9+
"global_attn_block_ids": [
10+
0,
11+
2,
12+
4,
13+
6,
14+
8,
15+
10,
16+
12,
17+
14,
18+
16,
19+
18,
20+
20
21+
],
22+
"in_channels": 64,
23+
"max_num_parts": 32,
24+
"num_attention_heads": 16,
25+
"num_layers": 21,
26+
"width": 2048
27+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"_class_name": "TripoSGVAEModel",
3+
"_diffusers_version": "0.34.0",
4+
"_name_or_path": "pretrained_weights/TripoSG",
5+
"embed_frequency": 8,
6+
"embed_include_pi": false,
7+
"embedding_type": "frequency",
8+
"in_channels": 3,
9+
"latent_channels": 64,
10+
"num_attention_heads": 8,
11+
"num_layers_decoder": 16,
12+
"num_layers_encoder": 8,
13+
"width_decoder": 1024,
14+
"width_encoder": 512
15+
}

README.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,26 @@ Your ComfyUI Root Directory\python_embeded\python.exe install.py
4747
- **Note:** you need to put [Example Inputs Files & Folders](_Example_Workflows/_Example_Inputs_Files/) under ComfyUI Root Directory\ComfyUI\input folder before you can run the example workflow
4848

4949
- **PartCrafter**: [wgsxm/PartCrafter](https://github.com/wgsxm/PartCrafter)
50-
- Pipeline:
51-
- Single image → 3D mesh with **part segmentation**
52-
- Optional background removal (`rembg`)
53-
- Output includes:
54-
- Merged full mesh
55-
- ZIP archive with individual part meshes
56-
- Model weights: [HuggingFace - PartCrafter](https://huggingface.co/wgsxm/PartCrafter)
57-
- [Workflow](./_Example_Workflows/PartCrafter.json)
50+
- Two-model pipeline:
51+
- **Single object** mode:
52+
- Single image → 3D mesh with **part segmentation**
53+
- Output:
54+
- Merged full mesh
55+
- ZIP archive with individual part meshes
56+
- **Scene** mode:
57+
- Scene image → multiple 3D part meshes
58+
- Output:
59+
- Merged full scene mesh
60+
- ZIP archive with individual object meshes
61+
- Model weights:
62+
- [PartCrafter (object mode)](https://huggingface.co/wgsxm/PartCrafter)
63+
- [PartCrafter-Scene (scene mode)](https://huggingface.co/wgsxm/PartCrafter-Scene)
64+
- Workflows:
65+
- [Single Object](./_Example_Workflows/PartCrafter/PartCrafter.json)
66+
- [Scene](./_Example_Workflows/PartCrafter/PartCrafter-Scene.json)
5867

5968
<video controls autoplay loop src="https://github.com/user-attachments/assets/b80bcc97-7381-4cf7-9ec6-ee48c8d58217"></video>
69+
<video controls autoplay loop src="https://github.com/user-attachments/assets/d82f4b32-4916-4286-8478-a86dd5da37a6"></video>
6070

6171
- **Hunyuan3D_2.1**: [Tencent-Hunyuan/Hunyuan3D-2.1](https://github.com/Tencent-Hunyuan/Hunyuan3D-2.1)
6272
- Updated two-stage pipeline:

0 commit comments

Comments
 (0)