1of2 commited on
Commit
7ffdb35
·
verified ·
1 Parent(s): df9d09d

OmniParser v2 Core ML bundle (icon_detect_v3 + Florence-2 captioner)

Browse files
README.md ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ library_name: coreml
4
+ pipeline_tag: object-detection
5
+ tags:
6
+ - coreml
7
+ - apple-neural-engine
8
+ - screen-parsing
9
+ - gui-agent
10
+ - ui-element-detection
11
+ - icon-captioning
12
+ - florence-2
13
+ - yolo
14
+ base_model:
15
+ - microsoft/OmniParser-v2.0
16
+ - microsoft/Florence-2-base
17
+ base_model_relation: quantized
18
+ ---
19
+
20
+ # OmniParser v2 for Core ML
21
+
22
+ Screen parsing for macOS on the Apple Neural Engine. Given a screenshot, the detector finds interactive
23
+ elements (buttons, icons, fields) and the captioner describes what each one does, so an agent can refer to
24
+ and act on the screen by element instead of by pixel.
25
+
26
+ This is Microsoft's OmniParser v2 converted to Core ML:
27
+
28
+ - **Detector:** `icon_detect_v3` (YOLOv9-E), the MIT-licensed detector checkpoint.
29
+ - **Captioner:** the OmniParser v2 fine-tune of Florence-2-base, split into an encoder and a decoder.
30
+
31
+ Every executable op in all three graphs is planned for the Neural Engine (zero CPU or GPU fallbacks).
32
+
33
+ ## Requirements
34
+
35
+ - macOS 15 or later on Apple Silicon
36
+ - Core ML must be able to write its user cache; the first load compiles the packages
37
+
38
+ ## Download
39
+
40
+ ```bash
41
+ hf download 1of2/omniparser-v2-coreml --local-dir omniparser-v2-coreml
42
+ cd omniparser-v2-coreml && shasum -a 256 -c SHA256SUMS
43
+ ```
44
+
45
+ ## Contents
46
+
47
+ | Path | Purpose | Size |
48
+ | --- | --- | --- |
49
+ | `models/detector/IconDetectV3.mlpackage` | element detector, two functions | 117 MB |
50
+ | `models/caption/FlorenceEncoderContextEmbeds.mlpackage` | caption encoder (DaViT vision + BART encoder) | 270 MB |
51
+ | `models/caption/FlorenceDecoderPrefixEmbeds.mlpackage` | caption decoder | 192 MB |
52
+ | `models/caption/shared_embedding_fp16.npy` | token embedding table [51289, 768] fp16; memory-map read-only | 79 MB |
53
+ | `models/caption/tokenizer/` | BART tokenizer and Florence-2 processor config | 2.5 MB |
54
+ | `runtime_config.json` | every shape, threshold and generation setting below, machine-readable | |
55
+ | `models/*/LICENSE`, `models/detector/provenance.json` | licences and detector source hash | |
56
+ | `SHA256SUMS` | checksums for every file | |
57
+
58
+ ## Detector
59
+
60
+ `IconDetectV3.mlpackage` is a multifunction package:
61
+
62
+ | Function | Input `image` | Output `predictions` |
63
+ | --- | --- | --- |
64
+ | `detect_640` (default) | fp16 [1, 3, 640, 640] | [1, 5, 8400] |
65
+ | `detect_1280` | fp16 [1, 3, 1280, 1280] | [1, 5, 33600] |
66
+
67
+ Preprocessing: RGB in 0..1, letterboxed to a centred square with pad value 114, resampled with Lanczos.
68
+ Each anchor carries one class score and a box in grid units (`[1, 5, anchors]`).
69
+
70
+ Postprocessing: confidence threshold 0.05, non-maximum suppression at IoU 0.1, at most 300 detections,
71
+ then boxes overlapping by more than IoU 0.7 are merged so each element appears once. Boxes map back to the
72
+ original image by undoing the letterbox.
73
+
74
+ Use `detect_1280` for dense or high-resolution screens; `detect_640` is faster and enough for most windows.
75
+
76
+ ## Captioner
77
+
78
+ Each detected element is cropped, resized to 64x64, then processed like Florence-2-base input: resized to
79
+ 768x768, rescaled by 1/255 and normalised with ImageNet mean `[0.485, 0.456, 0.406]` and std
80
+ `[0.229, 0.224, 0.225]`.
81
+
82
+ | Graph | Inputs | Output |
83
+ | --- | --- | --- |
84
+ | Encoder | `pixel_values` fp16 [1, 3, 768, 768], `prompt_embeds` fp16 [1, 8, 768] | `encoder_hidden_states` [1, 585, 768] |
85
+ | Decoder | `decoder_inputs_embeds` fp16 [1, 20, 768], `encoder_hidden_states` [1, 585, 768] | `logits` [1, 20, 51289] |
86
+
87
+ The prompt is `<CAPTION>`, tokenised to `[0, 2264, 473, 5, 2274, 6190, 116, 2]`; look its ids up in
88
+ `shared_embedding_fp16.npy` to form `prompt_embeds`. Run the encoder once per crop.
89
+
90
+ Generation is greedy over a fixed 20-token decoder prefix: start token 2, forced BOS 0, EOS and forced EOS 2,
91
+ pad 1, no repeated 3-grams, at most 20 new tokens. At each step embed the tokens so far into the padded
92
+ prefix, run the decoder, and take the argmax at the current position after applying those constraints.
93
+ Decode with special tokens skipped and whitespace trimmed.
94
+
95
+ ## Faithfulness
96
+
97
+ The conversion targets parity with the upstream PyTorch pipeline at three points: the detector's input
98
+ pixels, the decoded boxes, and the caption text. fp16 weights and activations can still move a borderline
99
+ detection or change a caption token in rare cases.
100
+
101
+ ## Limitations
102
+
103
+ - Captions are short functional descriptions ("settings", "close window"), not full sentences.
104
+ - Text on screen is not read by these models; pair them with an OCR engine for labels and content.
105
+ - Trained mostly on desktop and web UIs; unusual custom-drawn interfaces detect less reliably.
106
+
107
+ ## License and attribution
108
+
109
+ Released under the MIT License.
110
+
111
+ - Detector: [`microsoft/OmniParser-v2.0`](https://huggingface.co/microsoft/OmniParser-v2.0)
112
+ `icon_detect_v3/model.pt` at revision `f55d0750e5b94db2125ef0b45b0fa4a85ddc59b4`
113
+ (sha256 `11c6cbb77f22569fab22d86c76407a83ec81ab89dbfe28279854822d6e3fb00c`), MIT. See `models/detector/LICENSE`.
114
+ - Captioner: `microsoft/OmniParser-v2.0` `icon_caption` at the same revision, fine-tuned from
115
+ [`microsoft/Florence-2-base`](https://huggingface.co/microsoft/Florence-2-base), MIT. See `models/caption/LICENSE`.
116
+
117
+ ```bibtex
118
+ @misc{lu2024omniparserpurevisionbased,
119
+ title={OmniParser for Pure Vision Based GUI Agent},
120
+ author={Yadong Lu and Jianwei Yang and Yelong Shen and Ahmed Awadallah},
121
+ year={2024},
122
+ eprint={2408.00203},
123
+ archivePrefix={arXiv},
124
+ }
125
+ ```
SHA256SUMS ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ d6c4232f4e6be156224aa7a14e060d7163df85c050758f22b2d78b76b2a66be5 ./models/caption/FlorenceDecoderPrefixEmbeds.mlpackage/Data/com.apple.CoreML/model.mlmodel
2
+ a6df8e1ab247880d83d5647aca2994d251b62a6723e6f7986293b5e7787bc6d2 ./models/caption/FlorenceDecoderPrefixEmbeds.mlpackage/Data/com.apple.CoreML/weights/weight.bin
3
+ 2070b35b2e4780738b53201173ad493d72d3d5a4eae4d6e21c18ecf5645f0682 ./models/caption/FlorenceDecoderPrefixEmbeds.mlpackage/Manifest.json
4
+ ca2d0d3086bfc983932089db379dc52257cbd3bb49f11170a7f41b2932129b8f ./models/caption/FlorenceEncoderContextEmbeds.mlpackage/Data/com.apple.CoreML/model.mlmodel
5
+ 8d9669550b24005f5e9df03440c316a2f837fa062e9e6bc576e0c47ec7b2e7c3 ./models/caption/FlorenceEncoderContextEmbeds.mlpackage/Data/com.apple.CoreML/weights/weight.bin
6
+ 6fc454f70a3cea67fa53c466525cbdfd10fe148451454cf5a173f0a7d86e08e7 ./models/caption/FlorenceEncoderContextEmbeds.mlpackage/Manifest.json
7
+ d9a1b1e30d633d5732ea18e3cba9538d293ebc53e1a9e4e96ab739e0c5c4f1cb ./models/caption/LICENSE
8
+ 00ded3f65a0d242bcae37c22fd1badbd0eae07a912b603a895841aea962da3fc ./models/caption/shared_embedding_fp16.npy
9
+ 2f5921bbc53c7cc04251e1027b45b1cec726276be6db23d1bb40641bfbe2cf29 ./models/caption/tokenizer/preprocessor_config.json
10
+ 847bbeab6174d66a88898f729d52fa8d355fafe1bea101cf960dd404581df70e ./models/caption/tokenizer/tokenizer.json
11
+ 79ffcf43af8ebda99d165f61d243180da2e2639952e41e71e11611c18770489c ./models/caption/tokenizer/tokenizer_config.json
12
+ 394fdc63c71aabe0a9b97117f5d62fb5fcc4d59b2b3ea929a3929e6a53217b3c ./models/caption/tokenizer/vocab.json
13
+ 82f6d36d2188433034a17c434d24257ce8b40f863f839584fbe586b71148bf98 ./models/detector/IconDetectV3.mlpackage/Data/com.apple.CoreML/model.mlmodel
14
+ 745fab6261135d6300362219e771b973fc968a61f14e476cd58ab97dd834b0d7 ./models/detector/IconDetectV3.mlpackage/Data/com.apple.CoreML/weights/weight.bin
15
+ 0d1b1d324c247745e11d8f761a7ab4d612aeae60290e36f02c11c62e7ce8487b ./models/detector/IconDetectV3.mlpackage/Manifest.json
16
+ 646f8936b8ddcd14e13e578ff6857e368780b0d1a4f6066bee89211923a373e2 ./models/detector/LICENSE
17
+ 215bd3b5da42496ac5fdd20cf8dcde9cd0ab266236ddfb267e066b9382fc6529 ./models/detector/provenance.json
18
+ a4f3d58e5758a39d77b7d134ba8e750aa6df4cd9321bfe85ea23e41ff8dcffba ./runtime_config.json
models/caption/FlorenceDecoderPrefixEmbeds.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d6c4232f4e6be156224aa7a14e060d7163df85c050758f22b2d78b76b2a66be5
3
+ size 126216
models/caption/FlorenceDecoderPrefixEmbeds.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6df8e1ab247880d83d5647aca2994d251b62a6723e6f7986293b5e7787bc6d2
3
+ size 192348850
models/caption/FlorenceDecoderPrefixEmbeds.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "AF61D9FD-1C1E-4F8E-BC3E-E79592088676": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Weights",
7
+ "name": "weights",
8
+ "path": "com.apple.CoreML/weights"
9
+ },
10
+ "BB144488-CE48-4528-9018-061781F782CD": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Specification",
13
+ "name": "model.mlmodel",
14
+ "path": "com.apple.CoreML/model.mlmodel"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "BB144488-CE48-4528-9018-061781F782CD"
18
+ }
models/caption/FlorenceEncoderContextEmbeds.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ca2d0d3086bfc983932089db379dc52257cbd3bb49f11170a7f41b2932129b8f
3
+ size 506345
models/caption/FlorenceEncoderContextEmbeds.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8d9669550b24005f5e9df03440c316a2f837fa062e9e6bc576e0c47ec7b2e7c3
3
+ size 269483648
models/caption/FlorenceEncoderContextEmbeds.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "0665D1E6-F427-4A7A-9480-0403FF991702": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "797EC9EA-09AE-4E04-B426-768CC64A1561": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "0665D1E6-F427-4A7A-9480-0403FF991702"
18
+ }
models/caption/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
models/caption/shared_embedding_fp16.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00ded3f65a0d242bcae37c22fd1badbd0eae07a912b603a895841aea962da3fc
3
+ size 78780032
models/caption/tokenizer/preprocessor_config.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoProcessor": "processing_florence2.Florence2Processor"
4
+ },
5
+ "_valid_processor_keys": [
6
+ "images",
7
+ "do_resize",
8
+ "size",
9
+ "resample",
10
+ "do_rescale",
11
+ "rescale_factor",
12
+ "do_normalize",
13
+ "image_mean",
14
+ "image_std",
15
+ "return_tensors",
16
+ "data_format",
17
+ "input_data_format",
18
+ "do_convert_rgb"
19
+ ],
20
+ "do_convert_rgb": null,
21
+ "do_normalize": true,
22
+ "do_rescale": true,
23
+ "do_resize": true,
24
+ "do_center_crop": false,
25
+ "image_processor_type": "CLIPImageProcessor",
26
+ "image_seq_length": 577,
27
+ "image_mean": [0.485, 0.456, 0.406],
28
+ "image_std": [0.229, 0.224, 0.225],
29
+ "processor_class": "Florence2Processor",
30
+ "resample": 3,
31
+ "size": {
32
+ "height": 768,
33
+ "width":768
34
+ },
35
+ "crop_size": {
36
+ "height": 768,
37
+ "width": 768
38
+ }
39
+ }
models/caption/tokenizer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
models/caption/tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "model_max_length": 1024
3
+ }
4
+
models/caption/tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
models/detector/IconDetectV3.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:82f6d36d2188433034a17c434d24257ce8b40f863f839584fbe586b71148bf98
3
+ size 1031126
models/detector/IconDetectV3.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:745fab6261135d6300362219e771b973fc968a61f14e476cd58ab97dd834b0d7
3
+ size 116045184
models/detector/IconDetectV3.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "60BDEF3F-0828-435D-91C0-798999E28E7F": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "D7E03763-6377-4D2B-A56A-90648B5C5182": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "60BDEF3F-0828-435D-91C0-798999E28E7F"
18
+ }
models/detector/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
models/detector/provenance.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "repo_id": "microsoft/OmniParser-v2.0",
3
+ "revision": "f55d0750e5b94db2125ef0b45b0fa4a85ddc59b4",
4
+ "files": {
5
+ "icon_detect_v3/model.pt": {
6
+ "size": 281182680,
7
+ "sha256": "11c6cbb77f22569fab22d86c76407a83ec81ab89dbfe28279854822d6e3fb00c"
8
+ },
9
+ "icon_detect_v3/LICENSE": {
10
+ "size": 1073,
11
+ "sha256": "646f8936b8ddcd14e13e578ff6857e368780b0d1a4f6066bee89211923a373e2"
12
+ }
13
+ }
14
+ }
runtime_config.json ADDED
@@ -0,0 +1,314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "app_runtime_metrics": {},
3
+ "bundle_id": "local_unverified_IconDetectV3",
4
+ "caption_boundary_tradeoff": {
5
+ "available": false
6
+ },
7
+ "caption_runtime": {
8
+ "crop_size_before_processor": [
9
+ 64,
10
+ 64
11
+ ],
12
+ "generation": {
13
+ "decode": {
14
+ "skip_special_tokens": true,
15
+ "trim_whitespace": true
16
+ },
17
+ "decoder_prefix_length": 20,
18
+ "decoder_start_token_id": 2,
19
+ "eos_token_id": 2,
20
+ "forced_bos_token_id": 0,
21
+ "forced_eos_token_id": 2,
22
+ "max_new_tokens": 20,
23
+ "no_repeat_ngram_size": 3,
24
+ "pad_prefix": true,
25
+ "pad_token_id": 1,
26
+ "selection": "greedy_argmax_after_generation_constraints"
27
+ },
28
+ "image_preprocessing": {
29
+ "do_convert_rgb": null,
30
+ "do_normalize": true,
31
+ "do_rescale": true,
32
+ "do_resize": true,
33
+ "image_mean": [
34
+ 0.485,
35
+ 0.456,
36
+ 0.406
37
+ ],
38
+ "image_std": [
39
+ 0.229,
40
+ 0.224,
41
+ 0.225
42
+ ],
43
+ "rescale_factor": 0.00392156862745098,
44
+ "size": {
45
+ "height": 768,
46
+ "width": 768
47
+ }
48
+ },
49
+ "preprocessor_config": "models/caption/tokenizer/preprocessor_config.json",
50
+ "processor_source_model_id": "microsoft/Florence-2-base",
51
+ "prompt": {
52
+ "attention_mask": [
53
+ 1,
54
+ 1,
55
+ 1,
56
+ 1,
57
+ 1,
58
+ 1,
59
+ 1,
60
+ 1
61
+ ],
62
+ "input_ids": [
63
+ 0,
64
+ 2264,
65
+ 473,
66
+ 5,
67
+ 2274,
68
+ 6190,
69
+ 116,
70
+ 2
71
+ ],
72
+ "pixel_values_dtype": "float32",
73
+ "pixel_values_shape": [
74
+ 1,
75
+ 3,
76
+ 768,
77
+ 768
78
+ ],
79
+ "prompt": "<CAPTION>"
80
+ },
81
+ "tokenizer_config": "models/caption/tokenizer/tokenizer_config.json",
82
+ "tokenizer_json": "models/caption/tokenizer/tokenizer.json",
83
+ "vocab_json": "models/caption/tokenizer/vocab.json"
84
+ },
85
+ "compute_units": "cpu-and-ne",
86
+ "detector_postprocessing": {
87
+ "confidence_threshold": 0.05,
88
+ "max_detections": 300,
89
+ "nms_iou_threshold": 0.1,
90
+ "remove_overlap_iou_threshold": 0.7
91
+ },
92
+ "energy": {},
93
+ "facade_runtime_metrics": {},
94
+ "hard_ane_blocker": {
95
+ "ane_dominant_bundle": true,
96
+ "available": true,
97
+ "evidence_scope": "current_copied_package_hashes",
98
+ "expected_blocker": {
99
+ "allowed_non_neural_engine_preferred_count": 0,
100
+ "component": "caption_encoder"
101
+ },
102
+ "hard_ane_shippable": true,
103
+ "observed_blocker": {
104
+ "non_neural_engine_preferred_count": 0,
105
+ "operation": null
106
+ },
107
+ "passed": true,
108
+ "source": "manifest.placement_evidence",
109
+ "source_sha256": "8b29c6f27756f1d91d426ab286b9dc88c9ea71919840c90c7eb9895dc2ae2691",
110
+ "state": "hard_ane_resolved"
111
+ },
112
+ "minimum_macos": "15.0",
113
+ "models": {
114
+ "caption_decoder": {
115
+ "inputs": {
116
+ "decoder_inputs_embeds": {
117
+ "dtype": "float16",
118
+ "shape": [
119
+ 1,
120
+ 20,
121
+ 768
122
+ ]
123
+ },
124
+ "encoder_hidden_states": {
125
+ "dtype": "float16",
126
+ "shape": [
127
+ 1,
128
+ 585,
129
+ 768
130
+ ]
131
+ }
132
+ },
133
+ "output": {
134
+ "name": "logits",
135
+ "shape": [
136
+ 1,
137
+ 20,
138
+ 51289
139
+ ]
140
+ },
141
+ "path": "models/caption/FlorenceDecoderPrefixEmbeds.mlpackage",
142
+ "placement": {
143
+ "first_non_neural_engine_preferred": null,
144
+ "hard_ane": true,
145
+ "non_neural_engine_preferred_count": 0,
146
+ "planned_operation_count": 315
147
+ }
148
+ },
149
+ "caption_encoder": {
150
+ "inputs": {
151
+ "pixel_values": {
152
+ "dtype": "float16",
153
+ "layout": "NCHW",
154
+ "shape": [
155
+ 1,
156
+ 3,
157
+ 768,
158
+ 768
159
+ ]
160
+ },
161
+ "prompt_embeds": {
162
+ "dtype": "float16",
163
+ "shape": [
164
+ 1,
165
+ 8,
166
+ 768
167
+ ]
168
+ }
169
+ },
170
+ "output": {
171
+ "dtype": "float16",
172
+ "name": "encoder_hidden_states",
173
+ "shape": [
174
+ 1,
175
+ 585,
176
+ 768
177
+ ]
178
+ },
179
+ "path": "models/caption/FlorenceEncoderContextEmbeds.mlpackage",
180
+ "placement": {
181
+ "first_non_neural_engine_preferred": null,
182
+ "hard_ane": true,
183
+ "non_neural_engine_preferred_count": 0,
184
+ "planned_operation_count": 1042
185
+ }
186
+ },
187
+ "caption_shared_embedding": {
188
+ "dtype": "float16",
189
+ "path": "models/caption/shared_embedding_fp16.npy",
190
+ "runtime_policy": "memory_map_read_only",
191
+ "shape": [
192
+ 51289,
193
+ 768
194
+ ]
195
+ },
196
+ "detector": {
197
+ "default_function": "detect_640",
198
+ "family": "icon_detect_v3",
199
+ "functions": [
200
+ {
201
+ "image_size": 640,
202
+ "input": {
203
+ "dtype": "float16",
204
+ "layout": "NCHW",
205
+ "name": "image",
206
+ "shape": [
207
+ 1,
208
+ 3,
209
+ 640,
210
+ 640
211
+ ]
212
+ },
213
+ "name": "detect_640",
214
+ "output": {
215
+ "name": "predictions",
216
+ "shape": [
217
+ 1,
218
+ 5,
219
+ 8400
220
+ ]
221
+ }
222
+ },
223
+ {
224
+ "image_size": 1280,
225
+ "input": {
226
+ "dtype": "float16",
227
+ "layout": "NCHW",
228
+ "name": "image",
229
+ "shape": [
230
+ 1,
231
+ 3,
232
+ 1280,
233
+ 1280
234
+ ]
235
+ },
236
+ "name": "detect_1280",
237
+ "output": {
238
+ "name": "predictions",
239
+ "shape": [
240
+ 1,
241
+ 5,
242
+ 33600
243
+ ]
244
+ }
245
+ }
246
+ ],
247
+ "license": "MIT",
248
+ "output_layout": "[1, 5, anchors]: class logit, then l, t, r, b in grid units",
249
+ "path": "models/detector/IconDetectV3.mlpackage",
250
+ "placement": {
251
+ "first_non_neural_engine_preferred": null,
252
+ "hard_ane": true,
253
+ "non_neural_engine_preferred_count": 0,
254
+ "planned_operation_count": 1594
255
+ },
256
+ "preprocessing": {
257
+ "color_space": "RGB",
258
+ "letterbox": "square_center_floor",
259
+ "pad_value": 114,
260
+ "resample": "pillow_lanczos",
261
+ "value_range": "0..1"
262
+ },
263
+ "source_revision": "f55d0750e5b94db2125ef0b45b0fa4a85ddc59b4",
264
+ "source_sha256": "11c6cbb77f22569fab22d86c76407a83ec81ab89dbfe28279854822d6e3fb00c",
265
+ "strides": [
266
+ 8,
267
+ 16,
268
+ 32
269
+ ]
270
+ }
271
+ },
272
+ "policy": {
273
+ "ane_as_much_as_possible_without_behavior_change": "unverified",
274
+ "ane_dominant_faithful_candidate": false,
275
+ "blocker": {
276
+ "component": null,
277
+ "interpretation": "fresh placement evidence reports zero non-ANE executable ops",
278
+ "operation": null
279
+ },
280
+ "caption_encoder_allowed_cpu_fallbacks": 0,
281
+ "hard_ane_shippable": true,
282
+ "literal_hard_ane": "satisfied"
283
+ },
284
+ "runtime_cache": {
285
+ "available": false,
286
+ "failure_reason": "missing report",
287
+ "source": "artifacts/release/coreml_runtime_cache_report.json"
288
+ },
289
+ "runtime_metrics": {},
290
+ "schema_version": 3,
291
+ "storage_footprint": {
292
+ "available": true,
293
+ "caption_decoder_bytes": 192475683,
294
+ "caption_encoder_bytes": 269990610,
295
+ "caption_model_bytes": 541246325,
296
+ "content_bytes_excluding_runtime_config": 660781322,
297
+ "detector_bytes": 117076927,
298
+ "model_bytes": 658323252,
299
+ "policy": {
300
+ "compiled_mlmodelc_in_bundle_allowed": false,
301
+ "max_caption_decoder_bytes": 251658240,
302
+ "max_caption_encoder_bytes": 335544320,
303
+ "max_detector_bytes": 83886080,
304
+ "max_model_bytes": 681574400,
305
+ "max_shared_embedding_bytes": 100663296,
306
+ "max_tokenizer_bytes": 4194304,
307
+ "ship_mlpackage_only": true
308
+ },
309
+ "runtime_config_self_size_excluded": true,
310
+ "shared_embedding_bytes": 78780032,
311
+ "tokenizer_bytes": 2456587
312
+ },
313
+ "target": "macos"
314
+ }