mlboydaisuke commited on
Commit
74728e5
·
verified ·
1 Parent(s): e7ee122

Faster default form in the root; the first release's form moves to 262k/

Browse files

Two forms. The repo's root now holds a faster default form: a photo makes a splat of 65,536 Gaussians (2,048 anchors), every graph but BiRefNet runs on the GPU at FP16, the denoiser's joint blocks 1-22 share one graph (den_joint_mid.tflite, weights in den_joint_w.f32) and the Gaussian decoder's graphs 1-6 share another (gs_mid.tflite, weights in gs_w.f32); the app copies a block's weights in before each call, so each is compiled once per photo. The first release's form (262,144 Gaussians, a graph per block, GPU FP16 with fp32 accumulation) moves to 262k/ with its own manifest.json; its files are the same bytes as the root's at commit e7ee1226. On a Galaxy S26 the first photo after start on a cool phone took 158 s with the default form and 267 s with the 262k/ form. Four-view renders against the author's default on the phone (armchair / axolotl / succulent; threshold 25 dB): 34.41 / 32.26 / 34.26 dB PSNR with the default form, 46.59 / 42.34 / 41.43 dB with the 262k/ form.

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. 262k/bir.tflite +3 -0
  3. 262k/den_ctx.tflite +3 -0
  4. 262k/den_in.tflite +3 -0
  5. 262k/den_joint_00.tflite +3 -0
  6. den_joint_01.tflite → 262k/den_joint_01.tflite +0 -0
  7. den_joint_02.tflite → 262k/den_joint_02.tflite +0 -0
  8. den_joint_03.tflite → 262k/den_joint_03.tflite +0 -0
  9. den_joint_04.tflite → 262k/den_joint_04.tflite +0 -0
  10. den_joint_05.tflite → 262k/den_joint_05.tflite +0 -0
  11. den_joint_06.tflite → 262k/den_joint_06.tflite +0 -0
  12. den_joint_07.tflite → 262k/den_joint_07.tflite +0 -0
  13. den_joint_08.tflite → 262k/den_joint_08.tflite +0 -0
  14. den_joint_09.tflite → 262k/den_joint_09.tflite +0 -0
  15. den_joint_10.tflite → 262k/den_joint_10.tflite +0 -0
  16. den_joint_11.tflite → 262k/den_joint_11.tflite +0 -0
  17. den_joint_12.tflite → 262k/den_joint_12.tflite +0 -0
  18. den_joint_13.tflite → 262k/den_joint_13.tflite +0 -0
  19. den_joint_14.tflite → 262k/den_joint_14.tflite +0 -0
  20. den_joint_15.tflite → 262k/den_joint_15.tflite +0 -0
  21. den_joint_16.tflite → 262k/den_joint_16.tflite +0 -0
  22. den_joint_17.tflite → 262k/den_joint_17.tflite +0 -0
  23. den_joint_18.tflite → 262k/den_joint_18.tflite +0 -0
  24. den_joint_19.tflite → 262k/den_joint_19.tflite +0 -0
  25. den_joint_20.tflite → 262k/den_joint_20.tflite +0 -0
  26. den_joint_21.tflite → 262k/den_joint_21.tflite +0 -0
  27. den_joint_22.tflite → 262k/den_joint_22.tflite +0 -0
  28. 262k/den_joint_23.tflite +3 -0
  29. 262k/den_pos_emb.f32 +3 -0
  30. 262k/gs_0.tflite +3 -0
  31. gs_1.tflite → 262k/gs_1.tflite +0 -0
  32. gs_2.tflite → 262k/gs_2.tflite +0 -0
  33. gs_3.tflite → 262k/gs_3.tflite +0 -0
  34. gs_4.tflite → 262k/gs_4.tflite +0 -0
  35. gs_5.tflite → 262k/gs_5.tflite +0 -0
  36. gs_6.tflite → 262k/gs_6.tflite +0 -0
  37. 262k/gs_7.tflite +3 -0
  38. 262k/gs_perturbation.f32 +0 -0
  39. 262k/gs_rep.json +17 -0
  40. 262k/manifest.json +2316 -0
  41. 262k/oct.tflite +3 -0
  42. 262k/vae_0.tflite +3 -0
  43. 262k/vae_1.tflite +3 -0
  44. 262k/vae_2.tflite +3 -0
  45. 262k/vae_3.tflite +3 -0
  46. 262k/vae_4.tflite +3 -0
  47. 262k/vae_attn.tflite +3 -0
  48. 262k/vae_bn.json +1 -0
  49. README.md +119 -73
  50. android/app/src/main/java/com/idol/BlockWeights.kt +69 -0
.gitattributes CHANGED
@@ -35,3 +35,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  den_pos_emb.f32 filter=lfs diff=lfs merge=lfs -text
37
  assets/hero.png filter=lfs diff=lfs merge=lfs -text
 
 
 
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  den_pos_emb.f32 filter=lfs diff=lfs merge=lfs -text
37
  assets/hero.png filter=lfs diff=lfs merge=lfs -text
38
+ den_joint_w.f32 filter=lfs diff=lfs merge=lfs -text
39
+ gs_w.f32 filter=lfs diff=lfs merge=lfs -text
262k/bir.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42b98bf0e497dd596327c31883fec21fe7013a4c9f72d1f67ec8ff4d3f0dfd43
3
+ size 930410016
262k/den_ctx.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:39278b27d00a3dcc70da5e2737f6055d5ba4e7e817423a4cf176aacbfb86230d
3
+ size 117711308
262k/den_in.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1350c12da702a4a0abf53cdf528b62a8a75ea4d948c6a4764b264b927b419802
3
+ size 146782524
262k/den_joint_00.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:37e269459ef1325bd4a84d1df1545afacf8e33d6d5c232c62f834f343a882f86
3
+ size 56134468
den_joint_01.tflite → 262k/den_joint_01.tflite RENAMED
File without changes
den_joint_02.tflite → 262k/den_joint_02.tflite RENAMED
File without changes
den_joint_03.tflite → 262k/den_joint_03.tflite RENAMED
File without changes
den_joint_04.tflite → 262k/den_joint_04.tflite RENAMED
File without changes
den_joint_05.tflite → 262k/den_joint_05.tflite RENAMED
File without changes
den_joint_06.tflite → 262k/den_joint_06.tflite RENAMED
File without changes
den_joint_07.tflite → 262k/den_joint_07.tflite RENAMED
File without changes
den_joint_08.tflite → 262k/den_joint_08.tflite RENAMED
File without changes
den_joint_09.tflite → 262k/den_joint_09.tflite RENAMED
File without changes
den_joint_10.tflite → 262k/den_joint_10.tflite RENAMED
File without changes
den_joint_11.tflite → 262k/den_joint_11.tflite RENAMED
File without changes
den_joint_12.tflite → 262k/den_joint_12.tflite RENAMED
File without changes
den_joint_13.tflite → 262k/den_joint_13.tflite RENAMED
File without changes
den_joint_14.tflite → 262k/den_joint_14.tflite RENAMED
File without changes
den_joint_15.tflite → 262k/den_joint_15.tflite RENAMED
File without changes
den_joint_16.tflite → 262k/den_joint_16.tflite RENAMED
File without changes
den_joint_17.tflite → 262k/den_joint_17.tflite RENAMED
File without changes
den_joint_18.tflite → 262k/den_joint_18.tflite RENAMED
File without changes
den_joint_19.tflite → 262k/den_joint_19.tflite RENAMED
File without changes
den_joint_20.tflite → 262k/den_joint_20.tflite RENAMED
File without changes
den_joint_21.tflite → 262k/den_joint_21.tflite RENAMED
File without changes
den_joint_22.tflite → 262k/den_joint_22.tflite RENAMED
File without changes
262k/den_joint_23.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:53420d4ff17eeee40d89480fecc549d578b8877a386821eb76c2754a4737ebdb
3
+ size 56235684
262k/den_pos_emb.f32 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c1dd2858023be2f47f573ee856d4f0ed2328d47fe0f88d3984038a1b1ffeabb2
3
+ size 33554432
262k/gs_0.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:244ae2ffc6d510c8eab99d2381cb20edb8a7c1715272f7a7efeba5fcd77cfa39
3
+ size 122497768
gs_1.tflite → 262k/gs_1.tflite RENAMED
File without changes
gs_2.tflite → 262k/gs_2.tflite RENAMED
File without changes
gs_3.tflite → 262k/gs_3.tflite RENAMED
File without changes
gs_4.tflite → 262k/gs_4.tflite RENAMED
File without changes
gs_5.tflite → 262k/gs_5.tflite RENAMED
File without changes
gs_6.tflite → 262k/gs_6.tflite RENAMED
File without changes
262k/gs_7.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef75898f78654d4d10692b333dc1e12c860ee54138795aece8e2306ba76217b7
3
+ size 120252780
262k/gs_perturbation.f32 ADDED
Binary file (384 Bytes). View file
 
