ChartGalaxyPP commited on
Commit
e3af8b3
·
verified ·
1 Parent(s): 9044cd7

Rename model to Image2SceneGraph

Browse files
.gitattributes CHANGED
@@ -1,3 +1,3 @@
1
  *.safetensors filter=lfs diff=lfs merge=lfs -text
2
  tokenizer.json filter=lfs diff=lfs merge=lfs -text
3
- assets/image2json-results.png filter=lfs diff=lfs merge=lfs -text
 
1
  *.safetensors filter=lfs diff=lfs merge=lfs -text
2
  tokenizer.json filter=lfs diff=lfs merge=lfs -text
3
+ assets/image2scenegraph-results.png filter=lfs diff=lfs merge=lfs -text
INFERENCE.md CHANGED
@@ -14,7 +14,7 @@ import os
14
  from pathlib import Path
15
 
16
  def main():
17
- model_dir = Path("./image2json-model").resolve()
18
  image_path = Path("./example.png")
19
  spec = json.loads((model_dir / "inference_spec.json").read_text())
20
  for key, value in spec["environment"].items():
 
14
  from pathlib import Path
15
 
16
  def main():
17
+ model_dir = Path("./image2scenegraph-model").resolve()
18
  image_path = Path("./example.png")
19
  spec = json.loads((model_dir / "inference_spec.json").read_text())
20
  for key, value in spec["environment"].items():
NOTICE.md CHANGED
@@ -1,9 +1,9 @@
1
  # License and attribution
2
 
3
- ChartGalaxy++ Image2JSON is a fine-tuned model in the Qwen3.5-4B family. The model weights were modified through supervised fine-tuning for chart scene graph prediction.
4
 
