Idol weights (FP32) and model card
Browse files- README.md +45 -0
- birefnet.safetensors +3 -0
- config.json +89 -0
- decoder.safetensors +3 -0
- decoder_gs.safetensors +3 -0
- denoiser.safetensors +3 -0
README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
library_name: idol
|
| 4 |
+
pipeline_tag: image-to-3d
|
| 5 |
+
tags:
|
| 6 |
+
- gaussian-splatting
|
| 7 |
+
- 3d
|
| 8 |
+
- image-to-3d
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# Idol
|
| 12 |
+
|
| 13 |
+
**A single image to a 3D object.** Idol turns one picture of an object into a 3D Gaussian splat (up to
|
| 14 |
+
1,048,576 Gaussians). Code and inference: [github.com/speridlabs/idol-sdk](https://github.com/speridlabs/idol-sdk) ·
|
| 15 |
+
Demo: [Hugging Face Space](https://huggingface.co/spaces/speridlabs/idol).
|
| 16 |
+
|
| 17 |
+
## Files
|
| 18 |
+
|
| 19 |
+
| file | |
|
| 20 |
+
|---|---|
|
| 21 |
+
| `denoiser.safetensors` | rectified-flow transformer, 370M parameters, EMA weights, FP32 |
|
| 22 |
+
| `decoder.safetensors` | octree decoder that places the anchor points, 51M parameters, FP32 |
|
| 23 |
+
| `decoder_gs.safetensors` | Gaussian decoder, 32 Gaussians per anchor, 237M parameters, FP32 |
|
| 24 |
+
| `birefnet.safetensors` | BiRefNet background remover |
|
| 25 |
+
| `config.json` | model configs and inference defaults |
|
| 26 |
+
|
| 27 |
+
## Usage
|
| 28 |
+
|
| 29 |
+
```bash
|
| 30 |
+
pip install git+https://github.com/speridlabs/idol-sdk
|
| 31 |
+
python -m idol.sample --image photo.jpg --mode real
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
```python
|
| 35 |
+
from idol import IdolPipeline
|
| 36 |
+
|
| 37 |
+
pipeline = IdolPipeline.from_pretrained("speridlabs/idol")
|
| 38 |
+
output = pipeline("photo.jpg", mode="real") # mode="synthetic" for renders and generated images
|
| 39 |
+
output.gaussian.save_ply("photo.ply")
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
The image encoders, [DINOv3](https://huggingface.co/facebook/dinov3-vith16plus-pretrain-lvd1689m) and the
|
| 43 |
+
[FLUX.2](https://huggingface.co/black-forest-labs/FLUX.2-dev) VAE, are gated: request access, then `hf auth login`.
|
| 44 |
+
|
| 45 |
+
Defaults: seed 42, 50 Euler steps, CFG 3.0, time shift 3.0, 262,144 Gaussians.
|
birefnet.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9ab37426bf4de0567af6b5d21b16151357149139362e6e8992021b8ce356a154
|
| 3 |
+
size 444473596
|
config.json
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"denoiser": {
|
| 3 |
+
"name": "LatentSeqMMFlowModel",
|
| 4 |
+
"args": {
|
| 5 |
+
"q_token_length": 8192,
|
| 6 |
+
"in_channels": 16,
|
| 7 |
+
"cam_channels": 5,
|
| 8 |
+
"out_channels": 16,
|
| 9 |
+
"model_channels": 1024,
|
| 10 |
+
"cond_channels": 1280,
|
| 11 |
+
"cond2_channels": 128,
|
| 12 |
+
"num_refiner_blocks": 2,
|
| 13 |
+
"num_blocks": 24,
|
| 14 |
+
"num_heads": 16,
|
| 15 |
+
"mlp_ratio": 4,
|
| 16 |
+
"pe_mode": "3d_ot_repo",
|
| 17 |
+
"qk_rms_norm": true,
|
| 18 |
+
"share_mod": true,
|
| 19 |
+
"use_shift_table": true,
|
| 20 |
+
"use_fp16": true
|
| 21 |
+
}
|
| 22 |
+
},
|
| 23 |
+
"decoder": {
|
| 24 |
+
"name": "OctreeProbabilityFixedlenDecoder",
|
| 25 |
+
"args": {
|
| 26 |
+
"pcd_pe_mode": "pcd_ape_v2",
|
| 27 |
+
"model_channels": 1024,
|
| 28 |
+
"cond_channels": 16,
|
| 29 |
+
"num_blocks": 4,
|
| 30 |
+
"num_heads": 16,
|
| 31 |
+
"mlp_ratio": 4,
|
| 32 |
+
"share_mod": true,
|
| 33 |
+
"use_fp16": true
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"decoder_gs": {
|
| 37 |
+
"name": "GaussianFixedlenDecoder",
|
| 38 |
+
"args": {
|
| 39 |
+
"pcd_pe_mode": "pcd_ape_v2",
|
| 40 |
+
"in_channels": 3,
|
| 41 |
+
"model_channels": 1024,
|
| 42 |
+
"cond_channels": 16,
|
| 43 |
+
"num_blocks": 16,
|
| 44 |
+
"num_heads": 16,
|
| 45 |
+
"mlp_ratio": 4,
|
| 46 |
+
"use_fp16": true,
|
| 47 |
+
"use_learned_offset_scale": true,
|
| 48 |
+
"use_per_offset": true,
|
| 49 |
+
"representation_config": {
|
| 50 |
+
"lr": {
|
| 51 |
+
"_xyz": 1.0,
|
| 52 |
+
"_features_dc": 1.0,
|
| 53 |
+
"_opacity": 1.0,
|
| 54 |
+
"_scaling": 1.0,
|
| 55 |
+
"_rotation": 0.1
|
| 56 |
+
},
|
| 57 |
+
"perturb_offset": true,
|
| 58 |
+
"perturbe_size": 1.5,
|
| 59 |
+
"offset_scale": 0.05,
|
| 60 |
+
"num_gaussians": 32,
|
| 61 |
+
"2d_filter_kernel_size": 0.1,
|
| 62 |
+
"3d_filter_kernel_size": 0.0009,
|
| 63 |
+
"scaling_bias": 0.004,
|
| 64 |
+
"opacity_bias": 0.1,
|
| 65 |
+
"scaling_activation": "softplus"
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
},
|
| 69 |
+
"image_size": 1024,
|
| 70 |
+
"max_voxel_level": 8,
|
| 71 |
+
"max_sampled_points": 8192,
|
| 72 |
+
"sigma_min": 1e-05,
|
| 73 |
+
"image_encoders": {
|
| 74 |
+
"dinov3": "facebook/dinov3-vith16plus-pretrain-lvd1689m",
|
| 75 |
+
"flux2_vae": "black-forest-labs/FLUX.2-dev",
|
| 76 |
+
"resolution": 1024
|
| 77 |
+
},
|
| 78 |
+
"defaults": {
|
| 79 |
+
"seed": 42,
|
| 80 |
+
"steps": 50,
|
| 81 |
+
"cfg_strength": 3.0,
|
| 82 |
+
"rescale_t": 3.0,
|
| 83 |
+
"num_gaussians": 262144,
|
| 84 |
+
"crop_margin": {
|
| 85 |
+
"synthetic": 1.2,
|
| 86 |
+
"real": 1.7
|
| 87 |
+
}
|
| 88 |
+
}
|
| 89 |
+
}
|
decoder.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9da4d7676bfcadb1c3fdfbff796e6257dadf82d26ec05be7717c79b2b13a1c4e
|
| 3 |
+
size 203171696
|
decoder_gs.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3087eb8ee5763206a53e4078acf2a1bf382dab5147d407ec13a2cf39c04cc544
|
| 3 |
+
size 949083036
|
denoiser.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ded2cacf671bf3978ebc62729087abdbd318ef4752e6805b4c9fc8ffa51fe716
|
| 3 |
+
size 1482258308
|