262k/gs_rep.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "base_offset_scale": -2.970628499984741,
3
+ "rep": {
4
+ "num_gaussians": 32,
5
+ "lr": {
6
+ "_xyz": 1.0,
7
+ "_features_dc": 1.0,
8
+ "_opacity": 1.0,
9
+ "_scaling": 1.0,
10
+ "_rotation": 0.1
11
+ },
12
+ "perturbe_size": 1.5,
13
+ "3d_filter_kernel_size": 0.0009,
14
+ "scaling_bias": 0.004,
15
+ "opacity_bias": 0.1
16
+ }
17
+ }
262k/manifest.json ADDED
@@ -0,0 +1,2316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "matting": {
3
+ "default": "bir",
4
+ "alternative": "dis"
5
+ },
6
+ "graphs": {
7
+ "bir": {
8
+ "file": "bir.tflite",
9
+ "bytes": 930410016,
10
+ "accelerator": "cpu",
11
+ "precision": "fp32",
12
+ "signatures": {
13
+ "serving_default": {
14
+ "inputs": [
15
+ [
16
+ "args_0",
17
+ [
18
+ 1,
19
+ 3,
20
+ 1024,
21
+ 1024
22
+ ]
23
+ ]
24
+ ],
25
+ "outputs": [
26
+ [
27
+ "output_0",
28
+ [
29
+ 1,
30
+ 1,
31
+ 1024,
32
+ 1024
33
+ ]
34
+ ]
35
+ ]
36
+ }
37
+ },
38
+ "sha256": "42b98bf0e497dd596327c31883fec21fe7013a4c9f72d1f67ec8ff4d3f0dfd43",
39
+ "run_peak_bytes": 2798186496
40
+ },
41
+ "dis": {
42
+ "file": "dis.tflite",
43
+ "bytes": 176223448,
44
+ "accelerator": "gpu",
45
+ "precision": "fp16_with_fp32_accum",
46
+ "signatures": {
47
+ "serving_default": {
48
+ "inputs": [
49
+ [
50
+ "args_0",
51
+ [
52
+ 1,
53
+ 3,
54
+ 1024,
55
+ 1024
56
+ ]
57
+ ]
58
+ ],
59
+ "outputs": [
60
+ [
61
+ "output_0",
62
+ [
63
+ 1,
64
+ 1,
65
+ 1024,
66
+ 1024
67
+ ]
68
+ ]
69
+ ]
70
+ }
71
+ },
72
+ "sha256": "0c3c93b6a2a65e7c69137ec82596944e6bfb97d982c75bab03acb0738dbaa087",
73
+ "repo": "litert-community/DIS-ISNet-LiteRT"
74
+ },
75
+ "dino_0": {
76
+ "file": "dino_0.tflite",
77
+ "bytes": 843659604,
78
+ "accelerator": "gpu",
79
+ "precision": "fp16_with_fp32_accum",
80
+ "signatures": {
81
+ "serving_default": {
82
+ "inputs": [
83
+ [
84
+ "args_0",
85
+ [
86
+ 1,
87
+ 3,
88
+ 1024,
89
+ 1024
90
+ ]
91
+ ],
92
+ [
93
+ "args_1",
94
+ [
95
+ 1,
96
+ 1,
97
+ 4101,
98
+ 64
99
+ ]
100
+ ],
101
+ [
102
+ "args_2",
103
+ [
104
+ 1,
105
+ 1,
106
+ 4101,
107
+ 64
108
+ ]
109
+ ]
110
+ ],
111
+ "outputs": [
112
+ [
113
+ "output_0",
114
+ [
115
+ 1,
116
+ 4101,
117
+ 1280
118
+ ]
119
+ ]
120
+ ]
121
+ }
122
+ },
123
+ "sha256": "7b4fc27cde00f794a846766b660445b08cb94e2380ad9c7f58db191edd3b5b50",
124
+ "repo": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT"
125
+ },
126
+ "dino_1": {
127
+ "file": "dino_1.tflite",
128
+ "bytes": 839694588,
129
+ "accelerator": "gpu",
130
+ "precision": "fp16_with_fp32_accum",
131
+ "signatures": {
132
+ "serving_default": {
133
+ "inputs": [
134
+ [
135
+ "args_0",
136
+ [
137
+ 1,
138
+ 4101,
139
+ 1280
140
+ ]
141
+ ],
142
+ [
143
+ "args_1",
144
+ [
145
+ 1,
146
+ 1,
147
+ 4101,
148
+ 64
149
+ ]
150
+ ],
151
+ [
152
+ "args_2",
153
+ [
154
+ 1,
155
+ 1,
156
+ 4101,
157
+ 64
158
+ ]
159
+ ]
160
+ ],
161
+ "outputs": [
162
+ [
163
+ "output_0",
164
+ [
165
+ 1,
166
+ 4101,
167
+ 1280
168
+ ]
169
+ ]
170
+ ]
171
+ }
172
+ },
173
+ "sha256": "54a96f0a0ac0cb29e3520c303dba10544ab88f67d97160dbae941ea8f09b41be",
174
+ "repo": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT"
175
+ },
176
+ "dino_2": {
177
+ "file": "dino_2.tflite",
178
+ "bytes": 839694588,
179
+ "accelerator": "gpu",
180
+ "precision": "fp16_with_fp32_accum",
181
+ "signatures": {
182
+ "serving_default": {
183
+ "inputs": [
184
+ [
185
+ "args_0",
186
+ [
187
+ 1,
188
+ 4101,
189
+ 1280
190
+ ]
191
+ ],
192
+ [
193
+ "args_1",
194
+ [
195
+ 1,
196
+ 1,
197
+ 4101,
198
+ 64
199
+ ]
200
+ ],
201
+ [
202
+ "args_2",
203
+ [
204
+ 1,
205
+ 1,
206
+ 4101,
207
+ 64
208
+ ]
209
+ ]
210
+ ],
211
+ "outputs": [
212
+ [
213
+ "output_0",
214
+ [
215
+ 1,
216
+ 4101,
217
+ 1280
218
+ ]
219
+ ]
220
+ ]
221
+ }
222
+ },
223
+ "sha256": "93b8659dfe738efb3239aa28ff683d503f4caee7b73ebbb9e8914ae27e90f3a1",
224
+ "repo": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT"
225
+ },
226
+ "dino_3": {
227
+ "file": "dino_3.tflite",
228
+ "bytes": 839710040,
229
+ "accelerator": "gpu",
230
+ "precision": "fp16_with_fp32_accum",
231
+ "signatures": {
232
+ "serving_default": {
233
+ "inputs": [
234
+ [
235
+ "args_0",
236
+ [
237
+ 1,
238
+ 4101,
239
+ 1280
240
+ ]
241
+ ],
242
+ [
243
+ "args_1",
244
+ [
245
+ 1,
246
+ 1,
247
+ 4101,
248
+ 64
249
+ ]
250
+ ],
251
+ [
252
+ "args_2",
253
+ [
254
+ 1,
255
+ 1,
256
+ 4101,
257
+ 64
258
+ ]
259
+ ]
260
+ ],
261
+ "outputs": [
262
+ [
263
+ "output_0",
264
+ [
265
+ 1,
266
+ 4101,
267
+ 1280
268
+ ]
269
+ ]
270
+ ]
271
+ }
272
+ },
273
+ "sha256": "9281d490c988268cd8209f353937677b585e13e6ea324c4f01229f93c89f8c39",
274
+ "repo": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT"
275
+ },
276
+ "vae_0": {
277
+ "file": "vae_0.tflite",
278
+ "bytes": 3036028,
279
+ "accelerator": "gpu",
280
+ "precision": "fp16_with_fp32_accum",
281
+ "signatures": {
282
+ "serving_default": {
283
+ "inputs": [
284
+ [
285
+ "args_0",
286
+ [
287
+ 1,
288
+ 3,
289
+ 1024,
290
+ 1024
291
+ ]
292
+ ]
293
+ ],
294
+ "outputs": [
295
+ [
296
+ "output_0",
297
+ [
298
+ 1,
299
+ 128,
300
+ 512,
301
+ 512
302
+ ]
303
+ ]
304
+ ]
305
+ }
306
+ },
307
+ "sha256": "a8c8b881165717d854bead656620f77bfccc71b5f7772c160753723c5f80c2d7"
308
+ },
309
+ "vae_1": {
310
+ "file": "vae_1.tflite",
311
+ "bytes": 10858720,
312
+ "accelerator": "gpu",
313
+ "precision": "fp16_with_fp32_accum",
314
+ "signatures": {
315
+ "serving_default": {
316
+ "inputs": [
317
+ [
318
+ "args_0",
319
+ [
320
+ 1,
321
+ 128,
322
+ 512,
323
+ 512
324
+ ]
325
+ ]
326
+ ],
327
+ "outputs": [
328
+ [
329
+ "output_0",
330
+ [
331
+ 1,
332
+ 256,
333
+ 256,
334
+ 256
335
+ ]
336
+ ]
337
+ ]
338
+ }
339
+ },
340
+ "sha256": "07e357358a2e50a14462be77433f0c11ae2319d0912d320a65335d71fabfd48b"
341
+ },
342
+ "vae_2": {
343
+ "file": "vae_2.tflite",
344
+ "bytes": 43164896,
345
+ "accelerator": "gpu",
346
+ "precision": "fp16_with_fp32_accum",
347
+ "signatures": {
348
+ "serving_default": {
349
+ "inputs": [
350
+ [
351
+ "args_0",
352
+ [
353
+ 1,
354
+ 256,
355
+ 256,
356
+ 256
357
+ ]
358
+ ]
359
+ ],
360
+ "outputs": [
361
+ [
362
+ "output_0",
363
+ [
364
+ 1,
365
+ 512,
366
+ 128,
367
+ 128
368
+ ]
369
+ ]
370
+ ]
371
+ }
372
+ },
373
+ "sha256": "203175990bbbf43a66263ae69ec8000f19bc943314226bf2e26b3d0b0b26eb3f"
374
+ },
375
+ "vae_3": {
376
+ "file": "vae_3.tflite",
377
+ "bytes": 56792512,
378
+ "accelerator": "gpu",
379
+ "precision": "fp16_with_fp32_accum",
380
+ "signatures": {
381
+ "serving_default": {
382
+ "inputs": [
383
+ [
384
+ "args_0",
385
+ [
386
+ 1,
387
+ 512,
388
+ 128,
389
+ 128
390
+ ]
391
+ ]
392
+ ],
393
+ "outputs": [
394
+ [
395
+ "output_0",
396
+ [
397
+ 1,
398
+ 512,
399
+ 128,
400
+ 128
401
+ ]
402
+ ]
403
+ ]
404
+ }
405
+ },
406
+ "sha256": "d3375079a1558cdd4f4c3f96337830ce81d2f37089c2cd79e701cfc393ecc67e"
407
+ },
408
+ "vae_attn": {
409
+ "file": "vae_attn.tflite",
410
+ "bytes": 4423776,
411
+ "accelerator": "gpu",
412
+ "precision": "fp16_with_fp32_accum",
413
+ "signatures": {
414
+ "serving_default": {
415
+ "inputs": [
416
+ [
417
+ "args_0",
418
+ [
419
+ 1,
420
+ 512,
421
+ 128,
422
+ 128
423
+ ]
424
+ ]
425
+ ],
426
+ "outputs": [
427
+ [
428
+ "output_0",
429
+ [
430
+ 1,
431
+ 512,
432
+ 128,
433
+ 128
434
+ ]
435
+ ]
436
+ ]
437
+ }
438
+ },
439
+ "sha256": "4bec7ec37ad58661abb63ee1e16ccb7646afc6d617acf3caa714721912237d88"
440
+ },
441
+ "vae_4": {
442
+ "file": "vae_4.tflite",
443
+ "bytes": 20179348,
444
+ "accelerator": "gpu",
445
+ "precision": "fp16_with_fp32_accum",
446
+ "signatures": {
447
+ "serving_default": {
448
+ "inputs": [
449
+ [
450
+ "args_0",
451
+ [
452
+ 1,
453
+ 512,
454
+ 128,
455
+ 128
456
+ ]
457
+ ]
458
+ ],
459
+ "outputs": [
460
+ [
461
+ "output_0",
462
+ [
463
+ 1,
464
+ 64,
465
+ 128,
466
+ 128
467
+ ]
468
+ ]
469
+ ]
470
+ }
471
+ },
472
+ "sha256": "6ea00886e1fb2bebbd4be40b6591a04abea2208fd6d59e32a4d52310b0d35853"
473
+ },
474
+ "den_ctx": {
475
+ "file": "den_ctx.tflite",
476
+ "bytes": 117711308,
477
+ "accelerator": "gpu",
478
+ "precision": "fp16_with_fp32_accum",
479
+ "signatures": {
480
+ "serving_default": {
481
+ "inputs": [
482
+ [
483
+ "args_0",
484
+ [
485
+ 1,
486
+ 4101,
487
+ 1280
488
+ ]
489
+ ],
490
+ [
491
+ "args_1",
492
+ [
493
+ 1,
494
+ 4101,
495
+ 128
496
+ ]
497
+ ],
498
+ [
499
+ "args_2",
500
+ [
501
+ 1,
502
+ 64
503
+ ]
504
+ ]
505
+ ],
506
+ "outputs": [
507
+ [
508
+ "output_0",
509
+ [
510
+ 1,
511
+ 4101,
512
+ 1024
513
+ ]
514
+ ]
515
+ ]
516
+ }
517
+ },
518
+ "sha256": "39278b27d00a3dcc70da5e2737f6055d5ba4e7e817423a4cf176aacbfb86230d"
519
+ },
520
+ "den_in": {
521
+ "file": "den_in.tflite",
522
+ "bytes": 146782524,
523
+ "accelerator": "gpu",
524
+ "precision": "fp16_with_fp32_accum",
525
+ "signatures": {
526
+ "serving_default": {
527
+ "inputs": [
528
+ [
529
+ "args_0",
530
+ [
531
+ 1,
532
+ 8192,
533
+ 16
534
+ ]
535
+ ],
536
+ [
537
+ "args_1",
538
+ [
539
+ 1,
540
+ 1,
541
+ 5
542
+ ]
543
+ ],
544
+ [
545
+ "args_2",
546
+ [
547
+ 1,
548
+ 256
549
+ ]
550
+ ],
551
+ [
552
+ "args_3",
553
+ [
554
+ 1,
555
+ 8192,
556
+ 1024
557
+ ]
558
+ ],
559
+ [
560
+ "args_4",
561
+ [
562
+ 1,
563
+ 64
564
+ ]
565
+ ]
566
+ ],
567
+ "outputs": [
568
+ [
569
+ "output_0",
570
+ [
571
+ 1,
572
+ 8192,
573
+ 1024
574
+ ]
575
+ ],
576
+ [
577
+ "output_1",
578
+ [
579
+ 1,
580
+ 1,
581
+ 1024
582
+ ]
583
+ ],
584
+ [
585
+ "output_2",
586
+ [
587
+ 1,
588
+ 6144
589
+ ]
590
+ ],
591
+ [
592
+ "output_3",
593
+ [
594
+ 1,
595
+ 1024
596
+ ]
597
+ ]
598
+ ]
599
+ }
600
+ },
601
+ "sha256": "1350c12da702a4a0abf53cdf528b62a8a75ea4d948c6a4764b264b927b419802"
602
+ },
603
+ "den_joint_00": {
604
+ "file": "den_joint_00.tflite",
605
+ "bytes": 56134468,
606
+ "accelerator": "gpu",
607
+ "precision": "fp16_with_fp32_accum",
608
+ "signatures": {
609
+ "serving_default": {
610
+ "inputs": [
611
+ [
612
+ "args_0",
613
+ [
614
+ 1,
615
+ 8192,
616
+ 1024
617
+ ]
618
+ ],
619
+ [
620
+ "args_1",
621
+ [
622
+ 1,
623
+ 4101,
624
+ 1024
625
+ ]
626
+ ],
627
+ [
628
+ "args_2",
629
+ [
630
+ 1,
631
+ 1,
632
+ 1024
633
+ ]
634
+ ],
635
+ [
636
+ "args_3",
637
+ [
638
+ 1,
639
+ 6144
640
+ ]
641
+ ],
642
+ [
643
+ "args_4",
644
+ [
645
+ 1,
646
+ 64
647
+ ]
648
+ ]
649
+ ],
650
+ "outputs": [
651
+ [
652
+ "output_0",
653
+ [
654
+ 1,
655
+ 12294,
656
+ 1024
657
+ ]
658
+ ]
659
+ ]
660
+ }
661
+ },
662
+ "sha256": "37e269459ef1325bd4a84d1df1545afacf8e33d6d5c232c62f834f343a882f86"
663
+ },
664
+ "den_joint_01": {
665
+ "file": "den_joint_01.tflite",
666
+ "bytes": 56134100,
667
+ "accelerator": "gpu",
668
+ "precision": "fp16_with_fp32_accum",
669
+ "signatures": {
670
+ "serving_default": {
671
+ "inputs": [
672
+ [
673
+ "args_0",
674
+ [
675
+ 1,
676
+ 12294,
677
+ 1024
678
+ ]
679
+ ],
680
+ [
681
+ "args_1",
682
+ [
683
+ 1,
684
+ 6144
685
+ ]
686
+ ],
687
+ [
688
+ "args_2",
689
+ [
690
+ 1,
691
+ 64
692
+ ]
693
+ ]
694
+ ],
695
+ "outputs": [
696
+ [
697
+ "output_0",
698
+ [
699
+ 1,
700
+ 12294,
701
+ 1024
702
+ ]
703
+ ]
704
+ ]
705
+ }
706
+ },
707
+ "sha256": "103efe94ce85aeb29f084f85962d0e85d4a395c629101d3ea21d23e6cdc53e25"
708
+ },
709
+ "den_joint_02": {
710
+ "file": "den_joint_02.tflite",
711
+ "bytes": 56134100,
712
+ "accelerator": "gpu",
713
+ "precision": "fp16_with_fp32_accum",
714
+ "signatures": {
715
+ "serving_default": {
716
+ "inputs": [
717
+ [
718
+ "args_0",
719
+ [
720
+ 1,
721
+ 12294,
722
+ 1024
723
+ ]
724
+ ],
725
+ [
726
+ "args_1",
727
+ [
728
+ 1,
729
+ 6144
730
+ ]
731
+ ],
732
+ [
733
+ "args_2",
734
+ [
735
+ 1,
736
+ 64
737
+ ]
738
+ ]
739
+ ],
740
+ "outputs": [
741
+ [
742
+ "output_0",
743
+ [
744
+ 1,
745
+ 12294,
746
+ 1024
747
+ ]
748
+ ]
749
+ ]
750
+ }
751
+ },
752
+ "sha256": "1ec688cf610156841a1523db9ed93ad268274f957132dcbc92539308143ce517"
753
+ },
754
+ "den_joint_03": {
755
+ "file": "den_joint_03.tflite",
756
+ "bytes": 56134100,
757
+ "accelerator": "gpu",
758
+ "precision": "fp16_with_fp32_accum",
759
+ "signatures": {
760
+ "serving_default": {
761
+ "inputs": [
762
+ [
763
+ "args_0",
764
+ [
765
+ 1,
766
+ 12294,
767
+ 1024
768
+ ]
769
+ ],
770
+ [
771
+ "args_1",
772
+ [
773
+ 1,
774
+ 6144
775
+ ]
776
+ ],
777
+ [
778
+ "args_2",
779
+ [
780
+ 1,
781
+ 64
782
+ ]
783
+ ]
784
+ ],
785
+ "outputs": [
786
+ [
787
+ "output_0",
788
+ [
789
+ 1,
790
+ 12294,
791
+ 1024
792
+ ]
793
+ ]
794
+ ]
795
+ }
796
+ },
797
+ "sha256": "b5828ac85b0f42118e79f2e83cbe05021d2b68f9a3c167f0ac014a3026799cc2"
798
+ },
799
+ "den_joint_04": {
800
+ "file": "den_joint_04.tflite",
801
+ "bytes": 56134100,
802
+ "accelerator": "gpu",
803
+ "precision": "fp16_with_fp32_accum",
804
+ "signatures": {
805
+ "serving_default": {
806
+ "inputs": [
807
+ [
808
+ "args_0",
809
+ [
810
+ 1,
811
+ 12294,
812
+ 1024
813
+ ]
814
+ ],
815
+ [
816
+ "args_1",
817
+ [
818
+ 1,
819
+ 6144
820
+ ]
821
+ ],
822
+ [
823
+ "args_2",
824
+ [
825
+ 1,
826
+ 64
827
+ ]
828
+ ]
829
+ ],
830
+ "outputs": [
831
+ [
832
+ "output_0",
833
+ [
834
+ 1,
835
+ 12294,
836
+ 1024
837
+ ]
838
+ ]
839
+ ]
840
+ }
841
+ },
842
+ "sha256": "ea5c57b89c8d8bbc5144d5d487e20fc49daf25308bccf853bb3c9d4581ae33fe"
843
+ },
844
+ "den_joint_05": {
845
+ "file": "den_joint_05.tflite",
846
+ "bytes": 56134100,
847
+ "accelerator": "gpu",
848
+ "precision": "fp16_with_fp32_accum",
849
+ "signatures": {
850
+ "serving_default": {
851
+ "inputs": [
852
+ [
853
+ "args_0",
854
+ [
855
+ 1,
856
+ 12294,
857
+ 1024
858
+ ]
859
+ ],
860
+ [
861
+ "args_1",
862
+ [
863
+ 1,
864
+ 6144
865
+ ]
866
+ ],
867
+ [
868
+ "args_2",
869
+ [
870
+ 1,
871
+ 64
872
+ ]
873
+ ]
874
+ ],
875
+ "outputs": [
876
+ [
877
+ "output_0",
878
+ [
879
+ 1,
880
+ 12294,
881
+ 1024
882
+ ]
883
+ ]
884
+ ]
885
+ }
886
+ },
887
+ "sha256": "f339d8b79e5d4c2fc408c2d42f7ce959b81821cad37861b2a1294b8397e19997"
888
+ },
889
+ "den_joint_06": {
890
+ "file": "den_joint_06.tflite",
891
+ "bytes": 56134100,
892
+ "accelerator": "gpu",
893
+ "precision": "fp16_with_fp32_accum",
894
+ "signatures": {
895
+ "serving_default": {
896
+ "inputs": [
897
+ [
898
+ "args_0",
899
+ [
900
+ 1,
901
+ 12294,
902
+ 1024
903
+ ]
904
+ ],
905
+ [
906
+ "args_1",
907
+ [
908
+ 1,
909
+ 6144
910
+ ]
911
+ ],
912
+ [
913
+ "args_2",
914
+ [
915
+ 1,
916
+ 64
917
+ ]
918
+ ]
919
+ ],
920
+ "outputs": [
921
+ [
922
+ "output_0",
923
+ [
924
+ 1,
925
+ 12294,
926
+ 1024
927
+ ]
928
+ ]
929
+ ]
930
+ }
931
+ },
932
+ "sha256": "30d97e62ac4fc28882903961c88e65e6fe540d61e95504651b44d7cb8f341c4c"
933
+ },
934
+ "den_joint_07": {
935
+ "file": "den_joint_07.tflite",
936
+ "bytes": 56134100,
937
+ "accelerator": "gpu",
938
+ "precision": "fp16_with_fp32_accum",
939
+ "signatures": {
940
+ "serving_default": {
941
+ "inputs": [
942
+ [
943
+ "args_0",
944
+ [
945
+ 1,
946
+ 12294,
947
+ 1024
948
+ ]
949
+ ],
950
+ [
951
+ "args_1",
952
+ [
953
+ 1,
954
+ 6144
955
+ ]
956
+ ],
957
+ [
958
+ "args_2",
959
+ [
960
+ 1,
961
+ 64
962
+ ]
963
+ ]
964
+ ],
965
+ "outputs": [
966
+ [
967
+ "output_0",
968
+ [
969
+ 1,
970
+ 12294,
971
+ 1024
972
+ ]
973
+ ]
974
+ ]
975
+ }
976
+ },
977
+ "sha256": "0c7b243e55c69b6cdd9c5e7bbef313f6cc6be0c0f7ad32e428187e22b2183a67"
978
+ },
979
+ "den_joint_08": {
980
+ "file": "den_joint_08.tflite",
981
+ "bytes": 56134100,
982
+ "accelerator": "gpu",
983
+ "precision": "fp16_with_fp32_accum",
984
+ "signatures": {
985
+ "serving_default": {
986
+ "inputs": [
987
+ [
988
+ "args_0",
989
+ [
990
+ 1,
991
+ 12294,
992
+ 1024
993
+ ]
994
+ ],
995
+ [
996
+ "args_1",
997
+ [
998
+ 1,
999
+ 6144
1000
+ ]
1001
+ ],
1002
+ [
1003
+ "args_2",
1004
+ [
1005
+ 1,
1006
+ 64
1007
+ ]
1008
+ ]
1009
+ ],
1010
+ "outputs": [
1011
+ [
1012
+ "output_0",
1013
+ [
1014
+ 1,
1015
+ 12294,
1016
+ 1024
1017
+ ]
1018
+ ]
1019
+ ]
1020
+ }
1021
+ },
1022
+ "sha256": "0eb17bea8ae04ea0d88d79b327515e1a106bb5339d72440a8ec63712865e3f27"
1023
+ },
1024
+ "den_joint_09": {
1025
+ "file": "den_joint_09.tflite",
1026
+ "bytes": 56134100,
1027
+ "accelerator": "gpu",
1028
+ "precision": "fp16_with_fp32_accum",
1029
+ "signatures": {
1030
+ "serving_default": {
1031
+ "inputs": [
1032
+ [
1033
+ "args_0",
1034
+ [
1035
+ 1,
1036
+ 12294,
1037
+ 1024
1038
+ ]
1039
+ ],
1040
+ [
1041
+ "args_1",
1042
+ [
1043
+ 1,
1044
+ 6144
1045
+ ]
1046
+ ],
1047
+ [
1048
+ "args_2",
1049
+ [
1050
+ 1,
1051
+ 64
1052
+ ]
1053
+ ]
1054
+ ],
1055
+ "outputs": [
1056
+ [
1057
+ "output_0",
1058
+ [
1059
+ 1,
1060
+ 12294,
1061
+ 1024
1062
+ ]
1063
+ ]
1064
+ ]
1065
+ }
1066
+ },
1067
+ "sha256": "353ece07e6b4888d80ab08e2bdd6dc2dd456f213ca87694f6d77f987d5d4debc"
1068
+ },
1069
+ "den_joint_10": {
1070
+ "file": "den_joint_10.tflite",
1071
+ "bytes": 56134100,
1072
+ "accelerator": "gpu",
1073
+ "precision": "fp16_with_fp32_accum",
1074
+ "signatures": {
1075
+ "serving_default": {
1076
+ "inputs": [
1077
+ [
1078
+ "args_0",
1079
+ [
1080
+ 1,
1081
+ 12294,
1082
+ 1024
1083
+ ]
1084
+ ],
1085
+ [
1086
+ "args_1",
1087
+ [
1088
+ 1,
1089
+ 6144
1090
+ ]
1091
+ ],
1092
+ [
1093
+ "args_2",
1094
+ [
1095
+ 1,
1096
+ 64
1097
+ ]
1098
+ ]
1099
+ ],
1100
+ "outputs": [
1101
+ [
1102
+ "output_0",
1103
+ [
1104
+ 1,
1105
+ 12294,
1106
+ 1024
1107
+ ]
1108
+ ]
1109
+ ]
1110
+ }
1111
+ },
1112
+ "sha256": "0c7e15340ea4212369ae85f3f9db625f21ccd1747038e0725675c5a7ca32ac07"
1113
+ },
1114
+ "den_joint_11": {
1115
+ "file": "den_joint_11.tflite",
1116
+ "bytes": 56134100,
1117
+ "accelerator": "gpu",
1118
+ "precision": "fp16_with_fp32_accum",
1119
+ "signatures": {
1120
+ "serving_default": {
1121
+ "inputs": [
1122
+ [
1123
+ "args_0",
1124
+ [
1125
+ 1,
1126
+ 12294,
1127
+ 1024
1128
+ ]
1129
+ ],
1130
+ [
1131
+ "args_1",
1132
+ [
1133
+ 1,
1134
+ 6144
1135
+ ]
1136
+ ],
1137
+ [
1138
+ "args_2",
1139
+ [
1140
+ 1,
1141
+ 64
1142
+ ]
1143
+ ]
1144
+ ],
1145
+ "outputs": [
1146
+ [
1147
+ "output_0",
1148
+ [
1149
+ 1,
1150
+ 12294,
1151
+ 1024
1152
+ ]
1153
+ ]
1154
+ ]
1155
+ }
1156
+ },
1157
+ "sha256": "76cc264ae1ce820749f9dd4758e07fa548ee805a7487cbd4ba342eccc523d779"
1158
+ },
1159
+ "den_joint_12": {
1160
+ "file": "den_joint_12.tflite",
1161
+ "bytes": 56134100,
1162
+ "accelerator": "gpu",
1163
+ "precision": "fp16_with_fp32_accum",
1164
+ "signatures": {
1165
+ "serving_default": {
1166
+ "inputs": [
1167
+ [
1168
+ "args_0",
1169
+ [
1170
+ 1,
1171
+ 12294,
1172
+ 1024
1173
+ ]
1174
+ ],
1175
+ [
1176
+ "args_1",
1177
+ [
1178
+ 1,
1179
+ 6144
1180
+ ]
1181
+ ],
1182
+ [
1183
+ "args_2",
1184
+ [
1185
+ 1,
1186
+ 64
1187
+ ]
1188
+ ]
1189
+ ],
1190
+ "outputs": [
1191
+ [
1192
+ "output_0",
1193
+ [
1194
+ 1,
1195
+ 12294,
1196
+ 1024
1197
+ ]
1198
+ ]
1199
+ ]
1200
+ }
1201
+ },
1202
+ "sha256": "75ff657c9c7cca82e45ec36fc259cde4cfc90829f09639cdc749d8bddce73f27"
1203
+ },
1204
+ "den_joint_13": {
1205
+ "file": "den_joint_13.tflite",
1206
+ "bytes": 56134100,
1207
+ "accelerator": "gpu",
1208
+ "precision": "fp16_with_fp32_accum",
1209
+ "signatures": {
1210
+ "serving_default": {
1211
+ "inputs": [
1212
+ [
1213
+ "args_0",
1214
+ [
1215
+ 1,
1216
+ 12294,
1217
+ 1024
1218
+ ]
1219
+ ],
1220
+ [
1221
+ "args_1",
1222
+ [
1223
+ 1,
1224
+ 6144
1225
+ ]
1226
+ ],
1227
+ [
1228
+ "args_2",
1229
+ [
1230
+ 1,
1231
+ 64
1232
+ ]
1233
+ ]
1234
+ ],
1235
+ "outputs": [
1236
+ [
1237
+ "output_0",
1238
+ [
1239
+ 1,
1240
+ 12294,
1241
+ 1024
1242
+ ]
1243
+ ]
1244
+ ]
1245
+ }
1246
+ },
1247
+ "sha256": "9ecae224a9b4962e1e1b1d719942ea89182c77b1f1cf629017f7117d9dded5b2"
1248
+ },
1249
+ "den_joint_14": {
1250
+ "file": "den_joint_14.tflite",
1251
+ "bytes": 56134100,
1252
+ "accelerator": "gpu",
1253
+ "precision": "fp16_with_fp32_accum",
1254
+ "signatures": {
1255
+ "serving_default": {
1256
+ "inputs": [
1257
+ [
1258
+ "args_0",
1259
+ [
1260
+ 1,
1261
+ 12294,
1262
+ 1024
1263
+ ]
1264
+ ],
1265
+ [
1266
+ "args_1",
1267
+ [
1268
+ 1,
1269
+ 6144
1270
+ ]
1271
+ ],
1272
+ [
1273
+ "args_2",
1274
+ [
1275
+ 1,
1276
+ 64
1277
+ ]
1278
+ ]
1279
+ ],
1280
+ "outputs": [
1281
+ [
1282
+ "output_0",
1283
+ [
1284
+ 1,
1285
+ 12294,
1286
+ 1024
1287
+ ]
1288
+ ]
1289
+ ]
1290
+ }
1291
+ },
1292
+ "sha256": "59f957bdcbcef54f90ac90fc2ed9ff52f40fa93afeb589f6fa377c734ddb4c5c"
1293
+ },
1294
+ "den_joint_15": {
1295
+ "file": "den_joint_15.tflite",
1296
+ "bytes": 56134100,
1297
+ "accelerator": "gpu",
1298
+ "precision": "fp16_with_fp32_accum",
1299
+ "signatures": {
1300
+ "serving_default": {
1301
+ "inputs": [
1302
+ [
1303
+ "args_0",
1304
+ [
1305
+ 1,
1306
+ 12294,
1307
+ 1024
1308
+ ]
1309
+ ],
1310
+ [
1311
+ "args_1",
1312
+ [
1313
+ 1,
1314
+ 6144
1315
+ ]
1316
+ ],
1317
+ [
1318
+ "args_2",
1319
+ [
1320
+ 1,
1321
+ 64
1322
+ ]
1323
+ ]
1324
+ ],
1325
+ "outputs": [
1326
+ [
1327
+ "output_0",
1328
+ [
1329
+ 1,
1330
+ 12294,
1331
+ 1024
1332
+ ]
1333
+ ]
1334
+ ]
1335
+ }
1336
+ },
1337
+ "sha256": "4839713f18df82b2dd53ed2d605a9d98240bee6bebc00e281a1316246b5ffaaa"
1338
+ },
1339
+ "den_joint_16": {
1340
+ "file": "den_joint_16.tflite",
1341
+ "bytes": 56134100,
1342
+ "accelerator": "gpu",
1343
+ "precision": "fp16_with_fp32_accum",
1344
+ "signatures": {
1345
+ "serving_default": {
1346
+ "inputs": [
1347
+ [
1348
+ "args_0",
1349
+ [
1350
+ 1,
1351
+ 12294,
1352
+ 1024
1353
+ ]
1354
+ ],
1355
+ [
1356
+ "args_1",
1357
+ [
1358
+ 1,
1359
+ 6144
1360
+ ]
1361
+ ],
1362
+ [
1363
+ "args_2",
1364
+ [
1365
+ 1,
1366
+ 64
1367
+ ]
1368
+ ]
1369
+ ],
1370
+ "outputs": [
1371
+ [
1372
+ "output_0",
1373
+ [
1374
+ 1,
1375
+ 12294,
1376
+ 1024
1377
+ ]
1378
+ ]
1379
+ ]
1380
+ }
1381
+ },
1382
+ "sha256": "a8cc4d07fe9830a8f2fc72420db955c6d08f6093fc82ea9b329df4d3275599e2"
1383
+ },
1384
+ "den_joint_17": {
1385
+ "file": "den_joint_17.tflite",
1386
+ "bytes": 56134100,
1387
+ "accelerator": "gpu",
1388
+ "precision": "fp16_with_fp32_accum",
1389
+ "signatures": {
1390
+ "serving_default": {
1391
+ "inputs": [
1392
+ [
1393
+ "args_0",
1394
+ [
1395
+ 1,
1396
+ 12294,
1397
+ 1024
1398
+ ]
1399
+ ],
1400
+ [
1401
+ "args_1",
1402
+ [
1403
+ 1,
1404
+ 6144
1405
+ ]
1406
+ ],
1407
+ [
1408
+ "args_2",
1409
+ [
1410
+ 1,
1411
+ 64
1412
+ ]
1413
+ ]
1414
+ ],
1415
+ "outputs": [
1416
+ [
1417
+ "output_0",
1418
+ [
1419
+ 1,
1420
+ 12294,
1421
+ 1024
1422
+ ]
1423
+ ]
1424
+ ]
1425
+ }
1426
+ },
1427
+ "sha256": "29c8966f6b967250b818ebc902b0b1c6070436700c4cd52ad65ab26a3b102387"
1428
+ },
1429
+ "den_joint_18": {
1430
+ "file": "den_joint_18.tflite",
1431
+ "bytes": 56134100,
1432
+ "accelerator": "gpu",
1433
+ "precision": "fp16_with_fp32_accum",
1434
+ "signatures": {
1435
+ "serving_default": {
1436
+ "inputs": [
1437
+ [
1438
+ "args_0",
1439
+ [
1440
+ 1,
1441
+ 12294,
1442
+ 1024
1443
+ ]
1444
+ ],
1445
+ [
1446
+ "args_1",
1447
+ [
1448
+ 1,
1449
+ 6144
1450
+ ]
1451
+ ],
1452
+ [
1453
+ "args_2",
1454
+ [
1455
+ 1,
1456
+ 64
1457
+ ]
1458
+ ]
1459
+ ],
1460
+ "outputs": [
1461
+ [
1462
+ "output_0",
1463
+ [
1464
+ 1,
1465
+ 12294,
1466
+ 1024
1467
+ ]
1468
+ ]
1469
+ ]
1470
+ }
1471
+ },
1472
+ "sha256": "e5f035dbfa13fcbb92f0212d4c773b8595ae1765b6658a9ecac11dfc80059b21"
1473
+ },
1474
+ "den_joint_19": {
1475
+ "file": "den_joint_19.tflite",
1476
+ "bytes": 56134100,
1477
+ "accelerator": "gpu",
1478
+ "precision": "fp16_with_fp32_accum",
1479
+ "signatures": {
1480
+ "serving_default": {
1481
+ "inputs": [
1482
+ [
1483
+ "args_0",
1484
+ [
1485
+ 1,
1486
+ 12294,
1487
+ 1024
1488
+ ]
1489
+ ],
1490
+ [
1491
+ "args_1",
1492
+ [
1493
+ 1,
1494
+ 6144
1495
+ ]
1496
+ ],
1497
+ [
1498
+ "args_2",
1499
+ [
1500
+ 1,
1501
+ 64
1502
+ ]
1503
+ ]
1504
+ ],
1505
+ "outputs": [
1506
+ [
1507
+ "output_0",
1508
+ [
1509
+ 1,
1510
+ 12294,
1511
+ 1024
1512
+ ]
1513
+ ]
1514
+ ]
1515
+ }
1516
+ },
1517
+ "sha256": "48394c1fbb680f7bb68ccf3e0253afc170ef47f0f14dc1163d0c84fb9c46222d"
1518
+ },
1519
+ "den_joint_20": {
1520
+ "file": "den_joint_20.tflite",
1521
+ "bytes": 56134100,
1522
+ "accelerator": "gpu",
1523
+ "precision": "fp16_with_fp32_accum",
1524
+ "signatures": {
1525
+ "serving_default": {
1526
+ "inputs": [
1527
+ [
1528
+ "args_0",
1529
+ [
1530
+ 1,
1531
+ 12294,
1532
+ 1024
1533
+ ]
1534
+ ],
1535
+ [
1536
+ "args_1",
1537
+ [
1538
+ 1,
1539
+ 6144
1540
+ ]
1541
+ ],
1542
+ [
1543
+ "args_2",
1544
+ [
1545
+ 1,
1546
+ 64
1547
+ ]
1548
+ ]
1549
+ ],
1550
+ "outputs": [
1551
+ [
1552
+ "output_0",
1553
+ [
1554
+ 1,
1555
+ 12294,
1556
+ 1024
1557
+ ]
1558
+ ]
1559
+ ]
1560
+ }
1561
+ },
1562
+ "sha256": "2be313d01a72354c1b5dbc291ff1dcecf6345b02e7805e9214c019094762d063"
1563
+ },
1564
+ "den_joint_21": {
1565
+ "file": "den_joint_21.tflite",
1566
+ "bytes": 56134100,
1567
+ "accelerator": "gpu",
1568
+ "precision": "fp16_with_fp32_accum",
1569
+ "signatures": {
1570
+ "serving_default": {
1571
+ "inputs": [
1572
+ [
1573
+ "args_0",
1574
+ [
1575
+ 1,
1576
+ 12294,
1577
+ 1024
1578
+ ]
1579
+ ],
1580
+ [
1581
+ "args_1",
1582
+ [
1583
+ 1,
1584
+ 6144
1585
+ ]
1586
+ ],
1587
+ [
1588
+ "args_2",
1589
+ [
1590
+ 1,
1591
+ 64
1592
+ ]
1593
+ ]
1594
+ ],
1595
+ "outputs": [
1596
+ [
1597
+ "output_0",
1598
+ [
1599
+ 1,
1600
+ 12294,
1601
+ 1024
1602
+ ]
1603
+ ]
1604
+ ]
1605
+ }
1606
+ },
1607
+ "sha256": "c9c05edb15046307eb06de930d335bdc3b532f5eb9a79314664bb6ecfb087e4e"
1608
+ },
1609
+ "den_joint_22": {
1610
+ "file": "den_joint_22.tflite",
1611
+ "bytes": 56134100,
1612
+ "accelerator": "gpu",
1613
+ "precision": "fp16_with_fp32_accum",
1614
+ "signatures": {
1615
+ "serving_default": {
1616
+ "inputs": [
1617
+ [
1618
+ "args_0",
1619
+ [
1620
+ 1,
1621
+ 12294,
1622
+ 1024
1623
+ ]
1624
+ ],
1625
+ [
1626
+ "args_1",
1627
+ [
1628
+ 1,
1629
+ 6144
1630
+ ]
1631
+ ],
1632
+ [
1633
+ "args_2",
1634
+ [
1635
+ 1,
1636
+ 64
1637
+ ]
1638
+ ]
1639
+ ],
1640
+ "outputs": [
1641
+ [
1642
+ "output_0",
1643
+ [
1644
+ 1,
1645
+ 12294,
1646
+ 1024
1647
+ ]
1648
+ ]
1649
+ ]
1650
+ }
1651
+ },
1652
+ "sha256": "e7674dcda5bef2fca961742e0cb58736e9bed70485a2cad96080bbcddea3490b"
1653
+ },
1654
+ "den_joint_23": {
1655
+ "file": "den_joint_23.tflite",
1656
+ "bytes": 56235684,
1657
+ "accelerator": "gpu",
1658
+ "precision": "fp16_with_fp32_accum",
1659
+ "signatures": {
1660
+ "serving_default": {
1661
+ "inputs": [
1662
+ [
1663
+ "args_0",
1664
+ [
1665
+ 1,
1666
+ 12294,
1667
+ 1024
1668
+ ]
1669
+ ],
1670
+ [
1671
+ "args_1",
1672
+ [
1673
+ 1,
1674
+ 6144
1675
+ ]
1676
+ ],
1677
+ [
1678
+ "args_2",
1679
+ [
1680
+ 1,
1681
+ 1024
1682
+ ]
1683
+ ],
1684
+ [
1685
+ "args_3",
1686
+ [
1687
+ 1,
1688
+ 64
1689
+ ]
1690
+ ]
1691
+ ],
1692
+ "outputs": [
1693
+ [
1694
+ "output_0",
1695
+ [
1696
+ 1,
1697
+ 8192,
1698
+ 16
1699
+ ]
1700
+ ],
1701
+ [
1702
+ "output_1",
1703
+ [
1704
+ 1,
1705
+ 1,
1706
+ 5
1707
+ ]
1708
+ ]
1709
+ ]
1710
+ }
1711
+ },
1712
+ "sha256": "53420d4ff17eeee40d89480fecc549d578b8877a386821eb76c2754a4737ebdb"
1713
+ },
1714
+ "oct": {
1715
+ "file": "oct.tflite",
1716
+ "bytes": 204247600,
1717
+ "accelerator": "gpu",
1718
+ "precision": "fp16_with_fp32_accum",
1719
+ "signatures": {
1720
+ "L64": {
1721
+ "inputs": [
1722
+ [
1723
+ "args_0",
1724
+ [
1725
+ 1,
1726
+ 64,
1727
+ 3
1728
+ ]
1729
+ ],
1730
+ [
1731
+ "args_1",
1732
+ [
1733
+ 1,
1734
+ 64,
1735
+ 1024
1736
+ ]
1737
+ ],
1738
+ [
1739
+ "args_2",
1740
+ [
1741
+ 1,
1742
+ 256
1743
+ ]
1744
+ ],
1745
+ [
1746
+ "args_3",
1747
+ [
1748
+ 1,
1749
+ 8192,
1750
+ 16
1751
+ ]
1752
+ ]
1753
+ ],
1754
+ "outputs": [
1755
+ [
1756
+ "output_0",
1757
+ [
1758
+ 1,
1759
+ 64,
1760
+ 8
1761
+ ]
1762
+ ]
1763
+ ]
1764
+ },
1765
+ "L256": {
1766
+ "inputs": [
1767
+ [
1768
+ "args_0",
1769
+ [
1770
+ 1,
1771
+ 256,
1772
+ 3
1773
+ ]
1774
+ ],
1775
+ [
1776
+ "args_1",
1777
+ [
1778
+ 1,
1779
+ 256,
1780
+ 1024
1781
+ ]
1782
+ ],
1783
+ [
1784
+ "args_2",
1785
+ [
1786
+ 1,
1787
+ 256
1788
+ ]
1789
+ ],
1790
+ [
1791
+ "args_3",
1792
+ [
1793
+ 1,
1794
+ 8192,
1795
+ 16
1796
+ ]
1797
+ ]
1798
+ ],
1799
+ "outputs": [
1800
+ [
1801
+ "output_0",
1802
+ [
1803
+ 1,
1804
+ 256,
1805
+ 8
1806
+ ]
1807
+ ]
1808
+ ]
1809
+ },
1810
+ "L1024": {
1811
+ "inputs": [
1812
+ [
1813
+ "args_0",
1814
+ [
1815
+ 1,
1816
+ 1024,
1817
+ 3
1818
+ ]
1819
+ ],
1820
+ [
1821
+ "args_1",
1822
+ [
1823
+ 1,
1824
+ 1024,
1825
+ 1024
1826
+ ]
1827
+ ],
1828
+ [
1829
+ "args_2",
1830
+ [
1831
+ 1,
1832
+ 256
1833
+ ]
1834
+ ],
1835
+ [
1836
+ "args_3",
1837
+ [
1838
+ 1,
1839
+ 8192,
1840
+ 16
1841
+ ]
1842
+ ]
1843
+ ],
1844
+ "outputs": [
1845
+ [
1846
+ "output_0",
1847
+ [
1848
+ 1,
1849
+ 1024,
1850
+ 8
1851
+ ]
1852
+ ]
1853
+ ]
1854
+ },
1855
+ "L4096": {
1856
+ "inputs": [
1857
+ [
1858
+ "args_0",
1859
+ [
1860
+ 1,
1861
+ 4096,
1862
+ 3
1863
+ ]
1864
+ ],
1865
+ [
1866
+ "args_1",
1867
+ [
1868
+ 1,
1869
+ 4096,
1870
+ 1024
1871
+ ]
1872
+ ],
1873
+ [
1874
+ "args_2",
1875
+ [
1876
+ 1,
1877
+ 256
1878
+ ]
1879
+ ],
1880
+ [
1881
+ "args_3",
1882
+ [
1883
+ 1,
1884
+ 8192,
1885
+ 16
1886
+ ]
1887
+ ]
1888
+ ],
1889
+ "outputs": [
1890
+ [
1891
+ "output_0",
1892
+ [
1893
+ 1,
1894
+ 4096,
1895
+ 8
1896
+ ]
1897
+ ]
1898
+ ]
1899
+ },
1900
+ "L8192": {
1901
+ "inputs": [
1902
+ [
1903
+ "args_0",
1904
+ [
1905
+ 1,
1906
+ 8192,
1907
+ 3
1908
+ ]
1909
+ ],
1910
+ [
1911
+ "args_1",
1912
+ [
1913
+ 1,
1914
+ 8192,
1915
+ 1024
1916
+ ]
1917
+ ],
1918
+ [
1919
+ "args_2",
1920
+ [
1921
+ 1,
1922
+ 256
1923
+ ]
1924
+ ],
1925
+ [
1926
+ "args_3",
1927
+ [
1928
+ 1,
1929
+ 8192,
1930
+ 16
1931
+ ]
1932
+ ]
1933
+ ],
1934
+ "outputs": [
1935
+ [
1936
+ "output_0",
1937
+ [
1938
+ 1,
1939
+ 8192,
1940
+ 8
1941
+ ]
1942
+ ]
1943
+ ]
1944
+ }
1945
+ },
1946
+ "sha256": "6dab2c2dc79013e798ffabf41dea246bf447cee7bc9336430e8d773162a7cda7"
1947
+ },
1948
+ "gs_0": {
1949
+ "file": "gs_0.tflite",
1950
+ "bytes": 122497768,
1951
+ "accelerator": "gpu",
1952
+ "precision": "fp16_with_fp32_accum",
1953
+ "signatures": {
1954
+ "serving_default": {
1955
+ "inputs": [
1956
+ [
1957
+ "args_0",
1958
+ [
1959
+ 1,
1960
+ 8192,
1961
+ 3
1962
+ ]
1963
+ ],
1964
+ [
1965
+ "args_1",
1966
+ [
1967
+ 1,
1968
+ 8192,
1969
+ 1024
1970
+ ]
1971
+ ],
1972
+ [
1973
+ "args_2",
1974
+ [
1975
+ 1,
1976
+ 8192,
1977
+ 16
1978
+ ]
1979
+ ]
1980
+ ],
1981
+ "outputs": [
1982
+ [
1983
+ "output_0",
1984
+ [
1985
+ 1,
1986
+ 8192,
1987
+ 1024
1988
+ ]
1989
+ ]
1990
+ ]
1991
+ }
1992
+ },
1993
+ "sha256": "244ae2ffc6d510c8eab99d2381cb20edb8a7c1715272f7a7efeba5fcd77cfa39"
1994
+ },
1995
+ "gs_1": {
1996
+ "file": "gs_1.tflite",
1997
+ "bytes": 118281876,
1998
+ "accelerator": "gpu",
1999
+ "precision": "fp16_with_fp32_accum",
2000
+ "signatures": {
2001
+ "serving_default": {
2002
+ "inputs": [
2003
+ [
2004
+ "args_0",
2005
+ [
2006
+ 1,
2007
+ 8192,
2008
+ 1024
2009
+ ]
2010
+ ],
2011
+ [
2012
+ "args_1",
2013
+ [
2014
+ 1,
2015
+ 8192,
2016
+ 16
2017
+ ]
2018
+ ]
2019
+ ],
2020
+ "outputs": [
2021
+ [
2022
+ "output_0",
2023
+ [
2024
+ 1,
2025
+ 8192,
2026
+ 1024
2027
+ ]
2028
+ ]
2029
+ ]
2030
+ }
2031
+ },
2032
+ "sha256": "08e405e5b545d61b02b9f053d79c09f1300b57cd0f4469ffa65853eb8178bd4d"
2033
+ },
2034
+ "gs_2": {
2035
+ "file": "gs_2.tflite",
2036
+ "bytes": 118281876,
2037
+ "accelerator": "gpu",
2038
+ "precision": "fp16_with_fp32_accum",
2039
+ "signatures": {
2040
+ "serving_default": {
2041
+ "inputs": [
2042
+ [
2043
+ "args_0",
2044
+ [
2045
+ 1,
2046
+ 8192,
2047
+ 1024
2048
+ ]
2049
+ ],
2050
+ [
2051
+ "args_1",
2052
+ [
2053
+ 1,
2054
+ 8192,
2055
+ 16
2056
+ ]
2057
+ ]
2058
+ ],
2059
+ "outputs": [
2060
+ [
2061
+ "output_0",
2062
+ [
2063
+ 1,
2064
+ 8192,
2065
+ 1024
2066
+ ]
2067
+ ]
2068
+ ]
2069
+ }
2070
+ },
2071
+ "sha256": "4280e07069d2a6cd271e54477164b8b632d588030e46909a1854a8b35e30eb93"
2072
+ },
2073
+ "gs_3": {
2074
+ "file": "gs_3.tflite",
2075
+ "bytes": 118281876,
2076
+ "accelerator": "gpu",
2077
+ "precision": "fp16_with_fp32_accum",
2078
+ "signatures": {
2079
+ "serving_default": {
2080
+ "inputs": [
2081
+ [
2082
+ "args_0",
2083
+ [
2084
+ 1,
2085
+ 8192,
2086
+ 1024
2087
+ ]
2088
+ ],
2089
+ [
2090
+ "args_1",
2091
+ [
2092
+ 1,
2093
+ 8192,
2094
+ 16
2095
+ ]
2096
+ ]
2097
+ ],
2098
+ "outputs": [
2099
+ [
2100
+ "output_0",
2101
+ [
2102
+ 1,
2103
+ 8192,
2104
+ 1024
2105
+ ]
2106
+ ]
2107
+ ]
2108
+ }
2109
+ },
2110
+ "sha256": "5dcd7ecb298a160af606530df20f018b91384cd25e06fe25a0b42401cba7e651"
2111
+ },
2112
+ "gs_4": {
2113
+ "file": "gs_4.tflite",
2114
+ "bytes": 118281876,
2115
+ "accelerator": "gpu",
2116
+ "precision": "fp16_with_fp32_accum",
2117
+ "signatures": {
2118
+ "serving_default": {
2119
+ "inputs": [
2120
+ [
2121
+ "args_0",
2122
+ [
2123
+ 1,
2124
+ 8192,
2125
+ 1024
2126
+ ]
2127
+ ],
2128
+ [
2129
+ "args_1",
2130
+ [
2131
+ 1,
2132
+ 8192,
2133
+ 16
2134
+ ]
2135
+ ]
2136
+ ],
2137
+ "outputs": [
2138
+ [
2139
+ "output_0",
2140
+ [
2141
+ 1,
2142
+ 8192,
2143
+ 1024
2144
+ ]
2145
+ ]
2146
+ ]
2147
+ }
2148
+ },
2149
+ "sha256": "37541cee18d0de7b62e104391af8f61eac192424f58a9613cd8281fe6c23f472"
2150
+ },
2151
+ "gs_5": {
2152
+ "file": "gs_5.tflite",
2153
+ "bytes": 118281876,
2154
+ "accelerator": "gpu",
2155
+ "precision": "fp16_with_fp32_accum",
2156
+ "signatures": {
2157
+ "serving_default": {
2158
+ "inputs": [
2159
+ [
2160
+ "args_0",
2161
+ [
2162
+ 1,
2163
+ 8192,
2164
+ 1024
2165
+ ]
2166
+ ],
2167
+ [
2168
+ "args_1",
2169
+ [
2170
+ 1,
2171
+ 8192,
2172
+ 16
2173
+ ]
2174
+ ]
2175
+ ],
2176
+ "outputs": [
2177
+ [
2178
+ "output_0",
2179
+ [
2180
+ 1,
2181
+ 8192,
2182
+ 1024
2183
+ ]
2184
+ ]
2185
+ ]
2186
+ }
2187
+ },
2188
+ "sha256": "80972de6ec50f8d6f1ace44c47f076d0f214c0cdb99b6467d37e82af1de940c3"
2189
+ },
2190
+ "gs_6": {
2191
+ "file": "gs_6.tflite",
2192
+ "bytes": 118281876,
2193
+ "accelerator": "gpu",
2194
+ "precision": "fp16_with_fp32_accum",
2195
+ "signatures": {
2196
+ "serving_default": {
2197
+ "inputs": [
2198
+ [
2199
+ "args_0",
2200
+ [
2201
+ 1,
2202
+ 8192,
2203
+ 1024
2204
+ ]
2205
+ ],
2206
+ [
2207
+ "args_1",
2208
+ [
2209
+ 1,
2210
+ 8192,
2211
+ 16
2212
+ ]
2213
+ ]
2214
+ ],
2215
+ "outputs": [
2216
+ [
2217
+ "output_0",
2218
+ [
2219
+ 1,
2220
+ 8192,
2221
+ 1024
2222
+ ]
2223
+ ]
2224
+ ]
2225
+ }
2226
+ },
2227
+ "sha256": "50dcc38afa5253d24fb792798db27327905b766404506405ead8e525cb0ec177"
2228
+ },
2229
+ "gs_7": {
2230
+ "file": "gs_7.tflite",
2231
+ "bytes": 120252780,
2232
+ "accelerator": "gpu",
2233
+ "precision": "fp16_with_fp32_accum",
2234
+ "signatures": {
2235
+ "serving_default": {
2236
+ "inputs": [
2237
+ [
2238
+ "args_0",
2239
+ [
2240
+ 1,
2241
+ 8192,
2242
+ 1024
2243
+ ]
2244
+ ],
2245
+ [
2246
+ "args_1",
2247
+ [
2248
+ 1,
2249
+ 8192,
2250
+ 16
2251
+ ]
2252
+ ]
2253
+ ],
2254
+ "outputs": [
2255
+ [
2256
+ "output_0",
2257
+ [
2258
+ 1,
2259
+ 8192,
2260
+ 480
2261
+ ]
2262
+ ]
2263
+ ]
2264
+ }
2265
+ },
2266
+ "sha256": "ef75898f78654d4d10692b333dc1e12c860ee54138795aece8e2306ba76217b7"
2267
+ }
2268
+ },
2269
+ "side_files": {
2270
+ "den_pos_emb.f32": {
2271
+ "shape": [
2272
+ 1,
2273
+ 8192,
2274
+ 1024
2275
+ ],
2276
+ "dtype": "float32_le"
2277
+ },
2278
+ "dino_rope_cos.f32": {
2279
+ "shape": [
2280
+ 1,
2281
+ 1,
2282
+ 4101,
2283
+ 64
2284
+ ],
2285
+ "dtype": "float32_le",
2286
+ "repo": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT"
2287
+ },
2288
+ "dino_rope_sin.f32": {
2289
+ "shape": [
2290
+ 1,
2291
+ 1,
2292
+ 4101,
2293
+ 64
2294
+ ],
2295
+ "dtype": "float32_le",
2296
+ "repo": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT"
2297
+ },
2298
+ "gs_perturbation.f32": {
2299
+ "shape": [
2300
+ 32,
2301
+ 3
2302
+ ],
2303
+ "dtype": "float32_le"
2304
+ }
2305
+ },
2306
+ "json_files": [
2307
+ "vae_bn.json",
2308
+ "gs_rep.json"
2309
+ ],
2310
+ "total_graph_bytes": 3837368884,
2311
+ "repos": {
2312
+ "main": "litert-community/Idol",
2313
+ "dino": "litert-community/DINOv3-ViT-H16plus-Idol-LiteRT",
2314
+ "dis": "litert-community/DIS-ISNet-LiteRT"
2315
+ }
2316
+ }
262k/oct.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6dab2c2dc79013e798ffabf41dea246bf447cee7bc9336430e8d773162a7cda7
3
+ size 204247600
262k/vae_0.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a8c8b881165717d854bead656620f77bfccc71b5f7772c160753723c5f80c2d7
3
+ size 3036028
262k/vae_1.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:07e357358a2e50a14462be77433f0c11ae2319d0912d320a65335d71fabfd48b
3
+ size 10858720
262k/vae_2.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:203175990bbbf43a66263ae69ec8000f19bc943314226bf2e26b3d0b0b26eb3f
3
+ size 43164896
262k/vae_3.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d3375079a1558cdd4f4c3f96337830ce81d2f37089c2cd79e701cfc393ecc67e
3
+ size 56792512
262k/vae_4.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6ea00886e1fb2bebbd4be40b6591a04abea2208fd6d59e32a4d52310b0d35853
3
+ size 20179348
262k/vae_attn.tflite ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4bec7ec37ad58661abb63ee1e16ccb7646afc6d617acf3caa714721912237d88
3
+ size 4423776
262k/vae_bn.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"bn_mean": [-0.0673828125, -0.0712890625, -0.0751953125, -0.07470703125, 0.0223388671875, 0.0179443359375, 0.01422119140625, 0.018310546875, -6.29425048828125e-05, -0.006256103515625, -0.000209808349609375, -0.003143310546875, -0.0272216796875, -0.028076171875, -0.027587890625, -0.029052734375, -0.07666015625, -0.0673828125, -0.09033203125, -0.08935546875, 0.016845703125, 0.01519775390625, 0.00787353515625, 0.00860595703125, 0.00836181640625, 0.0015411376953125, 0.0002574920654296875, -0.0042724609375, -0.0439453125, -0.0419921875, -0.043701171875, -0.043212890625, -0.01025390625, -0.01318359375, -0.006622314453125, -0.0047607421875, -0.031005859375, -0.030517578125, -0.0279541015625, -0.0179443359375, 0.003021240234375, 0.00150299072265625, 0.0125732421875, 0.01446533203125, 0.03466796875, 0.03369140625, 0.03369140625, 0.0283203125, 0.001983642578125, 0.004730224609375, 0.004669189453125, 0.004974365234375, 0.01226806640625, 0.00811767578125, 0.008056640625, 0.01458740234375, 0.06787109375, 0.06787109375, 0.07666015625, 0.0732421875, -0.046142578125, -0.04736328125, -0.039306640625, -0.051025390625, -0.052734375, -0.0478515625, -0.047119140625, -0.0517578125, -0.03173828125, -0.03173828125, -0.034423828125, -0.0281982421875, 0.051025390625, 0.04443359375, 0.057861328125, 0.0458984375, -0.041259765625, -0.0458984375, -0.048828125, -0.046630859375, -0.00885009765625, -0.0106201171875, -0.0087890625, -0.004608154296875, -0.03759765625, -0.043212890625, -0.04345703125, -0.0498046875, 0.0118408203125, 0.0166015625, 0.020263671875, 0.0279541015625, 0.01129150390625, 0.01287841796875, 0.001556396484375, 0.00714111328125, -0.01177978515625, -0.00183868408203125, -0.01416015625, -0.00537109375, -0.00909423828125, -0.0137939453125, -0.01446533203125, -0.0186767578125, 0.0322265625, 0.030517578125, 0.02587890625, 0.0299072265625, 0.053955078125, 0.0615234375, 0.049560546875, 0.05908203125, -0.051025390625, -0.060302734375, -0.0478515625, -0.052490234375, -0.022705078125, -0.0274658203125, -0.015380859375, -0.0255126953125, -0.05712890625, -0.056396484375, -0.0517578125, -0.049560546875, 0.0115966796875, 0.00543212890625, 0.016357421875, 0.0103759765625], "bn_var": [3.25, 3.15625, 3.1875, 3.1875, 3.140625, 3.09375, 3.09375, 3.0625, 3.0, 3.015625, 3.0, 3.0, 3.46875, 3.4375, 3.46875, 3.453125, 3.09375, 3.078125, 3.078125, 3.09375, 3.015625, 3.03125, 3.015625, 3.03125, 3.0, 2.96875, 3.03125, 3.0, 3.078125, 3.0625, 3.078125, 3.0625, 3.40625, 3.40625, 3.4375, 3.4375, 3.328125, 3.171875, 3.1875, 3.21875, 3.25, 3.203125, 3.125, 3.125, 3.15625, 3.125, 3.21875, 3.1875, 3.09375, 3.03125, 3.0625, 3.015625, 3.21875, 3.234375, 3.21875, 3.21875, 3.15625, 3.15625, 3.140625, 3.15625, 3.078125, 3.046875, 3.125, 3.0625, 3.15625, 3.140625, 3.171875, 3.171875, 3.296875, 3.25, 3.25, 3.25, 3.078125, 3.0, 3.078125, 3.0625, 3.09375, 3.0625, 3.125, 3.109375, 3.125, 3.078125, 3.171875, 3.140625, 3.203125, 3.234375, 3.1875, 3.15625, 3.109375, 3.109375, 3.078125, 3.09375, 3.15625, 3.125, 3.171875, 3.171875, 2.953125, 2.90625, 2.984375, 2.921875, 3.171875, 3.09375, 3.0625, 3.046875, 3.09375, 3.0625, 3.078125, 3.015625, 3.109375, 3.09375, 3.046875, 3.03125, 3.0625, 3.09375, 3.109375, 3.109375, 2.984375, 2.9375, 3.0, 2.96875, 3.125, 3.109375, 3.140625, 3.125, 3.046875, 3.046875, 3.09375, 3.078125], "bn_eps": 0.0001}
README.md CHANGED
@@ -16,10 +16,10 @@ tags:
16
 