5
  The ChartGalaxy++ fine-tuning contributions and newly written documentation are provided under the [Creative Commons Attribution-NonCommercial 4.0 International license](https://creativecommons.org/licenses/by-nc/4.0/). The complete license text is included as [LICENSE](LICENSE).
6
 
7
  Qwen's original model and supporting materials are credited to the **Qwen Team**. Retained upstream materials, including tokenizer and configuration assets, retain their existing license. Qwen publishes its [Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B) and [Qwen3.5-4B-Base](https://huggingface.co/Qwen/Qwen3.5-4B-Base) releases under Apache-2.0. A copy of the upstream license is included as [LICENSE-QWEN-APACHE-2.0](LICENSE-QWEN-APACHE-2.0). The CC BY-NC notice does not replace the license of independently retained upstream materials.
8
 
9
- Attribution for this fine-tuned artifact: **ChartGalaxy++ Image2JSON, ChartGalaxyPP**. Retain the license and attribution notices and identify further changes when redistributing modified versions.
 
1
  # License and attribution
2
 
3
+ ChartGalaxy++ Image2SceneGraph is a fine-tuned model in the Qwen3.5-4B family. The model weights were modified through supervised fine-tuning for chart scene graph prediction.
4
 
5
  The ChartGalaxy++ fine-tuning contributions and newly written documentation are provided under the [Creative Commons Attribution-NonCommercial 4.0 International license](https://creativecommons.org/licenses/by-nc/4.0/). The complete license text is included as [LICENSE](LICENSE).
6
 
7
  Qwen's original model and supporting materials are credited to the **Qwen Team**. Retained upstream materials, including tokenizer and configuration assets, retain their existing license. Qwen publishes its [Qwen3.5-4B](https://huggingface.co/Qwen/Qwen3.5-4B) and [Qwen3.5-4B-Base](https://huggingface.co/Qwen/Qwen3.5-4B-Base) releases under Apache-2.0. A copy of the upstream license is included as [LICENSE-QWEN-APACHE-2.0](LICENSE-QWEN-APACHE-2.0). The CC BY-NC notice does not replace the license of independently retained upstream materials.
8
 
9
+ Attribution for this fine-tuned artifact: **ChartGalaxy++ Image2SceneGraph, ChartGalaxyPP**. Retain the license and attribution notices and identify further changes when redistributing modified versions.
OUTPUT_FORMAT.md CHANGED
@@ -1,4 +1,4 @@
1
- # Image2JSON output format
2
 
3
  The model emits a JSON object with `high_level_description`, `style_description`, and `elements`. `elements.background` describes the background, and `elements.layout` is a flat list of element and group nodes. A node's `parent` refers to another node label or the implicit `ROOT`.
4
 
 
1
+ # Image2SceneGraph output format
2
 
3
  The model emits a JSON object with `high_level_description`, `style_description`, and `elements`. `elements.background` describes the background, and `elements.layout` is a flat list of element and group nodes. A node's `parent` refers to another node label or the implicit `ROOT`.
4
 
README.md CHANGED
@@ -10,21 +10,21 @@ tags:
10
  - chart
11
  - infographic
12
  - scene-graph
13
- - image2json
14
  - qwen3_5
15
  ---
16
 
17
- <h1 align="center">ChartGalaxy++ · Image2JSON</h1>
18
 
19
  <p align="center"><strong>From infographic images to structured chart representations</strong></p>
20
 
21
- <p align="center"><a href="https://huggingface.co/datasets/ChartGalaxyPP/ChartGalaxyPlusPlus">Dataset</a> &nbsp; · &nbsp; <a href="https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus">Project</a> &nbsp; · &nbsp; <a href="https://huggingface.co/ChartGalaxyPP/ChartGalaxyPlusPlus-Image2JSON/blob/main/INFERENCE.md">Run inference</a> &nbsp; · &nbsp; <a href="https://huggingface.co/ChartGalaxyPP/ChartGalaxyPlusPlus-Image2JSON/blob/main/OUTPUT_FORMAT.md">Output format</a></p>
22
 
23
- **Image2JSON identifies chart elements and how they belong together.** Fine-tuned from the **Qwen3.5-4B family** on ChartGalaxy++, it predicts visual elements, recognized text, bounding boxes, appearance attributes, semantic groups, and parent links as structured JSON.
24
 
25
- ![Qualitative comparisons from the paper showing element localization and grouping by Image2JSON and GPT-6 Astra](assets/image2json-results.png)
26
 
27
- *Paper examples: separating nearby visual elements and placing marks in the correct semantic group. [Enlarge](assets/image2json-results.png)*
28
 
29
  ## Results
30
 
@@ -33,7 +33,7 @@ Evaluation on **1,000 infographic charts: 500 real and 500 synthetic**.
33
  | Model | Node F1 | Hierarchy F1 | Spatial F1 |
34
  | --- | ---: | ---: | ---: |
35
  | GPT-6 Astra | 76.0% | 50.3% | 72.5% |
36
- | **Image2JSON (ours)** | **89.4%** | **85.1%** | **88.0%** |
37
 
38
  [Full comparison with 10 baselines](https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus/blob/main/applications/image_to_scene_graph/paper_table.json) · [Metric definitions](https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus/blob/main/applications/image_to_scene_graph/metric_definitions.json) · [Saved predictions and scores](https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus/releases/download/v1.0/image-to-scene-graph.tar.gz)
39
 
@@ -44,9 +44,9 @@ These are the paper's scores, including its output-recovery and graph-evaluation
44
  ```python
45
  from huggingface_hub import HfApi, snapshot_download
46
 
47
- repo = "ChartGalaxyPP/ChartGalaxyPlusPlus-Image2JSON"
48
  revision = HfApi().model_info(repo).sha
49
- snapshot_download(repo, revision=revision, local_dir="image2json-model")
50
  ```
51
 
52
  Follow **[the complete single-image inference example](INFERENCE.md)** for the prompt, image preprocessing, and generation settings. Keep the weight shards, tokenizer, processor, and chat template together. The tested runtime uses Python 3.11, vLLM 0.20.2, Transformers 5.12.1, and PyTorch 2.11.0 / CUDA 13.0 on one RTX PRO 6000 GPU; exact dependencies are in [requirements-smoke.txt](requirements-smoke.txt).
 
10
  - chart
11
  - infographic
12
  - scene-graph
13
+ - image2scenegraph
14
  - qwen3_5
15
  ---
16
 
17
+ <h1 align="center">ChartGalaxy++ · Image2SceneGraph</h1>
18
 
19
  <p align="center"><strong>From infographic images to structured chart representations</strong></p>
20
 
21
+ <p align="center"><a href="https://huggingface.co/datasets/ChartGalaxyPP/ChartGalaxyPlusPlus">Dataset</a> &nbsp; · &nbsp; <a href="https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus">Project</a> &nbsp; · &nbsp; <a href="https://huggingface.co/ChartGalaxyPP/ChartGalaxyPlusPlus-Image2SceneGraph/blob/main/INFERENCE.md">Run inference</a> &nbsp; · &nbsp; <a href="https://huggingface.co/ChartGalaxyPP/ChartGalaxyPlusPlus-Image2SceneGraph/blob/main/OUTPUT_FORMAT.md">Output format</a></p>
22
 
23
+ **Image2SceneGraph identifies chart elements and how they belong together.** Fine-tuned from the **Qwen3.5-4B family** on ChartGalaxy++, it predicts visual elements, recognized text, bounding boxes, appearance attributes, semantic groups, and parent links as structured JSON.
24
 
25
+ ![Qualitative comparisons from the paper showing element localization and grouping by Image2SceneGraph and GPT-6 Astra](assets/image2scenegraph-results.png)
26
 
27
+ *Paper examples: separating nearby visual elements and placing marks in the correct semantic group. [Enlarge](assets/image2scenegraph-results.png)*
28
 
29
  ## Results
30
 
 
33
  | Model | Node F1 | Hierarchy F1 | Spatial F1 |
34
  | --- | ---: | ---: | ---: |
35
  | GPT-6 Astra | 76.0% | 50.3% | 72.5% |
36
+ | **Image2SceneGraph (ours)** | **89.4%** | **85.1%** | **88.0%** |
37
 
38
  [Full comparison with 10 baselines](https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus/blob/main/applications/image_to_scene_graph/paper_table.json) · [Metric definitions](https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus/blob/main/applications/image_to_scene_graph/metric_definitions.json) · [Saved predictions and scores](https://github.com/ChartGalaxyPP/ChartGalaxyPlusPlus/releases/download/v1.0/image-to-scene-graph.tar.gz)
39
 
 
44
  ```python
45
  from huggingface_hub import HfApi, snapshot_download
46
 
47
+ repo = "ChartGalaxyPP/ChartGalaxyPlusPlus-Image2SceneGraph"
48
  revision = HfApi().model_info(repo).sha
49
+ snapshot_download(repo, revision=revision, local_dir="image2scenegraph-model")
50
  ```
51
 
52
  Follow **[the complete single-image inference example](INFERENCE.md)** for the prompt, image preprocessing, and generation settings. Keep the weight shards, tokenizer, processor, and chat template together. The tested runtime uses Python 3.11, vLLM 0.20.2, Transformers 5.12.1, and PyTorch 2.11.0 / CUDA 13.0 on one RTX PRO 6000 GPU; exact dependencies are in [requirements-smoke.txt](requirements-smoke.txt).
SHA256SUMS CHANGED
@@ -1,11 +1,11 @@
1
- e628e0e80ea1755f499542c03a1b03073f271d22dd7357291eb94f6c37bde0b6 .gitattributes
2
- 6e809ac2dda880040b6a943979b959f08b5be61761623153845c38eba451ad86 INFERENCE.md
3
  cc97a2c4ff7723a1f25179dc7c18f676fa84191bbb36ea7d0061acaf3c102559 LICENSE
4
  50cbab8a892c5f2993b8c7351a99182507472def3b1374558308605d99b86b32 LICENSE-QWEN-APACHE-2.0
5
- 806ea75508761d8cb9515bac61c05be851967b5db755f2223f51a6306d9a1d0d NOTICE.md
6
- 7eedb3f5f62834ed0fcdaa889101085b24e5864e13d25c9aecdf7c513d05f951 OUTPUT_FORMAT.md
7
- dfc5472cb49f0022c6bb4fcb09282330b4cc57bf73c3f79b063c8db21f5a1758 README.md
8
- 30f4be461845fd9c11ac640b5e1ea04b3c72f37523fd5888b353104b5a77cd4a assets/image2json-results.png
9
  a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 chat_template.jinja
10
  881208c0f3f48d8fe920b4caf1bac23b4e2d351557bf2c1314b2040ceb4c6bba config.json
11
  a50023c63e657eff70e2cfdd42f384eedd085ffa34898aa6d7e34cb16618bbc7 inference_spec.json
@@ -14,10 +14,10 @@ a50023c63e657eff70e2cfdd42f384eedd085ffa34898aa6d7e34cb16618bbc7 inference_spec
14
  ad380c647e34236cf9f313ff673781e2fca1aaff85af6117727762224f019993 model.safetensors.index.json
15
  27225450ac9c6529872ee1924fcb0962ff5634834f817040f444118116f4e516 preprocessor_config.json
16
  d89ef49ce9cd37fbf510158e13c1ef063d9286411c1ec9049932dbe0487143b1 processor_config.json
17
- 7f1e5a4f51fceffe9b0d9c4b42ad6d2019f8c52c928348d5419dd49f5f459664 release_metadata.json
18
  3906fb04e65a3815d7c4c4248b8ac0e8bfdacbc722ba44491be344ce225ec036 requirements-smoke.txt
19
  2510f614f11d9df4393af8822b23386ea4a0ef5323365eb82096d8c3d8947da6 smoke/prediction.json
20
  bceee5f5cd9d33d5e9ead0095dfdfa572cbca752c9e35ee696dfcf4b5aad4334 smoke/prediction.raw.txt
21
- bf1046d4e0b4d71c825ce34e0a238cbd509d076a22adbd2ed492aff7c6e793f2 smoke/validation.json
22
  06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523 tokenizer.json
23
  792fa3f0cb88b111e54ef3134c873531008c4df471d108da17903426e308aa7b tokenizer_config.json
 
1
+ abe4ad1fe803bb42244df4c7631730d0adf79d110764b357b5f0eb16a161ae67 .gitattributes
2
+ edc8cbcf5feea8a86eeb4001cec3609b9788e1b26d7d3cc52d72173849335544 INFERENCE.md
3
  cc97a2c4ff7723a1f25179dc7c18f676fa84191bbb36ea7d0061acaf3c102559 LICENSE
4
  50cbab8a892c5f2993b8c7351a99182507472def3b1374558308605d99b86b32 LICENSE-QWEN-APACHE-2.0
5
+ 77a8b9edad50531d427f38ac66360e25411e0573abe63f502391829d694d195f NOTICE.md
6
+ c36233861503baeac5c5ef541f3ea11e585dbe6e97311ab82c2ac22500754e40 OUTPUT_FORMAT.md
7
+ e787ad2adc00735704c1935355403cfbaecb051924c69c58872de375ccf9be31 README.md
8
+ 30f4be461845fd9c11ac640b5e1ea04b3c72f37523fd5888b353104b5a77cd4a assets/image2scenegraph-results.png
9
  a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715 chat_template.jinja
10
  881208c0f3f48d8fe920b4caf1bac23b4e2d351557bf2c1314b2040ceb4c6bba config.json
11
  a50023c63e657eff70e2cfdd42f384eedd085ffa34898aa6d7e34cb16618bbc7 inference_spec.json
 
14
  ad380c647e34236cf9f313ff673781e2fca1aaff85af6117727762224f019993 model.safetensors.index.json
15
  27225450ac9c6529872ee1924fcb0962ff5634834f817040f444118116f4e516 preprocessor_config.json
16
  d89ef49ce9cd37fbf510158e13c1ef063d9286411c1ec9049932dbe0487143b1 processor_config.json
17
+ 1f63e3f390653b01fa9cf10e32c73b390df1f21eed9ae43e817a4dcd61820f02 release_metadata.json
18
  3906fb04e65a3815d7c4c4248b8ac0e8bfdacbc722ba44491be344ce225ec036 requirements-smoke.txt
19
  2510f614f11d9df4393af8822b23386ea4a0ef5323365eb82096d8c3d8947da6 smoke/prediction.json
20
  bceee5f5cd9d33d5e9ead0095dfdfa572cbca752c9e35ee696dfcf4b5aad4334 smoke/prediction.raw.txt
21
+ ceabb838b3eec7cb5c2666c2f144ae4032602e0cf8d6bf8451a83b91f40c2e3e smoke/validation.json
22
  06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523 tokenizer.json
23
  792fa3f0cb88b111e54ef3134c873531008c4df471d108da17903426e308aa7b tokenizer_config.json
assets/{image2json-results.png → image2scenegraph-results.png} RENAMED
File without changes
release_metadata.json CHANGED
@@ -1 +1 @@
1
- {"model_name":"ChartGalaxy++ Image2JSON","status":"release","checkpoint_step":100000,"architecture":"Qwen3_5ForConditionalGeneration","backbone_family":"Qwen3.5-4B","weights_format":"safetensors","model_files":[{"path":"chat_template.jinja","sha256":"a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715","size":7756},{"path":"config.json","sha256":"881208c0f3f48d8fe920b4caf1bac23b4e2d351557bf2c1314b2040ceb4c6bba","size":2852},{"path":"model-00001-of-00002.safetensors","sha256":"39c4d658c5e83be2ed19b25e80818f231eff2c147a88398fb6df239a9916326e","size":4973340248},{"path":"model-00002-of-00002.safetensors","sha256":"43a5930fa5f7af81ad51894836f71f124a4d4ef1a21cc3e8c6c75beb8cf14865","size":4346480856},{"path":"model.safetensors.index.json","sha256":"ad380c647e34236cf9f313ff673781e2fca1aaff85af6117727762224f019993","size":67340},{"path":"preprocessor_config.json","sha256":"27225450ac9c6529872ee1924fcb0962ff5634834f817040f444118116f4e516","size":390},{"path":"processor_config.json","sha256":"d89ef49ce9cd37fbf510158e13c1ef063d9286411c1ec9049932dbe0487143b1","size":1191},{"path":"tokenizer.json","sha256":"06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523","size":19989325},{"path":"tokenizer_config.json","sha256":"792fa3f0cb88b111e54ef3134c873531008c4df471d108da17903426e308aa7b","size":1165}],"model_file_bytes":9339891123,"checkpoint_export_file_hashes_match":true,"structure":{"tensor_count":738,"tensor_dtypes":{"BF16":738},"stored_scalar_count":{"BF16":4659865088},"tensor_bytes":9319730176,"weight_map_complete":true,"tensor_offsets_contiguous_and_in_bounds":true,"header_metadata":null},"model_license_status":"owner_selected_cc_by_nc_4_0","local_gpu_inference_smoke":"passed_standalone_example","paper_results_percent":{"element_f1":89.4,"hierarchy_f1":85.1,"spatial_f1":88.0},"paper_test_records":1000,"license":"cc-by-nc-4.0","local_gpu_inference_validation":"smoke/validation.json","spatial_scoring_revision":"geometric-boolean-proximity-v1"}
 
1
+ {"model_name":"ChartGalaxy++ Image2SceneGraph","status":"release","checkpoint_step":100000,"architecture":"Qwen3_5ForConditionalGeneration","backbone_family":"Qwen3.5-4B","weights_format":"safetensors","model_files":[{"path":"chat_template.jinja","sha256":"a4aee8afcf2e0711942cf848899be66016f8d14a889ff9ede07bca099c28f715","size":7756},{"path":"config.json","sha256":"881208c0f3f48d8fe920b4caf1bac23b4e2d351557bf2c1314b2040ceb4c6bba","size":2852},{"path":"model-00001-of-00002.safetensors","sha256":"39c4d658c5e83be2ed19b25e80818f231eff2c147a88398fb6df239a9916326e","size":4973340248},{"path":"model-00002-of-00002.safetensors","sha256":"43a5930fa5f7af81ad51894836f71f124a4d4ef1a21cc3e8c6c75beb8cf14865","size":4346480856},{"path":"model.safetensors.index.json","sha256":"ad380c647e34236cf9f313ff673781e2fca1aaff85af6117727762224f019993","size":67340},{"path":"preprocessor_config.json","sha256":"27225450ac9c6529872ee1924fcb0962ff5634834f817040f444118116f4e516","size":390},{"path":"processor_config.json","sha256":"d89ef49ce9cd37fbf510158e13c1ef063d9286411c1ec9049932dbe0487143b1","size":1191},{"path":"tokenizer.json","sha256":"06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523","size":19989325},{"path":"tokenizer_config.json","sha256":"792fa3f0cb88b111e54ef3134c873531008c4df471d108da17903426e308aa7b","size":1165}],"model_file_bytes":9339891123,"checkpoint_export_file_hashes_match":true,"structure":{"tensor_count":738,"tensor_dtypes":{"BF16":738},"stored_scalar_count":{"BF16":4659865088},"tensor_bytes":9319730176,"weight_map_complete":true,"tensor_offsets_contiguous_and_in_bounds":true,"header_metadata":null},"model_license_status":"owner_selected_cc_by_nc_4_0","local_gpu_inference_smoke":"passed_standalone_example","paper_results_percent":{"element_f1":89.4,"hierarchy_f1":85.1,"spatial_f1":88.0},"paper_test_records":1000,"license":"cc-by-nc-4.0","local_gpu_inference_validation":"smoke/validation.json","spatial_scoring_revision":"geometric-boolean-proximity-v1"}
smoke/validation.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "status": "passed",
3
  "date_utc": "2026-09-24T12:34:21.923430+00:00",
4
- "scope": "One standalone image-to-JSON inference; no benchmark accuracy evaluation.",
5
  "runtime": {
6
  "python": "3.11.14",
7
  "vllm": "0.20.2",
 
1
  {
2
  "status": "passed",
3
  "date_utc": "2026-09-24T12:34:21.923430+00:00",
4
+ "scope": "One standalone image-to-scene-graph inference; no benchmark accuracy evaluation.",
5
  "runtime": {
6
  "python": "3.11.14",
7
  "vllm": "0.20.2",