17
  # Idol on LiteRT: one photo to a 3D Gaussian splat on the phone
18
 
19
- Idol (speridlabs/idol with the idol-turbo LoRA) as LiteRT graphs for `CompiledModel`, converted with litert-torch: on a Galaxy S26, the Android sample in `android/` turns one photo into a 3D Gaussian splat of 262,144 Gaussians in 303 s (the first photo after start on a cool phone, GPU fp16 with fp32 accumulation, LiteRT 2.3.0, measured 2026-11-09).
20
 
21
- [speridlabs/idol](https://huggingface.co/speridlabs/idol) turns one photo of an object into a 3D Gaussian splat of
22
- 262,144 Gaussians that you can turn around, including the sides the picture never showed. This repo holds the
23
  author's denoiser with the [speridlabs/idol-turbo](https://huggingface.co/speridlabs/idol-turbo) LoRA (5 steps, no
24
  guidance), its octree and
25
  Gaussian decoders, the FLUX.2 VAE encoder, and the author's BiRefNet background remover. The DINOv3 image encoder is
@@ -28,50 +28,87 @@ in a separate, gated repo under its own licence:
28
 
29
  ![The photo, and the splat made from it turned to the front, the side and the back](assets/hero.png)
30
 
31
- *Left: [the photo](https://www.pexels.com/photo/plant-in-silver-flowerpot-20324601/) by Komet Flicker (Pexels License). Right: the splat the sample app made from it on a Galaxy S26, rendered from the front, the side and the back.*
32
 
33
- ## Speed
 
 
 
 
 
 
 
 
 
 
 
 
34
 
35
- On a Galaxy S26, the sample app turns one photo into a splat of 262,144 Gaussians in 303 s, starting from a cool phone (the first photo after start). The phone throttles its GPU during that photo: the GPU clock cap fell from 1,300 to 422 MHz within its 5 minutes (thermal status 1 → 3). Photos taken one after another on a phone that was already warm (thermal status 2) took 339–449 s. The graphs do not all fit in the phone's memory at once, so the app closes graphs and compiles them again when the run comes back to them: about 115 compiles per photo, 70 s of the first one. Background removal (BiRefNet) runs on the CPU: 11.1 s of that time on the Galaxy S26. The
36
- other networks run on the GPU.
37
 
38
- Speed still being tuned (updates follow).
 
 
 
 
 
39
 
40
- | Galaxy S26 (SM-S942Q), the sample app, LiteRT 2.3.0; from a cool phone (GPU clock cap 1,300 MHz, thermal status 1 at the start) | first photo after start |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  |---|---|
42
- | **photo → .ply written** | **303 s** |
43
- | background removal (BiRefNet, CPU) | 11.1 s |
44
- | DINOv3 encoder | 6.3 s |
45
- | VAE encoder | 3.7 s |
46
- | denoiser, 5 steps | 228.4 s |
47
- | octree decoder | 16.2 s |
48
- | Gaussian decoder | 36.0 s |
49
  | PLY writer | 0.2 s |
50
- | graphs compiled during the photo | 115 (70 s) |
51
- | peak resident memory (VmHWM) | 4.71 GiB |
52
- | peak GPU memory (kgsl) | 5.60 GiB |
53
-
54
- | Galaxy S26 (SM-S942Q), the sample app, LiteRT 2.3.0; thermal status 2 (moderate) from the first photo | first photo after start | photo 2 | photo 3 |
55
- |---|---|---|---|
56
- | **photo → .ply written** | **339 s** | **416 s** | **414 s** |
57
- | background removal (BiRefNet, CPU) | 8.5 s | 17.7 s | 15.9 s |
58
- | DINOv3 encoder | 8.8 s | 31.0 s | 26.7 s |
59
- | VAE encoder | 5.4 s | 8.5 s | 7.3 s |
60
- | denoiser, 5 steps | 262.9 s | 306.9 s | 311.9 s |
61
- | octree decoder | 16.0 s | 15.1 s | 15.3 s |
62
- | Gaussian decoder | 35.6 s | 35.7 s | 36.2 s |
63
- | PLY writer | 0.2 s | 0.1 s | 0.1 s |
64
- | graphs compiled during the photo | 115 (78 s) | 114 (97 s) | 116 (93 s) |
65
- | peak resident memory (VmHWM) | 4.91 GiB | 4.16 GiB | 4.09 GiB |
66
- | peak GPU memory (kgsl) | 5.60 GiB | 5.33 GiB | 5.45 GiB |
67
 
68
  ## How close it is to the author's model
69
 
70
  Each check runs the author's PyTorch pipeline (float32, CPU) and these graphs on the same input with the same random
71
  numbers, against thresholds fixed before the first run. The inputs are two images from the author's gallery
72
  (`nb-armchair`, `fig-axolotl`) and one photo (a succulent, Pexels). Per part, each graph gets the author's own input
73
- for that part and its output is compared with the author's (cosine; the threshold is 0.99). The whole pipeline is compared
74
- by rendering both splats from four sides with the same renderer (PSNR; the threshold is 25 dB).
 
 
75
 
76
  ### Per-part agreement on the Mac (LiteRT GPU, Metal, fp16): cosine vs the author's model
77
 
@@ -79,40 +116,40 @@ by rendering both splats from four sides with the same renderer (PSNR; the thres
79
  |---|---|---|---|---|
80
  | DINOv3 encoder | feature1 | 0.99989 | 0.99994 | 0.99992 |
81
  | VAE encoder | latent tokens | 0.99995 | 0.99993 | 0.99996 |
82
- | Denoiser (5 steps) | latent velocity, worst step | 0.99931 | 0.99923 | 0.99931 |
83
- | Octree decoder (8 levels) | child probabilities, worst level | 0.99946 | 0.99937 | 0.99943 |
84
  | Gaussian decoder | xyz | 1.00000 | 1.00000 | 1.00000 |
85
- | | colour (f_dc) | 0.99970 | 0.99963 | 0.99976 |
86
- | | scale | 0.99833 | 0.99837 | 0.99652 |
87
- | | rotation | 0.99891 | 0.99915 | 0.99901 |
88
- | | opacity | 0.99987 | 0.99871 | 0.99988 |
89
 
90
- ### Per-part agreement on a Galaxy S26 (the app; GPU fp16 with fp32 accumulation, BiRefNet on the CPU): cosine vs the author's model
91
 
92
  | Part | Compared tensor | armchair |
93
  |---|---|---|
94
- | DINOv3 encoder | feature1 | 1.00000 |
95
- | VAE encoder | latent tokens | 0.99999 |
96
- | Denoiser (5 steps) | latent velocity, worst step | 0.99999 |
97
- | Octree decoder (8 levels) | child probabilities, worst level | 0.99994 |
98
  | Gaussian decoder | xyz | 1.00000 |
99
- | | colour (f_dc) | 0.99997 |
100
- | | scale | 0.99990 |
101
- | | rotation | 0.99986 |
102
- | | opacity | 0.99993 |
103
 
104
- ### Per-part agreement on a Pixel 11 Pro (the app; GPU fp16 with fp32 accumulation, BiRefNet on the CPU): cosine vs the author's model
105
 
106
  | Part | Compared tensor | armchair |
107
  |---|---|---|
108
- | DINOv3 encoder | feature1 | 0.99998 |
109
- | VAE encoder | latent tokens | 0.99999 |
110
- | Denoiser (5 steps) | latent velocity, worst step | 0.99989 |
111
- | Octree decoder (8 levels) | child probabilities, worst level | 0.99970 |
112
  | Gaussian decoder | xyz | 1.00000 |
113
- | | colour (f_dc) | 0.99989 |
114
- | | scale | 0.99964 |
115
- | | rotation | 0.99976 |
116
  | | opacity | 0.99998 |
117
 
118
  ### Background removal
@@ -129,19 +166,20 @@ by rendering both splats from four sides with the same renderer (PSNR; the thres
129
 
130
  | Input | Where | PSNR, 4 views pooled (threshold: 25 dB) | per view: 0°, 90°, 180°, 270° |
131
  |---|---|---|---|
132
- | armchair | Mac, LiteRT GPU (Metal, fp16) | 35.51 dB | 34.86, 37.92, 34.15, 36.00 |
133
- | armchair | Galaxy S26, the app | 46.59 dB | 46.53, 45.59, 46.41, 48.25 |
134
- | axolotl | Mac, LiteRT GPU (Metal, fp16) | 32.21 dB | 33.85, 29.70, 34.58, 32.43 |
135
- | axolotl | Galaxy S26, the app | 42.34 dB | 40.72, 44.21, 40.59, 46.32 |
136
- | succulent | Mac, LiteRT GPU (Metal, fp16) | 36.38 dB | 35.41, 36.84, 36.14, 37.39 |
137
- | succulent | Galaxy S26, the app | 41.43 dB | 40.30, 41.09, 42.18, 42.51 |
 
138
 
139
  ## Minimal usage
140
 
141
  ### Python: the whole pipeline
142
 
143
  ```bash
144
- hf download litert-community/Idol --local-dir Idol
145
  cd Idol
146
  pip install -r python/requirements.txt
147
  python python/run_idol.py photo.jpg --out out --models . # writes out/gaussian.ply
@@ -149,7 +187,7 @@ python python/run_idol.py photo.jpg --out out --models . # writes out/gaussian
149
 
150
  `run_idol.py` downloads the DINOv3 repo (accept its licence on the Hub and `hf auth login` first) and runs every
151
  graph with `CompiledModel`, the GPU for all but BiRefNet. The steps between graphs are in `python/idol_runner.py` and
152
- `python/idol_glue.py`. On an M4 Max Mac (Metal GPU) one photo took 64 s and up to 22 GB of memory.
153
 
154
  ### Python: one graph with `CompiledModel` (background removal)
155
 
@@ -191,7 +229,7 @@ val alpha = outputs[0].readFloat() // [1024 * 1024] sigmoid map, 1 = the object
191
  for (b in inputs + outputs) b.close()
192
  bir.close()
193
  val gpu = CompiledModel.Options(Accelerator.GPU).apply { // every other graph
194
- gpuOptions = CompiledModel.GpuOptions(precision = CompiledModel.GpuOptions.Precision.FP16_WITH_FP32_ACCUM)
195
  }
196
  ```
197
 
@@ -199,12 +237,13 @@ The Android sample app (photo or camera → progress per stage → a splat you c
199
  The graphs are too large for the APK; a script copies them into the app's files folder over adb:
200
 
201
  ```bash
202
- hf download litert-community/Idol --local-dir ~/Downloads/Idol
203
  hf download litert-community/DINOv3-ViT-H16plus-Idol-LiteRT --local-dir ~/Downloads/DINOv3-ViT-H16plus-Idol-LiteRT
204
  cd ~/Downloads/Idol/android
205
  chmod +x gradlew scripts/install_to_device.sh # the Hub does not keep the executable bit
206
  ./gradlew :app:installDebug
207
  IDOL_DIR=~/Downloads/Idol DINO_DIR=~/Downloads/DINOv3-ViT-H16plus-Idol-LiteRT ./scripts/install_to_device.sh
 
208
  ```
209
 
210
  Background removal (BiRefNet on the CPU) needs about 2,670 MB of free memory for one call. Before compiling it, the
@@ -219,13 +258,20 @@ the call.
219
  | Background removal (BiRefNet) | `bir.tflite` | CPU | 1 |
220
  | DINOv3 ViT-H+/16 image encoder | `dino_0..3.tflite` (DINOv3 repo) | GPU | 4 |
221
  | FLUX.2 VAE encoder | `vae_0..3.tflite`, `vae_attn.tflite`, `vae_4.tflite` | GPU | 6 |
222
- | Denoiser with the turbo LoRA | `den_ctx.tflite`, `den_in.tflite`, `den_joint_00..23.tflite` | GPU | 5 steps × 25, plus `den_ctx` once per LoRA phase |
223
  | Octree decoder | `oct.tflite` (5 signatures by row count) | GPU | 8 levels |
224
- | Gaussian decoder | `gs_0..7.tflite` | GPU | 8 |
225
  | Octree sampling, Gaussian activation, PLY | host code | CPU | — |
226
 
227
- `manifest.json` lists every graph with its signatures, accelerator and precision. On Android the GPU graphs run with
228
- `FP16_WITH_FP32_ACCUM` precision.
 
 
 
 
 
 
 
229
 
230
  ## Notes
231
 
@@ -243,7 +289,7 @@ the call.
243
  Gaussian decoder's first block; the chunked form loses 0.6 %. Keep it if you re-export.
244
  - **Keep each GPU call short on the Galaxy S26.** In the feasibility run the VAE encoder ran as one graph, about 9 s
245
  per GPU call; the screen compositor stalled and the process was killed (signal 9) on its fifth call. Every stage here
246
- is split into several graphs for that reason (on the Galaxy S26 every GPU call takes 0.04–1.83 s: 45 graphs, 49 signatures).
247
  - **The denoiser did not compile for the NPU on the phone.** Compiled on the Galaxy S26 for its NPU (Qualcomm HTP;
248
  LiteRT 2.3.0, QAIRT 2.50), one denoiser block did not finish in 15 minutes at the default optimization level (O3)
249
  and ran out of memory after 28 s at `optimization_level=1` (optimize for prepare); the HTP compiler warned it has
 
16
 
17
  # Idol on LiteRT: one photo to a 3D Gaussian splat on the phone
18
 
19
+ Idol (speridlabs/idol with the idol-turbo LoRA) as LiteRT graphs for `CompiledModel`, converted with litert-torch: on a Galaxy S26, the Android sample in `android/` turns one photo into a 3D Gaussian splat of 65,536 Gaussians in 158 s with the default form, or of 262,144 Gaussians in 267 s with the first release's form in `262k/` (the first photo after start on a cool phone, LiteRT 2.3.0).
20
 
21
+ [speridlabs/idol](https://huggingface.co/speridlabs/idol) turns one photo of an object into a 3D Gaussian splat (262,144 Gaussians at its
22
+ defaults) that you can turn around, including the sides the picture never showed. This repo holds the
23
  author's denoiser with the [speridlabs/idol-turbo](https://huggingface.co/speridlabs/idol-turbo) LoRA (5 steps, no
24
  guidance), its octree and
25
  Gaussian decoders, the FLUX.2 VAE encoder, and the author's BiRefNet background remover. The DINOv3 image encoder is
 
28
 
29
  ![The photo, and the splat made from it turned to the front, the side and the back](assets/hero.png)
30
 
31
+ *Left: [the photo](https://www.pexels.com/photo/plant-in-silver-flowerpot-20324601/) by Komet Flicker (Pexels License). Right: the splat the sample app made from it on a Galaxy S26 with the default form (65,536 Gaussians), rendered from the front, the side and the back.*
32
 
33
+ ## Two forms
34
+
35
+ The default form (the repo's root) is the fastest of the forms measured on a Galaxy S26: it makes a splat in 158 s against 267 s for the first release's form in `262k/`, while its renders agree less closely with the author's default output: 32.3–34.4 dB PSNR against 41.4–46.6 dB (higher is closer). Of the other forms tried, int8 weights did not run on the phone GPUs, a 512 × 512 input made even the author's own PyTorch pipeline miss the 25 dB bar (13.5–22.9 dB against its 1,024 × 1,024 output), the denoiser did not compile for the Galaxy S26's NPU on the phone, and the CPU alone was slower.
36
+
37
+ | | default (the repo's root) | first release (`262k/`) |
38
+ |---|---|---|
39
+ | Gaussians per splat | 65,536 (2,048 anchors) | 262,144 (8,192 anchors, the author's default) |
40
+ | GPU precision | FP16 | FP16 with fp32 accumulation |
41
+ | Denoiser blocks 1–22 and Gaussian decoder graphs 1–6 | one shared graph per chain; the app copies each block's weights in before the call | a graph per block |
42
+ | Galaxy S26: the first photo after start, cool phone (thermal status 0 at the start) | **158 s** | 267 s |
43
+ | Galaxy S26: photos on a phone already warm | 329–351 s (4 photos of the armchair, thermal status 3) | 339–449 s (5 photos of 3 inputs, thermal status 2) |
44
+ | Pixel 11 Pro: the first photo after start | 343 s | not measured |
45
+ | 4-view render PSNR against the author's default on the Galaxy S26 (threshold 25 dB) | 32.3–34.4 dB | 41.4–46.6 dB |
46
 
47
+ Thermal status is Android's: 0 none, 1 light, 2 moderate, 3 severe. Both forms run with the same app: point `install_to_device.sh` at the repo's root or at `262k/`.
 
48
 
49
+ The first release's card gives 303 s for the `262k/` form: that photo started on a warmer phone (thermal status 1, skin 38.5 °C, against 34.6 °C here). With this app the `262k/` form makes the same splat as with the first release's, byte for byte.
50
+
51
+ The rest of this card describes the default form; the first release's card ([commit e7ee1226](https://huggingface.co/litert-community/Idol/blob/e7ee12262a3ed622fa44fb8df8ff4f335dd77064/README.md)) has the
52
+ per-stage tables of the `262k/` form.
53
+
54
+ ## Speed
55
 
56
+ On a Galaxy S26, the sample app turns one photo into a splat of 65,536 Gaussians in 158 s, starting from a cool phone (the first photo after start). The phone throttles its GPU during that photo: the GPU clock cap fell from 1,300 to 500 MHz (thermal status 0 → 2). After 12 minutes of back-to-back runs the phone was at thermal status 3; through the next 4 photos the GPU clock cap stayed at 222–282 MHz (one reading of 191 MHz), and they took 329–351 s. At start the app compiles 1 graph before the photo (2 s) and 19 more during it (20 s): the denoiser's 22 middle blocks share one graph and the Gaussian decoder's six middle graphs share another, so each is compiled once per photo. The first release's form in `262k/` (262,144 Gaussians, a graph per block, GPU FP16 with fp32 accumulation) took 267 s the same way, also from thermal status 0 (skin 34.6 °C at the start against 33.5 °C). Background removal (BiRefNet) runs on the CPU: 7.4 s of that time on the Galaxy S26. The
57
+ other networks run on the GPU at FP16.
58
+
59
+ | Galaxy S26 (SM-S942Q), the sample app, LiteRT 2.3.0; from a cool phone (GPU clock cap 1,300 MHz, thermal status 0 at the start) | first photo after start |
60
+ |---|---|
61
+ | **photo → .ply written** | **158 s** |
62
+ | background removal (BiRefNet, CPU) | 7.4 s |
63
+ | DINOv3 encoder | 10.6 s |
64
+ | VAE encoder | 5.2 s |
65
+ | denoiser, 5 steps | 119.8 s |
66
+ | octree decoder | 9.1 s |
67
+ | Gaussian decoder | 5.5 s |
68
+ | PLY writer | 0.1 s |
69
+ | graphs compiled at app start, before the first photo | 1 (2 s) |
70
+ | graphs compiled during the photo | 19 (20 s) |
71
+ | peak resident memory (VmHWM) | 5.42 GiB |
72
+ | peak GPU memory (kgsl) | 5.73 GiB |
73
+
74
+ | Galaxy S26 (SM-S942Q), the sample app, LiteRT 2.3.0; right after the cool photo's hold (thermal status 3 at the start) | first photo after start | photo 2 | photo 3 | photo 4 |
75
+ |---|---|---|---|---|
76
+ | **photo → .ply written** | **351 s** | **351 s** | **341 s** | **329 s** |
77
+ | background removal (BiRefNet, CPU) | 14.9 s | 18.9 s | 15.2 s | 15.4 s |
78
+ | DINOv3 encoder | 22.5 s | 23.6 s | 25.1 s | 20.6 s |
79
+ | VAE encoder | 10.7 s | 8.1 s | 8.0 s | 7.5 s |
80
+ | denoiser, 5 steps | 278.1 s | 280.3 s | 272.6 s | 265.4 s |
81
+ | octree decoder | 14.3 s | 11.7 s | 12.1 s | 12.2 s |
82
+ | Gaussian decoder | 9.2 s | 7.7 s | 7.6 s | 7.4 s |
83
+ | PLY writer | 0.1 s | 0.0 s | 0.0 s | 0.0 s |
84
+ | graphs compiled at app start, before the first photo | 3 (9 s) | — | — | — |
85
+ | graphs compiled during the photo | 18 (29 s) | 18 (21 s) | 19 (25 s) | 18 (20 s) |
86
+ | peak resident memory (VmHWM) | 5.30 GiB | 4.58 GiB | 5.10 GiB | 4.63 GiB |
87
+ | peak GPU memory (kgsl) | 5.73 GiB | 5.12 GiB | 5.13 GiB | 5.04 GiB |
88
+
89
+ | Pixel 11 Pro, the sample app, LiteRT 2.3.0; thermal status 0 at the start | first photo after start |
90
  |---|---|
91
+ | **photo → .ply written** | **343 s** |
92
+ | background removal (BiRefNet, CPU) | 17.4 s |
93
+ | DINOv3 encoder | 8.5 s |
94
+ | VAE encoder | 36.1 s |
95
+ | denoiser, 5 steps | 242.3 s |
96
+ | octree decoder | 12.9 s |
97
+ | Gaussian decoder | 23.7 s |
98
  | PLY writer | 0.2 s |
99
+ | graphs compiled at app start, before the first photo | 6 (60 s) |
100
+ | graphs compiled during the photo | 15 (75 s) |
101
+ | peak resident memory (VmHWM) | 5.96 GiB |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
  ## How close it is to the author's model
104
 
105
  Each check runs the author's PyTorch pipeline (float32, CPU) and these graphs on the same input with the same random
106
  numbers, against thresholds fixed before the first run. The inputs are two images from the author's gallery
107
  (`nb-armchair`, `fig-axolotl`) and one photo (a succulent, Pexels). Per part, each graph gets the author's own input
108
+ for that part and its output is compared with the author's (cosine; the threshold is 0.99); the octree and Gaussian
109
+ decoders are compared with the author's model run at this form's 65,536 Gaussians (`--num-gaussians 65536`). The
110
+ whole pipeline is compared with the author's default (262,144 Gaussians) by rendering both splats from four sides with
111
+ the same renderer (PSNR; the threshold is 25 dB).
112
 
113
  ### Per-part agreement on the Mac (LiteRT GPU, Metal, fp16): cosine vs the author's model
114
 
 
116
  |---|---|---|---|---|
117
  | DINOv3 encoder | feature1 | 0.99989 | 0.99994 | 0.99992 |
118
  | VAE encoder | latent tokens | 0.99995 | 0.99993 | 0.99996 |
119
+ | Denoiser (5 steps) | latent velocity, worst step | 0.99931 | 0.99924 | 0.99931 |
120
+ | Octree decoder (8 levels) | child probabilities, worst level | 0.99948 | 0.99937 | 0.99944 |
121
  | Gaussian decoder | xyz | 1.00000 | 1.00000 | 1.00000 |
122
+ | | colour (f_dc) | 0.99980 | 0.99987 | 0.99937 |
123
+ | | scale | 0.99959 | 0.99925 | 0.99225 |
124
+ | | rotation | 0.99953 | 0.99919 | 0.99929 |
125
+ | | opacity | 0.99995 | 0.99969 | 0.99969 |
126
 
127
+ ### Per-part agreement on a Galaxy S26 (the app; GPU FP16, BiRefNet on the CPU): cosine vs the author's model
128
 
129
  | Part | Compared tensor | armchair |
130
  |---|---|---|
131
+ | DINOv3 encoder | feature1 | 0.99987 |
132
+ | VAE encoder | latent tokens | 0.99991 |
133
+ | Denoiser (5 steps) | latent velocity, worst step | 0.99924 |
134
+ | Octree decoder (8 levels) | child probabilities, worst level | 0.99943 |
135
  | Gaussian decoder | xyz | 1.00000 |
136
+ | | colour (f_dc) | 0.99973 |
137
+ | | scale | 0.99939 |
138
+ | | rotation | 0.99938 |
139
+ | | opacity | 0.99996 |
140
 
141
+ ### Per-part agreement on a Pixel 11 Pro (the app; GPU FP16, BiRefNet on the CPU): cosine vs the author's model
142
 
143
  | Part | Compared tensor | armchair |
144
  |---|---|---|
145
+ | DINOv3 encoder | feature1 | 0.99989 |
146
+ | VAE encoder | latent tokens | 0.99997 |
147
+ | Denoiser (5 steps) | latent velocity, worst step | 0.99930 |
148
+ | Octree decoder (8 levels) | child probabilities, worst level | 0.99945 |
149
  | Gaussian decoder | xyz | 1.00000 |
150
+ | | colour (f_dc) | 0.99988 |
151
+ | | scale | 0.99963 |
152
+ | | rotation | 0.99939 |
153
  | | opacity | 0.99998 |
154
 
155
  ### Background removal
 
166
 
167
  | Input | Where | PSNR, 4 views pooled (threshold: 25 dB) | per view: 0°, 90°, 180°, 270° |
168
  |---|---|---|---|
169
+ | armchair | Mac, LiteRT GPU (Metal, fp16) | 35.02 dB | 34.23, 36.99, 33.39, 36.48 |
170
+ | armchair | Galaxy S26, the app | 34.41 dB | 34.22, 35.85, 33.69, 34.15 |
171
+ | armchair | Pixel 11 Pro, the app | 33.58 dB | 32.42, 34.81, 31.90, 36.89 |
172
+ | axolotl | Mac, LiteRT GPU (Metal, fp16) | 31.24 dB | 32.84, 28.79, 33.37, 31.52 |
173
+ | axolotl | Galaxy S26, the app | 32.26 dB | 33.27, 30.07, 33.71, 33.04 |
174
+ | succulent | Mac, LiteRT GPU (Metal, fp16) | 34.85 dB | 34.05, 34.89, 35.03, 35.58 |
175
+ | succulent | Galaxy S26, the app | 34.26 dB | 33.47, 34.26, 34.41, 35.05 |
176
 
177
  ## Minimal usage
178
 
179
  ### Python: the whole pipeline
180
 
181
  ```bash
182
+ hf download litert-community/Idol --exclude "262k/*" --local-dir Idol # the default form; drop --exclude for both
183
  cd Idol
184
  pip install -r python/requirements.txt
185
  python python/run_idol.py photo.jpg --out out --models . # writes out/gaussian.ply
 
187
 
188
  `run_idol.py` downloads the DINOv3 repo (accept its licence on the Hub and `hf auth login` first) and runs every
189
  graph with `CompiledModel`, the GPU for all but BiRefNet. The steps between graphs are in `python/idol_runner.py` and
190
+ `python/idol_glue.py`. On an M4 Max Mac (Metal GPU) one photo took 53 s and up to 6 GB of memory (the process footprint).
191
 
192
  ### Python: one graph with `CompiledModel` (background removal)
193
 
 
229
  for (b in inputs + outputs) b.close()
230
  bir.close()
231
  val gpu = CompiledModel.Options(Accelerator.GPU).apply { // every other graph
232
+ gpuOptions = CompiledModel.GpuOptions(precision = CompiledModel.GpuOptions.Precision.FP16)
233
  }
234
  ```
235
 
 
237
  The graphs are too large for the APK; a script copies them into the app's files folder over adb:
238
 
239
  ```bash
240
+ hf download litert-community/Idol --exclude "262k/*" --local-dir ~/Downloads/Idol # the default form; drop --exclude to get 262k/ too
241
  hf download litert-community/DINOv3-ViT-H16plus-Idol-LiteRT --local-dir ~/Downloads/DINOv3-ViT-H16plus-Idol-LiteRT
242
  cd ~/Downloads/Idol/android
243
  chmod +x gradlew scripts/install_to_device.sh # the Hub does not keep the executable bit
244
  ./gradlew :app:installDebug
245
  IDOL_DIR=~/Downloads/Idol DINO_DIR=~/Downloads/DINOv3-ViT-H16plus-Idol-LiteRT ./scripts/install_to_device.sh
246
+ # the first release's form instead (download without --exclude first): IDOL_DIR=~/Downloads/Idol/262k, same DINO_DIR
247
  ```
248
 
249
  Background removal (BiRefNet on the CPU) needs about 2,670 MB of free memory for one call. Before compiling it, the
 
258
  | Background removal (BiRefNet) | `bir.tflite` | CPU | 1 |
259
  | DINOv3 ViT-H+/16 image encoder | `dino_0..3.tflite` (DINOv3 repo) | GPU | 4 |
260
  | FLUX.2 VAE encoder | `vae_0..3.tflite`, `vae_attn.tflite`, `vae_4.tflite` | GPU | 6 |
261
+ | Denoiser with the turbo LoRA | `den_ctx.tflite`, `den_in.tflite`, `den_joint_00.tflite`, `den_joint_mid.tflite` (blocks 1–22, weights from `den_joint_w.f32`), `den_joint_23.tflite` | GPU | 5 steps × 25, plus `den_ctx` once per LoRA phase |
262
  | Octree decoder | `oct.tflite` (5 signatures by row count) | GPU | 8 levels |
263
+ | Gaussian decoder | `gs_0.tflite`, `gs_mid.tflite` (graphs 1–6, weights from `gs_w.f32`), `gs_7.tflite` | GPU | 8 |
264
  | Octree sampling, Gaussian activation, PLY | host code | CPU | — |
265
 
266
+ `262k/` holds the first release's form: `den_joint_01..22.tflite` and `gs_1..6.tflite` in place of the two shared
267
+ graphs, the Gaussian decoder at 8,192 anchors, and its own `manifest.json` (GPU precision FP16 with fp32 accumulation);
268
+ the files with the same name in both folders are the same bytes, except `gs_0.tflite`, `gs_7.tflite` and
269
+ `manifest.json`.
270
+
271
+ `manifest.json` lists every graph with its signatures, accelerator and precision; the GPU graphs run with `FP16`
272
+ precision. `den_joint_mid` and `gs_mid` are one graph each for blocks of the same shape: before each call the app
273
+ copies that block's weights from the side file into the graph's weight inputs (`shared_blocks`, `block_weights` and
274
+ `first_weight_input` in `manifest.json`), so each is compiled once per photo.
275
 
276
  ## Notes
277
 
 
289
  Gaussian decoder's first block; the chunked form loses 0.6 %. Keep it if you re-export.
290
  - **Keep each GPU call short on the Galaxy S26.** In the feasibility run the VAE encoder ran as one graph, about 9 s
291
  per GPU call; the screen compositor stalled and the process was killed (signal 9) on its fifth call. Every stage here
292
+ is split into several graphs for that reason (with GPU fp16 with fp32 accumulation, every GPU call of the first form took 0.04–1.83 s on the Galaxy S26 (45 graphs, 49 signatures); this form calls the same blocks, or the Gaussian decoder's at a quarter of the anchors, at FP16).
293
  - **The denoiser did not compile for the NPU on the phone.** Compiled on the Galaxy S26 for its NPU (Qualcomm HTP;
294
  LiteRT 2.3.0, QAIRT 2.50), one denoiser block did not finish in 15 minutes at the default optimization level (O3)
295
  and ran out of memory after 28 s at `optimization_level=1` (optimize for prepare); the HTP compiler warned it has
android/app/src/main/java/com/idol/BlockWeights.kt ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ package com.idol
2
+
3
+ import java.io.File
4
+ import java.io.RandomAccessFile
5
+ import java.nio.ByteOrder
6
+ import java.nio.FloatBuffer
7
+ import java.nio.channels.FileChannel
8
+
9
+ /**
10
+ * The weights of the blocks one shared graph runs (the denoiser's middle joint blocks in `den_joint_mid`, the Gaussian
11
+ * decoder's middle graphs in `gs_mid`): a little-endian float32 side file, block after block, each block's weight
12
+ * inputs in input-name order (from args_<first_weight_input> on). The graph is compiled once per photo instead of once
13
+ * per block; before each call the block's weights are copied from the mapped file into the graph's input buffers.
14
+ */
15
+ class BlockWeights(file: File, private val spec: GraphSpec) : AutoCloseable {
16
+ private val raf = RandomAccessFile(file, "r")
17
+ private val floats: FloatBuffer
18
+
19
+ /** For each weight input: its index in the signature's input list, its offset in one block (floats), its size. */
20
+ private val slots: List<Triple<Int, Int, Int>>
21
+ private val perBlock: Int
22
+
23
+ /** One array per distinct input size, reused slot after slot (a write copies it into the input buffer). */
24
+ private val scratch: Map<Int, FloatArray>
25
+
26
+ init {
27
+ try {
28
+ val sig = spec.signature()
29
+ val indexOf = sig.inputs.withIndex().associate { it.value.name to it.index }
30
+ val names = sig.inputs.map { it.name }.filter { trailing(it) >= spec.firstWeightInput }
31
+ .sortedBy { trailing(it) }
32
+ var offset = 0
33
+ slots = names.map { n ->
34
+ val i = indexOf.getValue(n)
35
+ val size = sig.inputs[i].size
36
+ Triple(i, offset, size).also { offset += size }
37
+ }
38
+ perBlock = offset
39
+ val expect = perBlock.toLong() * spec.sharedBlocks.size * 4
40
+ require(file.length() == expect) { "${file.name}: ${file.length()} bytes, expected $expect" }
41
+ floats = raf.channel.map(FileChannel.MapMode.READ_ONLY, 0, file.length())
42
+ .order(ByteOrder.LITTLE_ENDIAN).asFloatBuffer()
43
+ scratch = slots.map { it.third }.distinct().associateWith { FloatArray(it) }
44
+ } catch (e: Throwable) {
45
+ raf.close()
46
+ throw e
47
+ }
48
+ }
49
+
50
+ /** Writes block [block]'s weights into [g]'s inputs (tagged: a block already in the buffers is not copied again). */
51
+ fun write(g: Graph, block: Int) {
52
+ val pos = spec.sharedBlocks.indexOf(block)
53
+ require(pos >= 0) { "block $block is not one of ${spec.name}'s shared blocks" }
54
+ val base = pos.toLong() * perBlock
55
+ for ((k, slot) in slots.withIndex()) {
56
+ val (index, offset, size) = slot
57
+ val a = scratch.getValue(size)
58
+ floats.position((base + offset).toInt())
59
+ floats.get(a, 0, size)
60
+ g.write(index, a, "w${block}_$k")
61
+ }
62
+ }
63
+
64
+ override fun close() {
65
+ raf.close()
66
+ }
67
+
68
+ private fun trailing(name: String): Int = name.substringAfterLast('_').toIntOrNull() ?: -1
69
+ }