KumaPower commited on
Commit
6ca760d
·
verified ·
1 Parent(s): 6766ebf

Release CSA stage-2 checkpoint at step 97,397

Browse files

Publish the portable FP32 inference checkpoint with both rough and refinement networks, a model card, real validation previews, example inputs, source snapshot, installable wheel, and SHA256 checksums. Original PatchGAN training with L1 and LPIPS. Full training state is retained separately.

.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ examples/expected.png filter=lfs diff=lfs merge=lfs -text
37
+ preview-full.jpg filter=lfs diff=lfs merge=lfs -text
38
+ preview.jpg filter=lfs diff=lfs merge=lfs -text
LICENSE.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # License notice
2
+
3
+ The upstream repository states:
4
+
5
+ > CC 4.0 Attribution-NonCommercial International. The software is for educaitonal and academic research purpose only.
6
+
7
+ Source: [KumapowerLIU/CSA-inpainting](https://github.com/KumapowerLIU/CSA-inpainting),
8
+ commit `f0b0712aa950cc559062dfef04c2f3f884a1f3e2`; preserved in `legacy/README.md`.
9
+
10
+ This reorganization retains that attribution and noncommercial research-use notice.
11
+ See [Creative Commons Attribution-NonCommercial 4.0 International](https://creativecommons.org/licenses/by-nc/4.0/)
12
+ for the license terms. No broader license grant is asserted.
13
+
14
+ Paper: Hongyu Liu, Bin Jiang, Yi Xiao, Chao Yang,
15
+ *Coherent Semantic Attention for Image Inpainting*, ICCV 2019.
README.md CHANGED
@@ -1,3 +1,177 @@
1
  ---
2
- license: apache-2.0
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ language: en
3
+ license: cc-by-nc-4.0
4
+ library_name: pytorch
5
+ pipeline_tag: image-to-image
6
+ tags:
7
+ - image-inpainting
8
+ - coherent-semantic-attention
9
+ - iccv-2019
10
+ - pytorch
11
+ - research
12
  ---
13
+
14
+ # CSA · stage 2 · step 97,397
15
+
16
+ **A modern PyTorch research checkpoint for Coherent Semantic Attention for Image
17
+ Inpainting (ICCV 2019).** This checkpoint combines a separately trained rough
18
+ network with a refinement network trained using the original PatchGAN family,
19
+ L1, LPIPS, and CSA consistency supervision.
20
+
21
+ This is the selected 2026 training run, rather than the original 2019 paper
22
+ weights. It was selected by visual review, not an automatic best-metric rule.
23
+ Model repository: [KumaPower/CSA](https://huggingface.co/KumaPower/CSA) ·
24
+ [Download the 528.5 MB inference weight](https://huggingface.co/KumaPower/CSA/resolve/main/csa-stage2-step97397.pt) ·
25
+ [Source repository](https://github.com/KumapowerLIU/CSA-inpainting/tree/codex/modern-pytorch).
26
+
27
+ ![Selected stage-2 completions at step 97,397](preview.jpg)
28
+
29
+ Columns: masked input, restored image, original. See the
30
+ [full eight-case gallery](preview-full.jpg) for additional
31
+ examples, including faces and structures that the model does not reconstruct well.
32
+
33
+ ## Model at a glance
34
+
35
+ | Property | Value |
36
+ |---|---|
37
+ | Refinement checkpoint | Stage 2, step **97,397** |
38
+ | Frozen rough parent | Stage 1, step **156,181** |
39
+ | Architecture | Two U-Nets with coherent semantic attention; width 64, depth 8 |
40
+ | Refinement output | `tanh`, then composite known pixels from the input |
41
+ | Training resolution | 256 × 256 RGB |
42
+ | Training masks | Random rectangles, strokes, or their union; 10–40% missing area |
43
+ | Stage-2 image discriminator | Original PatchGAN; no Real-ESRGAN initialization |
44
+ | Feature discriminator | Original feature PatchGAN |
45
+ | Stage-2 batch / precision | 192 / BF16 on one H100 |
46
+ | Optimizer | Adam, initial LR 0.0002, betas (0.5, 0.999) |
47
+
48
+ Stage 2 optimizes full-image raw-refinement **L1 × 0.1**, completed-image
49
+ **LPIPS (VGG) × 1**, **CSA consistency × 0.01**, and image/feature relativistic
50
+ average least-squares GAN terms, **0.002 each**. Stage 1 is frozen throughout
51
+ refinement training. These modern training choices differ from the paper's
52
+ original recipe. The sanitized [training configuration](training-config.yaml)
53
+ records the selected stage-2 settings.
54
+
55
+ ## Training data
56
+
57
+ The base index contains 296,145 Unsplash records and 901,730 images sampled from
58
+ the 1,803,460-image Places365-Standard training archive. Later stage-2 training
59
+ also includes 30,128 distinct HDTF talking-head frames, repeated across 299,469
60
+ sampling entries. The final index has **1,497,344 entries**, approximately 20%
61
+ face sampling weight. Entry counts are not counts of distinct image contents;
62
+ cross-source content deduplication was not performed.
63
+
64
+ HDTF validation frames were separated by source-video groups. Identity-disjoint
65
+ splits have not been established. The evaluation below uses the unchanged
66
+ general-image holdout, not a dedicated face benchmark. Training images and
67
+ private dataset indices are not distributed with the checkpoint.
68
+
69
+ ## Evaluation
70
+
71
+ The recorded check uses 64 fixed records from a 2,000-record Unsplash holdout,
72
+ fixed random masks, FP32 inference, and batch size 1 on an H100. The holdout is
73
+ record-level and is not content-deduplicated. Metrics average per-image values;
74
+ L1 is measured on RGB values in [0, 1].
75
+
76
+ | Output | Hole PSNR ↑ | Hole L1 ↓ | Full-image SSIM ↑ |
77
+ |---|---:|---:|---:|
78
+ | Frozen stage 1 | 18.4163 | 0.083474 | 0.863315 |
79
+ | Stage 2 · 97,397 | 18.1563 | 0.083444 | 0.867322 |
80
+
81
+ This is a small internal spot check, not the paper's evaluation protocol or a
82
+ state-of-the-art comparison. Refinement improves SSIM on this sample while hole
83
+ PSNR is lower than the frozen rough model. The machine-readable report is
84
+ [`evaluation.json`](evaluation.json).
85
+
86
+ Natural backgrounds and smooth regions are useful qualitative examples. Large
87
+ holes over faces, buildings, and missing semantic objects can still produce
88
+ blur, incorrect geometry, or repeated texture. The full gallery includes these
89
+ failure cases; inpainting is a plausible completion, not a recovery guarantee.
90
+
91
+ ## Files and inference
92
+
93
+ The release inference weight is **`csa-stage2-step97397.pt`**. It contains both
94
+ the rough and refinement networks and the configuration required for inference.
95
+ The file is 528,510,920 bytes (528.5 MB). No separate stage-1 weight,
96
+ discriminator, VGG/LPIPS checkpoint, or training
97
+ dataset is required at inference time. The file is loaded with PyTorch's
98
+ `weights_only=True` and strict model-state matching.
99
+
100
+ Use **Python 3.10+** with a matching PyTorch/torchvision pair from the
101
+ [official PyTorch installer](https://pytorch.org/get-started/locally/).
102
+ The package supports PyTorch `>=2.6,<3` and torchvision `>=0.21,<1`;
103
+ not every cross-version pairing is compatible.
104
+
105
+ The repository includes an [installable wheel](https://huggingface.co/KumaPower/CSA/resolve/main/csa_inpainting-0.3.0-py3-none-any.whl),
106
+ [complete source archive](https://huggingface.co/KumaPower/CSA/resolve/main/csa-inpainting-source.tar.gz), and
107
+ [example images](https://huggingface.co/KumaPower/CSA/tree/main/examples). A source checkout is optional.
108
+ After installing the appropriate PyTorch/torchvision pair in your environment:
109
+
110
+ ```bash
111
+ python -m pip install \
112
+ "https://huggingface.co/KumaPower/CSA/resolve/main/csa_inpainting-0.3.0-py3-none-any.whl"
113
+
114
+ curl -fL https://huggingface.co/KumaPower/CSA/resolve/main/csa-stage2-step97397.pt \
115
+ -o csa-stage2-step97397.pt
116
+ mkdir -p examples
117
+ curl -fL https://huggingface.co/KumaPower/CSA/resolve/main/examples/masked.png \
118
+ -o examples/masked.png
119
+ curl -fL https://huggingface.co/KumaPower/CSA/resolve/main/examples/mask.png \
120
+ -o examples/mask.png
121
+
122
+ csa infer --checkpoint csa-stage2-step97397.pt \
123
+ --image examples/masked.png --mask examples/mask.png \
124
+ --output output.png --device auto
125
+ ```
126
+
127
+ The [reference example output](https://huggingface.co/KumaPower/CSA/resolve/main/examples/expected.png)
128
+ is provided for comparison. The CLI selects CUDA, then MPS, then CPU when
129
+ `--device auto` is used. No additional pretrained networks are downloaded for
130
+ inference.
131
+
132
+ White mask pixels mean **missing**, black pixels mean **known**. Use `--device
133
+ cpu` for CPU execution. Images and masks must have matching dimensions. The CLI
134
+ pads to the network divisor and crops back to the original size; this checkpoint
135
+ was trained at 256 × 256, so arbitrary-size quality and memory use are not
136
+ validated. Prefer PNG output to preserve known pixels exactly.
137
+
138
+ The separate **training checkpoint** retains optimizers, discriminators,
139
+ schedulers, RNG state, and the data cursor for resuming this experiment. It is
140
+ preserved privately and is not needed for inference. SHA256 checksums and the
141
+ source snapshot accompany the assembled upload package.
142
+
143
+ ## Provenance
144
+
145
+ | Artifact | SHA256 |
146
+ |---|---|
147
+ | Portable inference checkpoint | `605b80c18dcb0856367e6276813df0b54ec42aabea782af1631052aedb7abdfe` |
148
+ | Full stage-2 training checkpoint | `9613d50e7d5cc7e7bf097b13a3987d29d086f82c84596c4a7b35411dcfa92c52` |
149
+ | Frozen stage-1 parent | `0ede01d5945c1bb16fa08553ddff5a0279a9db219601729420e277e78748b041` |
150
+
151
+ The export preserves the trained network parameters without quantization or
152
+ fine-tuning. All generator tensors have identical checksums before and after
153
+ export. Eight full-versus-export forward comparisons are bitwise equal under
154
+ deterministic GPU algorithms on PyTorch 2.6.0 / H100; see
155
+ [`export-verification.json`](export-verification.json). Backend choices can
156
+ change numerical results, particularly the discrete nearest-neighbor selection
157
+ in CSA; cross-device or default-kernel bitwise identity is not promised.
158
+ Packaging and inference checks do not change or resume training.
159
+
160
+ ## Citation and license
161
+
162
+ Hongyu Liu, Bin Jiang, Yi Xiao, and Chao Yang. **Coherent Semantic Attention for
163
+ Image Inpainting.** ICCV 2019.
164
+
165
+ ```bibtex
166
+ @InProceedings{Liu_2019_ICCV,
167
+ author = {Liu, Hongyu and Jiang, Bin and Xiao, Yi and Yang, Chao},
168
+ title = {Coherent Semantic Attention for Image Inpainting},
169
+ booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
170
+ month = {October},
171
+ year = {2019}
172
+ }
173
+ ```
174
+
175
+ The release retains the repository's **CC BY-NC 4.0 / noncommercial academic
176
+ research** notice. Dataset and example-image rights remain with their respective
177
+ owners; this release does not grant additional dataset rights.
SHA256SUMS ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 3d7f9859efabc748c7e1a9da0115900fbb923d1c6ce643cef836e8ffa4e9df14 LICENSE.md
2
+ 55a6226f09518fe892ef55543d7acfec948c03473301d4673a34677e4f592055 README.md
3
+ 3b5241738138ce9960464b09b275808039e48475022fa7eb4a23963c0d09859f csa-inpainting-source.tar.gz
4
+ 605b80c18dcb0856367e6276813df0b54ec42aabea782af1631052aedb7abdfe csa-stage2-step97397.pt
5
+ 508405994683bb63f25d35d95bcebb88037a8f15766be1a2448e219378657e00 csa_inpainting-0.3.0-py3-none-any.whl
6
+ 4114dc4cfb0e8b1dbec8c46154d84dd19a0de249a354d5943ec2648dd3857825 evaluation.json
7
+ cec629ddda5883b62f6cf104addbe1c6d408ff8ff26ac9a8122e1bc8f733dced examples/README.md
8
+ c5d43fedff374a1c1cb9ff1e72cfdd0a3e391652e40eae479f126de16f60be5b examples/expected.png
9
+ a85aa71360708cd7d04003af66872879cba232a55f3a5408797e7462059df03d examples/mask.png
10
+ 9a2383922aaae53cd911b3eee7ea3f24e8b5e968c8ab25846a17bc040d7c9ed7 examples/masked.png
11
+ 9bd67a8dbca0ee5797e68ef7a86d1bc84d3f5f105a40d272a9265ae4230dbc48 export-verification.json
12
+ 6915109589a4301e1446020dd59091cd51e96854b64b072237e9487ed62ab9d6 preview-full.jpg
13
+ bc1ec86541d7a24a23f8ce910c7480d897e749b53d1d9e0a9168ee70e99f91fb preview.jpg
14
+ 998499a44bd5d975376fd939d134acc66e4d20e81579e0b39d544ff27d9c0f42 release-manifest.json
15
+ 4d50b1d51a4e9b94c6be822f4f27668d0e956b1c9e587ebbe656059afcaeaab9 source-compatibility.json
16
+ 4d16a9fd9ebeb9a011bb4f8a05c7da8c02140a632c586022086e9d6a07da119b source-manifest.json
17
+ 8a8cda5a147a987b996ee8b2cdd389f8608103371a947ac4b6a1d33fbf93586a training-config.yaml
18
+ 5c7e84cbb97ac2d14d6a88045d4717ebb11c5a0a3504d1175ee574f607af85e0 validation.json
csa-inpainting-source.tar.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3b5241738138ce9960464b09b275808039e48475022fa7eb4a23963c0d09859f
3
+ size 3871507
csa-stage2-step97397.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:605b80c18dcb0856367e6276813df0b54ec42aabea782af1631052aedb7abdfe
3
+ size 528510920
csa_inpainting-0.3.0-py3-none-any.whl ADDED
Binary file (49.1 kB). View file
 
evaluation.json ADDED
@@ -0,0 +1,1648 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checkpoint_step": 97397,
3
+ "checkpoint_sha256": "9613d50e7d5cc7e7bf097b13a3987d29d086f82c84596c4a7b35411dcfa92c52",
4
+ "validation_indices": [
5
+ 582,
6
+ 605,
7
+ 1659,
8
+ 477,
9
+ 97,
10
+ 1001,
11
+ 1492,
12
+ 1850,
13
+ 520,
14
+ 543,
15
+ 1601,
16
+ 414,
17
+ 1097,
18
+ 726,
19
+ 494,
20
+ 1178,
21
+ 755,
22
+ 46,
23
+ 837,
24
+ 158,
25
+ 1797,
26
+ 820,
27
+ 1628,
28
+ 419,
29
+ 642,
30
+ 713,
31
+ 610,
32
+ 1212,
33
+ 533,
34
+ 1186,
35
+ 1955,
36
+ 731,
37
+ 88,
38
+ 1166,
39
+ 829,
40
+ 40,
41
+ 296,
42
+ 938,
43
+ 1778,
44
+ 1825,
45
+ 1226,
46
+ 1671,
47
+ 774,
48
+ 303,
49
+ 600,
50
+ 1516,
51
+ 1966,
52
+ 111,
53
+ 586,
54
+ 462,
55
+ 1181,
56
+ 839,
57
+ 535,
58
+ 1731,
59
+ 1600,
60
+ 769,
61
+ 1459,
62
+ 677,
63
+ 81,
64
+ 1168,
65
+ 62,
66
+ 1469,
67
+ 1744,
68
+ 1934
69
+ ],
70
+ "shown_indices": [
71
+ 582,
72
+ 605,
73
+ 1659,
74
+ 477,
75
+ 97,
76
+ 1001,
77
+ 1492,
78
+ 1850
79
+ ],
80
+ "mask_mode": "random",
81
+ "precision": "FP32",
82
+ "inference_batch_size": 1,
83
+ "device": "NVIDIA H100 80GB HBM3",
84
+ "summary": {
85
+ "rough": {
86
+ "l1": 0.021904564389842562,
87
+ "l2": 0.005303776788878167,
88
+ "psnr": 24.6804519120106,
89
+ "ssim": 0.8633151510730386,
90
+ "hole_l1": 0.08347352084820159,
91
+ "hole_l2": 0.019533408842107747,
92
+ "hole_psnr": 18.416342504965336,
93
+ "hole_fraction": 0.25002217292785645
94
+ },
95
+ "refined": {
96
+ "l1": 0.021953618168481626,
97
+ "l2": 0.0057381069852908695,
98
+ "psnr": 24.420373515638474,
99
+ "ssim": 0.8673222148790956,
100
+ "hole_l1": 0.08344423418748192,
101
+ "hole_l2": 0.02115398597015883,
102
+ "hole_psnr": 18.156264090753268,
103
+ "hole_fraction": 0.25002217292785645
104
+ },
105
+ "images": 64,
106
+ "improved_hole_psnr": 13,
107
+ "improved_hole_l1": 32
108
+ },
109
+ "protocol": "Fixed 64-record holdout spot check with deterministic masks; not an official benchmark. Validation split is record-level, not content-deduplicated.",
110
+ "per_image": [
111
+ {
112
+ "validation_index": 582,
113
+ "rough": {
114
+ "l1": 0.008401324972510338,
115
+ "l2": 0.0011387200793251395,
116
+ "psnr": 29.43583021263471,
117
+ "ssim": 0.9243270754814148,
118
+ "hole_l1": 0.03815058618783951,
119
+ "hole_l2": 0.005170950200408697,
120
+ "hole_psnr": 22.86429644744242,
121
+ "hole_fraction": 0.22021484375
122
+ },
123
+ "refined": {
124
+ "l1": 0.007925714366137981,
125
+ "l2": 0.0012594984145835042,
126
+ "psnr": 28.99802374841588,
127
+ "ssim": 0.9355592727661133,
128
+ "hole_l1": 0.03599082678556442,
129
+ "hole_l2": 0.00571940653026104,
130
+ "hole_psnr": 22.426490330958696,
131
+ "hole_fraction": 0.22021484375
132
+ },
133
+ "delta_hole_psnr": -0.43780611648372414
134
+ },
135
+ {
136
+ "validation_index": 605,
137
+ "rough": {
138
+ "l1": 0.007000061217695475,
139
+ "l2": 0.0012524938210844994,
140
+ "psnr": 29.02224407956146,
141
+ "ssim": 0.9610041975975037,
142
+ "hole_l1": 0.0332648828625679,
143
+ "hole_l2": 0.005951956380158663,
144
+ "hole_psnr": 22.25340260245412,
145
+ "hole_fraction": 0.2104339599609375
146
+ },
147
+ "refined": {
148
+ "l1": 0.006424724590033293,
149
+ "l2": 0.0011647577630355954,
150
+ "psnr": 29.337643863252993,
151
+ "ssim": 0.9656614661216736,
152
+ "hole_l1": 0.030530838295817375,
153
+ "hole_l2": 0.00553502794355154,
154
+ "hole_psnr": 22.56880182246938,
155
+ "hole_fraction": 0.2104339599609375
156
+ },
157
+ "delta_hole_psnr": 0.31539922001525866
158
+ },
159
+ {
160
+ "validation_index": 1659,
161
+ "rough": {
162
+ "l1": 0.021098142489790916,
163
+ "l2": 0.004017828963696957,
164
+ "psnr": 23.960085548211254,
165
+ "ssim": 0.8345670700073242,
166
+ "hole_l1": 0.07903331518173218,
167
+ "hole_l2": 0.015050726011395454,
168
+ "hole_psnr": 18.22442550227082,
169
+ "hole_fraction": 0.2669525146484375
170
+ },
171
+ "refined": {
172
+ "l1": 0.021535471081733704,
173
+ "l2": 0.004540577996522188,
174
+ "psnr": 23.4288885975908,
175
+ "ssim": 0.8362911343574524,
176
+ "hole_l1": 0.0806715339422226,
177
+ "hole_l2": 0.017008936032652855,
178
+ "hole_psnr": 17.693228521487292,
179
+ "hole_fraction": 0.2669525146484375
180
+ },
181
+ "delta_hole_psnr": -0.5311969807835268
182
+ },
183
+ {
184
+ "validation_index": 477,
185
+ "rough": {
186
+ "l1": 0.025301998481154442,
187
+ "l2": 0.005398120265454054,
188
+ "psnr": 22.677574439660106,
189
+ "ssim": 0.8321418762207031,
190
+ "hole_l1": 0.122556671500206,
191
+ "hole_l2": 0.02614716999232769,
192
+ "hole_psnr": 15.82575309596943,
193
+ "hole_fraction": 0.206451416015625
194
+ },
195
+ "refined": {
196
+ "l1": 0.024354472756385803,
197
+ "l2": 0.005272611975669861,
198
+ "psnr": 22.779741882790145,
199
+ "ssim": 0.8407254219055176,
200
+ "hole_l1": 0.11796709150075912,
201
+ "hole_l2": 0.02553923800587654,
202
+ "hole_psnr": 15.927920645816034,
203
+ "hole_fraction": 0.206451416015625
204
+ },
205
+ "delta_hole_psnr": 0.10216754984660348
206
+ },
207
+ {
208
+ "validation_index": 97,
209
+ "rough": {
210
+ "l1": 0.008816254325211048,
211
+ "l2": 0.001162520726211369,
212
+ "psnr": 29.345992954711377,
213
+ "ssim": 0.9220604300498962,
214
+ "hole_l1": 0.04556281492114067,
215
+ "hole_l2": 0.006007960997521877,
216
+ "hole_psnr": 22.21272895347432,
217
+ "hole_fraction": 0.1934967041015625
218
+ },
219
+ "refined": {
220
+ "l1": 0.008941390551626682,
221
+ "l2": 0.0013026646338403225,
222
+ "psnr": 28.851673773949994,
223
+ "ssim": 0.925675094127655,
224
+ "hole_l1": 0.04620952531695366,
225
+ "hole_l2": 0.00673223240301013,
226
+ "hole_psnr": 21.718409001824387,
227
+ "hole_fraction": 0.1934967041015625
228
+ },
229
+ "delta_hole_psnr": -0.49431995164993126
230
+ },
231
+ {
232
+ "validation_index": 1001,
233
+ "rough": {
234
+ "l1": 0.058225084096193314,
235
+ "l2": 0.015888916328549385,
236
+ "psnr": 17.989057219606572,
237
+ "ssim": 0.6545725464820862,
238
+ "hole_l1": 0.14814189076423645,
239
+ "hole_l2": 0.04042612388730049,
240
+ "hole_psnr": 13.93337897426063,
241
+ "hole_fraction": 0.393035888671875
242
+ },
243
+ "refined": {
244
+ "l1": 0.058986108750104904,
245
+ "l2": 0.017073960974812508,
246
+ "psnr": 17.67665715560647,
247
+ "ssim": 0.6699748039245605,
248
+ "hole_l1": 0.1500781774520874,
249
+ "hole_l2": 0.043441228568553925,
250
+ "hole_psnr": 13.620979008916155,
251
+ "hole_fraction": 0.393035888671875
252
+ },
253
+ "delta_hole_psnr": -0.31239996534447556
254
+ },
255
+ {
256
+ "validation_index": 1492,
257
+ "rough": {
258
+ "l1": 0.01298223901540041,
259
+ "l2": 0.0014818223426118493,
260
+ "psnr": 28.2920386130156,
261
+ "ssim": 0.9175623059272766,
262
+ "hole_l1": 0.04589761048555374,
263
+ "hole_l2": 0.005238858051598072,
264
+ "hole_psnr": 22.807633687295382,
265
+ "hole_fraction": 0.2828521728515625
266
+ },
267
+ "refined": {
268
+ "l1": 0.012912414036691189,
269
+ "l2": 0.001577987801283598,
270
+ "psnr": 28.018963584496003,
271
+ "ssim": 0.9180622100830078,
272
+ "hole_l1": 0.04565075412392616,
273
+ "hole_l2": 0.0055788434110581875,
274
+ "hole_psnr": 22.534558283490416,
275
+ "hole_fraction": 0.2828521728515625
276
+ },
277
+ "delta_hole_psnr": -0.27307540380496675
278
+ },
279
+ {
280
+ "validation_index": 1850,
281
+ "rough": {
282
+ "l1": 0.05069633200764656,
283
+ "l2": 0.012323816306889057,
284
+ "psnr": 19.092547836997092,
285
+ "ssim": 0.6865387558937073,
286
+ "hole_l1": 0.1501801311969757,
287
+ "hole_l2": 0.03650742396712303,
288
+ "hole_psnr": 14.376188106091206,
289
+ "hole_fraction": 0.3375701904296875
290
+ },
291
+ "refined": {
292
+ "l1": 0.0517975389957428,
293
+ "l2": 0.01336076483130455,
294
+ "psnr": 18.741686801458222,
295
+ "ssim": 0.689080536365509,
296
+ "hole_l1": 0.15344227850437164,
297
+ "hole_l2": 0.03957922011613846,
298
+ "hole_psnr": 14.025327675473713,
299
+ "hole_fraction": 0.3375701904296875
300
+ },
301
+ "delta_hole_psnr": -0.3508604306174927
302
+ },
303
+ {
304
+ "validation_index": 520,
305
+ "rough": {
306
+ "l1": 0.02396816946566105,
307
+ "l2": 0.007013566792011261,
308
+ "psnr": 21.540610627558188,
309
+ "ssim": 0.8697216510772705,
310
+ "hole_l1": 0.15031367540359497,
311
+ "hole_l2": 0.043984800577163696,
312
+ "hole_psnr": 13.56697372737958,
313
+ "hole_fraction": 0.159454345703125
314
+ },
315
+ "refined": {
316
+ "l1": 0.02458667755126953,
317
+ "l2": 0.007283130660653114,
318
+ "psnr": 21.376818986559677,
319
+ "ssim": 0.8703622817993164,
320
+ "hole_l1": 0.15419259667396545,
321
+ "hole_l2": 0.045675329864025116,
322
+ "hole_psnr": 13.403183075198452,
323
+ "hole_fraction": 0.159454345703125
324
+ },
325
+ "delta_hole_psnr": -0.16379065218112743
326
+ },
327
+ {
328
+ "validation_index": 543,
329
+ "rough": {
330
+ "l1": 0.015615314245223999,
331
+ "l2": 0.0021060945000499487,
332
+ "psnr": 26.765221460045346,
333
+ "ssim": 0.8362414240837097,
334
+ "hole_l1": 0.059089165180921555,
335
+ "hole_l2": 0.007969570346176624,
336
+ "hole_psnr": 20.98565091566799,
337
+ "hole_fraction": 0.2642669677734375
338
+ },
339
+ "refined": {
340
+ "l1": 0.016181955114006996,
341
+ "l2": 0.0022590477019548416,
342
+ "psnr": 26.46074598439072,
343
+ "ssim": 0.8400807976722717,
344
+ "hole_l1": 0.061233360320329666,
345
+ "hole_l2": 0.008548355661332607,
346
+ "hole_psnr": 20.681174169547532,
347
+ "hole_fraction": 0.2642669677734375
348
+ },
349
+ "delta_hole_psnr": -0.30447674612045716
350
+ },
351
+ {
352
+ "validation_index": 1601,
353
+ "rough": {
354
+ "l1": 0.01773962564766407,
355
+ "l2": 0.0038901285734027624,
356
+ "psnr": 24.10036044484945,
357
+ "ssim": 0.885178804397583,
358
+ "hole_l1": 0.10854113847017288,
359
+ "hole_l2": 0.023802023380994797,
360
+ "hole_psnr": 16.233861225296508,
361
+ "hole_fraction": 0.1634368896484375
362
+ },
363
+ "refined": {
364
+ "l1": 0.018272757530212402,
365
+ "l2": 0.0047075278125703335,
366
+ "psnr": 23.272071054461584,
367
+ "ssim": 0.8864343762397766,
368
+ "hole_l1": 0.11180315166711807,
369
+ "hole_l2": 0.02880333736538887,
370
+ "hole_psnr": 15.405571887893723,
371
+ "hole_fraction": 0.1634368896484375
372
+ },
373
+ "delta_hole_psnr": -0.8282893374027847
374
+ },
375
+ {
376
+ "validation_index": 414,
377
+ "rough": {
378
+ "l1": 0.020391589030623436,
379
+ "l2": 0.0025753809604793787,
380
+ "psnr": 25.89158519323187,
381
+ "ssim": 0.836259663105011,
382
+ "hole_l1": 0.06321286410093307,
383
+ "hole_l2": 0.007983546704053879,
384
+ "hole_psnr": 20.978041297262976,
385
+ "hole_fraction": 0.3225860595703125
386
+ },
387
+ "refined": {
388
+ "l1": 0.019147707149386406,
389
+ "l2": 0.0024259984493255615,
390
+ "psnr": 26.15109481066135,
391
+ "ssim": 0.8466467261314392,
392
+ "hole_l1": 0.059356894344091415,
393
+ "hole_l2": 0.007520467974245548,
394
+ "hole_psnr": 21.237551338353597,
395
+ "hole_fraction": 0.3225860595703125
396
+ },
397
+ "delta_hole_psnr": 0.25951004109062126
398
+ },
399
+ {
400
+ "validation_index": 1097,
401
+ "rough": {
402
+ "l1": 0.022683067247271538,
403
+ "l2": 0.006208063568919897,
404
+ "psnr": 22.070438446671066,
405
+ "ssim": 0.8846310973167419,
406
+ "hole_l1": 0.13593247532844543,
407
+ "hole_l2": 0.03720296546816826,
408
+ "hole_psnr": 14.294224408941425,
409
+ "hole_fraction": 0.1668701171875
410
+ },
411
+ "refined": {
412
+ "l1": 0.02404860220849514,
413
+ "l2": 0.0076120453886687756,
414
+ "psnr": 21.18498630791005,
415
+ "ssim": 0.8852441906929016,
416
+ "hole_l1": 0.14411568641662598,
417
+ "hole_l2": 0.04561658576130867,
418
+ "hole_psnr": 13.408772232354497,
419
+ "hole_fraction": 0.1668701171875
420
+ },
421
+ "delta_hole_psnr": -0.8854521765869272
422
+ },
423
+ {
424
+ "validation_index": 726,
425
+ "rough": {
426
+ "l1": 0.013859686441719532,
427
+ "l2": 0.002885418711230159,
428
+ "psnr": 25.397911562405948,
429
+ "ssim": 0.9065002799034119,
430
+ "hole_l1": 0.07948096096515656,
431
+ "hole_l2": 0.01654697209596634,
432
+ "hole_psnr": 17.812814654726296,
433
+ "hole_fraction": 0.17437744140625
434
+ },
435
+ "refined": {
436
+ "l1": 0.0146483788266778,
437
+ "l2": 0.0033636437729001045,
438
+ "psnr": 24.731900044483396,
439
+ "ssim": 0.9082213044166565,
440
+ "hole_l1": 0.08400386571884155,
441
+ "hole_l2": 0.019289443269371986,
442
+ "hole_psnr": 17.14680306753669,
443
+ "hole_fraction": 0.17437744140625
444
+ },
445
+ "delta_hole_psnr": -0.6660115871896046
446
+ },
447
+ {
448
+ "validation_index": 494,
449
+ "rough": {
450
+ "l1": 0.02705373428761959,
451
+ "l2": 0.006217540707439184,
452
+ "psnr": 22.06381362638913,
453
+ "ssim": 0.8469991087913513,
454
+ "hole_l1": 0.09133492410182953,
455
+ "hole_l2": 0.02099076472222805,
456
+ "hole_psnr": 16.779717391882492,
457
+ "hole_fraction": 0.29620361328125
458
+ },
459
+ "refined": {
460
+ "l1": 0.027053549885749817,
461
+ "l2": 0.006749539170414209,
462
+ "psnr": 21.707258779213095,
463
+ "ssim": 0.8505911231040955,
464
+ "hole_l1": 0.09133430570363998,
465
+ "hole_l2": 0.022786820307374,
466
+ "hole_psnr": 16.423162724196565,
467
+ "hole_fraction": 0.29620361328125
468
+ },
469
+ "delta_hole_psnr": -0.35655466768592703
470
+ },
471
+ {
472
+ "validation_index": 1178,
473
+ "rough": {
474
+ "l1": 0.017641989514231682,
475
+ "l2": 0.002958129160106182,
476
+ "psnr": 25.28982867426084,
477
+ "ssim": 0.8915762901306152,
478
+ "hole_l1": 0.05182596296072006,
479
+ "hole_l2": 0.008689943701028824,
480
+ "hole_psnr": 20.609830371775388,
481
+ "hole_fraction": 0.3404083251953125
482
+ },
483
+ "refined": {
484
+ "l1": 0.017124533653259277,
485
+ "l2": 0.003194305347278714,
486
+ "psnr": 24.956235715100572,
487
+ "ssim": 0.8968844413757324,
488
+ "hole_l1": 0.05030586197972298,
489
+ "hole_l2": 0.009383746422827244,
490
+ "hole_psnr": 20.276237366826845,
491
+ "hole_fraction": 0.3404083251953125
492
+ },
493
+ "delta_hole_psnr": -0.3335930049485434
494
+ },
495
+ {
496
+ "validation_index": 755,
497
+ "rough": {
498
+ "l1": 0.053479935973882675,
499
+ "l2": 0.01617414318025112,
500
+ "psnr": 17.91178716652771,
501
+ "ssim": 0.7333217263221741,
502
+ "hole_l1": 0.1556747406721115,
503
+ "hole_l2": 0.047081317752599716,
504
+ "hole_psnr": 13.271513902493,
505
+ "hole_fraction": 0.343536376953125
506
+ },
507
+ "refined": {
508
+ "l1": 0.05452245473861694,
509
+ "l2": 0.017671706154942513,
510
+ "psnr": 17.527215185234475,
511
+ "ssim": 0.7414097189903259,
512
+ "hole_l1": 0.15870939195156097,
513
+ "hole_l2": 0.051440563052892685,
514
+ "hole_psnr": 12.886942864013688,
515
+ "hole_fraction": 0.343536376953125
516
+ },
517
+ "delta_hole_psnr": -0.3845710384793115
518
+ },
519
+ {
520
+ "validation_index": 46,
521
+ "rough": {
522
+ "l1": 0.024367602542042732,
523
+ "l2": 0.004909344017505646,
524
+ "psnr": 23.089765340705206,
525
+ "ssim": 0.8428141474723816,
526
+ "hole_l1": 0.09165786951780319,
527
+ "hole_l2": 0.018466323614120483,
528
+ "hole_psnr": 17.336195578907816,
529
+ "hole_fraction": 0.2658538818359375
530
+ },
531
+ "refined": {
532
+ "l1": 0.02447536028921604,
533
+ "l2": 0.005204843357205391,
534
+ "psnr": 22.835923363023415,
535
+ "ssim": 0.8459692597389221,
536
+ "hole_l1": 0.09206319600343704,
537
+ "hole_l2": 0.019577834755182266,
538
+ "hole_psnr": 17.08235341433516,
539
+ "hole_fraction": 0.2658538818359375
540
+ },
541
+ "delta_hole_psnr": -0.2538421645726565
542
+ },
543
+ {
544
+ "validation_index": 837,
545
+ "rough": {
546
+ "l1": 0.012195291928946972,
547
+ "l2": 0.0023405614774674177,
548
+ "psnr": 26.306799471559735,
549
+ "ssim": 0.9256070256233215,
550
+ "hole_l1": 0.05168330669403076,
551
+ "hole_l2": 0.009919233620166779,
552
+ "hole_psnr": 20.03521881010137,
553
+ "hole_fraction": 0.2359619140625
554
+ },
555
+ "refined": {
556
+ "l1": 0.012457004748284817,
557
+ "l2": 0.0026876814663410187,
558
+ "psnr": 25.706222034782126,
559
+ "ssim": 0.9284799695014954,
560
+ "hole_l1": 0.052792441099882126,
561
+ "hole_l2": 0.011390319094061852,
562
+ "hole_psnr": 19.434641092089493,
563
+ "hole_fraction": 0.2359619140625
564
+ },
565
+ "delta_hole_psnr": -0.600577718011877
566
+ },
567
+ {
568
+ "validation_index": 158,
569
+ "rough": {
570
+ "l1": 0.016234224662184715,
571
+ "l2": 0.0032181355636566877,
572
+ "psnr": 24.923956652376148,
573
+ "ssim": 0.8765662312507629,
574
+ "hole_l1": 0.07168347388505936,
575
+ "hole_l2": 0.014209928922355175,
576
+ "hole_psnr": 18.474080943952703,
577
+ "hole_fraction": 0.226470947265625
578
+ },
579
+ "refined": {
580
+ "l1": 0.015723643824458122,
581
+ "l2": 0.003635605564340949,
582
+ "psnr": 24.394232405552128,
583
+ "ssim": 0.881432831287384,
584
+ "hole_l1": 0.06942896544933319,
585
+ "hole_l2": 0.016053298488259315,
586
+ "hole_psnr": 17.944357191426388,
587
+ "hole_fraction": 0.226470947265625
588
+ },
589
+ "delta_hole_psnr": -0.5297237525263156
590
+ },
591
+ {
592
+ "validation_index": 1797,
593
+ "rough": {
594
+ "l1": 0.0032678444404155016,
595
+ "l2": 0.00041435318416915834,
596
+ "psnr": 33.82629319395926,
597
+ "ssim": 0.9745879173278809,
598
+ "hole_l1": 0.022531453520059586,
599
+ "hole_l2": 0.0028569228015840054,
600
+ "hole_psnr": 25.441014947586808,
601
+ "hole_fraction": 0.1450347900390625
602
+ },
603
+ "refined": {
604
+ "l1": 0.0029845479875802994,
605
+ "l2": 0.0004042634682264179,
606
+ "psnr": 33.933355024568634,
607
+ "ssim": 0.9769298434257507,
608
+ "hole_l1": 0.02057815156877041,
609
+ "hole_l2": 0.002787355100736022,
610
+ "hole_psnr": 25.54807699938909,
611
+ "hole_fraction": 0.1450347900390625
612
+ },
613
+ "delta_hole_psnr": 0.10706205180228068
614
+ },
615
+ {
616
+ "validation_index": 820,
617
+ "rough": {
618
+ "l1": 0.03604203835129738,
619
+ "l2": 0.00852555688470602,
620
+ "psnr": 20.69277243531255,
621
+ "ssim": 0.7336974143981934,
622
+ "hole_l1": 0.1054016575217247,
623
+ "hole_l2": 0.024932213127613068,
624
+ "hole_psnr": 16.032391692920445,
625
+ "hole_fraction": 0.341949462890625
626
+ },
627
+ "refined": {
628
+ "l1": 0.037677038460969925,
629
+ "l2": 0.009441663511097431,
630
+ "psnr": 20.249514813330222,
631
+ "ssim": 0.7369303107261658,
632
+ "hole_l1": 0.11018306761980057,
633
+ "hole_l2": 0.02761128358542919,
634
+ "hole_psnr": 15.589134035341752,
635
+ "hole_fraction": 0.341949462890625
636
+ },
637
+ "delta_hole_psnr": -0.44325765757869284
638
+ },
639
+ {
640
+ "validation_index": 1628,
641
+ "rough": {
642
+ "l1": 0.021362707018852234,
643
+ "l2": 0.0037968691904097795,
644
+ "psnr": 24.2057436489913,
645
+ "ssim": 0.870206356048584,
646
+ "hole_l1": 0.06195081025362015,
647
+ "hole_l2": 0.011010734364390373,
648
+ "hole_psnr": 19.581837146552576,
649
+ "hole_fraction": 0.3448333740234375
650
+ },
651
+ "refined": {
652
+ "l1": 0.021470993757247925,
653
+ "l2": 0.004255532752722502,
654
+ "psnr": 23.71046062586626,
655
+ "ssim": 0.8660085201263428,
656
+ "hole_l1": 0.06226483732461929,
657
+ "hole_l2": 0.012340838089585304,
658
+ "hole_psnr": 19.086553455440452,
659
+ "hole_fraction": 0.3448333740234375
660
+ },
661
+ "delta_hole_psnr": -0.49528369111212456
662
+ },
663
+ {
664
+ "validation_index": 419,
665
+ "rough": {
666
+ "l1": 0.011140449903905392,
667
+ "l2": 0.0020415938924998045,
668
+ "psnr": 26.90030642164261,
669
+ "ssim": 0.923088550567627,
670
+ "hole_l1": 0.048631224781274796,
671
+ "hole_l2": 0.008912135846912861,
672
+ "hole_psnr": 20.500182022068152,
673
+ "hole_fraction": 0.2290802001953125
674
+ },
675
+ "refined": {
676
+ "l1": 0.010920722968876362,
677
+ "l2": 0.0020599260460585356,
678
+ "psnr": 26.861483710702743,
679
+ "ssim": 0.9266481399536133,
680
+ "hole_l1": 0.047672051936388016,
681
+ "hole_l2": 0.008992161601781845,
682
+ "hole_psnr": 20.461358968226705,
683
+ "hole_fraction": 0.2290802001953125
684
+ },
685
+ "delta_hole_psnr": -0.038823053841447575
686
+ },
687
+ {
688
+ "validation_index": 642,
689
+ "rough": {
690
+ "l1": 0.019656965509057045,
691
+ "l2": 0.002908111549913883,
692
+ "psnr": 25.363889387404747,
693
+ "ssim": 0.7970277667045593,
694
+ "hole_l1": 0.04933701828122139,
695
+ "hole_l2": 0.007299069315195084,
696
+ "hole_psnr": 21.367325120771806,
697
+ "hole_fraction": 0.3984222412109375
698
+ },
699
+ "refined": {
700
+ "l1": 0.01858784817159176,
701
+ "l2": 0.002979378215968609,
702
+ "psnr": 25.258743619471193,
703
+ "ssim": 0.8054568767547607,
704
+ "hole_l1": 0.0466536320745945,
705
+ "hole_l2": 0.007477940525859594,
706
+ "hole_psnr": 21.26217993232843,
707
+ "hole_fraction": 0.3984222412109375
708
+ },
709
+ "delta_hole_psnr": -0.10514518844337672
710
+ },
711
+ {
712
+ "validation_index": 713,
713
+ "rough": {
714
+ "l1": 0.009799918159842491,
715
+ "l2": 0.0024700642097741365,
716
+ "psnr": 26.072917570285373,
717
+ "ssim": 0.9287114143371582,
718
+ "hole_l1": 0.0710529237985611,
719
+ "hole_l2": 0.0179088544100523,
720
+ "hole_psnr": 17.46932194123342,
721
+ "hole_fraction": 0.1379241943359375
722
+ },
723
+ "refined": {
724
+ "l1": 0.009278843179345131,
725
+ "l2": 0.0023806942626833916,
726
+ "psnr": 26.232963746729002,
727
+ "ssim": 0.9271144270896912,
728
+ "hole_l1": 0.06727494299411774,
729
+ "hole_l2": 0.01726088859140873,
730
+ "hole_psnr": 17.629368505436386,
731
+ "hole_fraction": 0.1379241943359375
732
+ },
733
+ "delta_hole_psnr": 0.1600465642029647
734
+ },
735
+ {
736
+ "validation_index": 610,
737
+ "rough": {
738
+ "l1": 0.018021369352936745,
739
+ "l2": 0.0020671284291893244,
740
+ "psnr": 26.84632540133457,
741
+ "ssim": 0.8415217399597168,
742
+ "hole_l1": 0.054226282984018326,
743
+ "hole_l2": 0.006219987291842699,
744
+ "hole_psnr": 22.062105026224014,
745
+ "hole_fraction": 0.33233642578125
746
+ },
747
+ "refined": {
748
+ "l1": 0.01697121001780033,
749
+ "l2": 0.0020391244906932116,
750
+ "psnr": 26.905562592779194,
751
+ "ssim": 0.8554422855377197,
752
+ "hole_l1": 0.051066357642412186,
753
+ "hole_l2": 0.006135724019259214,
754
+ "hole_psnr": 22.1213418289355,
755
+ "hole_fraction": 0.33233642578125
756
+ },
757
+ "delta_hole_psnr": 0.059236802711485126
758
+ },
759
+ {
760
+ "validation_index": 1212,
761
+ "rough": {
762
+ "l1": 0.0207538902759552,
763
+ "l2": 0.0061581810005009174,
764
+ "psnr": 22.105475505150636,
765
+ "ssim": 0.8808484673500061,
766
+ "hole_l1": 0.1203758716583252,
767
+ "hole_l2": 0.03571843355894089,
768
+ "hole_psnr": 14.471075954616904,
769
+ "hole_fraction": 0.1724090576171875
770
+ },
771
+ "refined": {
772
+ "l1": 0.019857756793498993,
773
+ "l2": 0.006859846878796816,
774
+ "psnr": 21.636855782343247,
775
+ "ssim": 0.8971085548400879,
776
+ "hole_l1": 0.11517815291881561,
777
+ "hole_l2": 0.03978820890188217,
778
+ "hole_psnr": 14.002456105278249,
779
+ "hole_fraction": 0.1724090576171875
780
+ },
781
+ "delta_hole_psnr": -0.46861984933865486
782
+ },
783
+ {
784
+ "validation_index": 533,
785
+ "rough": {
786
+ "l1": 0.046900179237127304,
787
+ "l2": 0.01056162640452385,
788
+ "psnr": 19.762691988361016,
789
+ "ssim": 0.7056794166564941,
790
+ "hole_l1": 0.12035595625638962,
791
+ "hole_l2": 0.027103405445814133,
792
+ "hole_psnr": 15.66976138151122,
793
+ "hole_fraction": 0.389678955078125
794
+ },
795
+ "refined": {
796
+ "l1": 0.046576350927352905,
797
+ "l2": 0.01097678393125534,
798
+ "psnr": 19.595248844306134,
799
+ "ssim": 0.7194433212280273,
800
+ "hole_l1": 0.11952493339776993,
801
+ "hole_l2": 0.02816879190504551,
802
+ "hole_psnr": 15.502317785102548,
803
+ "hole_fraction": 0.389678955078125
804
+ },
805
+ "delta_hole_psnr": -0.16744359640867224
806
+ },
807
+ {
808
+ "validation_index": 1186,
809
+ "rough": {
810
+ "l1": 0.09401022642850876,
811
+ "l2": 0.038052573800086975,
812
+ "psnr": 14.196159630886253,
813
+ "ssim": 0.6291274428367615,
814
+ "hole_l1": 0.2368178516626358,
815
+ "hole_l2": 0.0958569124341011,
816
+ "hole_psnr": 10.183765638110334,
817
+ "hole_fraction": 0.39697265625
818
+ },
819
+ "refined": {
820
+ "l1": 0.09363678842782974,
821
+ "l2": 0.03976093605160713,
822
+ "psnr": 14.005433999974972,
823
+ "ssim": 0.6328679919242859,
824
+ "hole_l1": 0.23587718605995178,
825
+ "hole_l2": 0.1001603826880455,
826
+ "hole_psnr": 9.993040247986919,
827
+ "hole_fraction": 0.39697265625
828
+ },
829
+ "delta_hole_psnr": -0.19072539012341494
830
+ },
831
+ {
832
+ "validation_index": 1955,
833
+ "rough": {
834
+ "l1": 0.005012401379644871,
835
+ "l2": 0.0010053250007331371,
836
+ "psnr": 29.976935171412386,
837
+ "ssim": 0.9823117256164551,
838
+ "hole_l1": 0.026195595040917397,
839
+ "hole_l2": 0.005253984592854977,
840
+ "hole_psnr": 22.795112051030273,
841
+ "hole_fraction": 0.19134521484375
842
+ },
843
+ "refined": {
844
+ "l1": 0.0041014160960912704,
845
+ "l2": 0.0009441829170100391,
846
+ "psnr": 30.249438614724298,
847
+ "ssim": 0.9837431311607361,
848
+ "hole_l1": 0.021434642374515533,
849
+ "hole_l2": 0.004934447351843119,
850
+ "hole_psnr": 23.067614803773026,
851
+ "hole_fraction": 0.19134521484375
852
+ },
853
+ "delta_hole_psnr": 0.2725027527427528
854
+ },
855
+ {
856
+ "validation_index": 731,
857
+ "rough": {
858
+ "l1": 0.01987740397453308,
859
+ "l2": 0.004006985574960709,
860
+ "psnr": 23.97182221012831,
861
+ "ssim": 0.888681173324585,
862
+ "hole_l1": 0.06931759417057037,
863
+ "hole_l2": 0.013973383232951164,
864
+ "hole_psnr": 18.546984298549194,
865
+ "hole_fraction": 0.2867584228515625
866
+ },
867
+ "refined": {
868
+ "l1": 0.020182056352496147,
869
+ "l2": 0.004635015036910772,
870
+ "psnr": 23.3394885257951,
871
+ "ssim": 0.890579879283905,
872
+ "hole_l1": 0.07037999480962753,
873
+ "hole_l2": 0.016163481399416924,
874
+ "hole_psnr": 17.914650922175515,
875
+ "hole_fraction": 0.2867584228515625
876
+ },
877
+ "delta_hole_psnr": -0.6323333763736798
878
+ },
879
+ {
880
+ "validation_index": 88,
881
+ "rough": {
882
+ "l1": 0.006287040188908577,
883
+ "l2": 0.0006922244210727513,
884
+ "psnr": 31.597530832417586,
885
+ "ssim": 0.9244663715362549,
886
+ "hole_l1": 0.06186598539352417,
887
+ "hole_l2": 0.006811654660850763,
888
+ "hole_psnr": 21.667473781329054,
889
+ "hole_fraction": 0.10162353515625
890
+ },
891
+ "refined": {
892
+ "l1": 0.0065538170747458935,
893
+ "l2": 0.0007843137136660516,
894
+ "psnr": 31.05510191317304,
895
+ "ssim": 0.9264327883720398,
896
+ "hole_l1": 0.0644911378622055,
897
+ "hole_l2": 0.007717835251241922,
898
+ "hole_psnr": 21.125044963321518,
899
+ "hole_fraction": 0.10162353515625
900
+ },
901
+ "delta_hole_psnr": -0.5424288180075365
902
+ },
903
+ {
904
+ "validation_index": 1166,
905
+ "rough": {
906
+ "l1": 0.03794226422905922,
907
+ "l2": 0.00742914667353034,
908
+ "psnr": 21.29061067297279,
909
+ "ssim": 0.702674388885498,
910
+ "hole_l1": 0.11385980993509293,
911
+ "hole_l2": 0.022293902933597565,
912
+ "hole_psnr": 16.518138940973987,
913
+ "hole_fraction": 0.3332366943359375
914
+ },
915
+ "refined": {
916
+ "l1": 0.0395650789141655,
917
+ "l2": 0.008147132582962513,
918
+ "psnr": 20.889952161085922,
919
+ "ssim": 0.7047566771507263,
920
+ "hole_l1": 0.11872966587543488,
921
+ "hole_l2": 0.024448484182357788,
922
+ "hole_psnr": 16.11748062170012,
923
+ "hole_fraction": 0.3332366943359375
924
+ },
925
+ "delta_hole_psnr": -0.40065831927386597
926
+ },
927
+ {
928
+ "validation_index": 829,
929
+ "rough": {
930
+ "l1": 0.03957081213593483,
931
+ "l2": 0.00880467426031828,
932
+ "psnr": 20.552867066544724,
933
+ "ssim": 0.7318102717399597,
934
+ "hole_l1": 0.11850810050964355,
935
+ "hole_l2": 0.026368556544184685,
936
+ "hole_psnr": 15.789136435115893,
937
+ "hole_fraction": 0.3339080810546875
938
+ },
939
+ "refined": {
940
+ "l1": 0.03925541415810585,
941
+ "l2": 0.009380217641592026,
942
+ "psnr": 20.277870849209464,
943
+ "ssim": 0.7328972816467285,
944
+ "hole_l1": 0.11756352335214615,
945
+ "hole_l2": 0.028092214837670326,
946
+ "hole_psnr": 15.514140189380107,
947
+ "hole_fraction": 0.3339080810546875
948
+ },
949
+ "delta_hole_psnr": -0.2749962457357853
950
+ },
951
+ {
952
+ "validation_index": 40,
953
+ "rough": {
954
+ "l1": 0.022042086347937584,
955
+ "l2": 0.004933300893753767,
956
+ "psnr": 23.06862395076743,
957
+ "ssim": 0.8377962112426758,
958
+ "hole_l1": 0.07389003038406372,
959
+ "hole_l2": 0.016537535935640335,
960
+ "hole_psnr": 17.81529199092676,
961
+ "hole_fraction": 0.298309326171875
962
+ },
963
+ "refined": {
964
+ "l1": 0.02182733081281185,
965
+ "l2": 0.005225703585892916,
966
+ "psnr": 22.81855228106963,
967
+ "ssim": 0.8451120853424072,
968
+ "hole_l1": 0.07317011803388596,
969
+ "hole_l2": 0.017517732456326485,
970
+ "hole_psnr": 17.565221108071256,
971
+ "hole_fraction": 0.298309326171875
972
+ },
973
+ "delta_hole_psnr": -0.2500708828555034
974
+ },
975
+ {
976
+ "validation_index": 296,
977
+ "rough": {
978
+ "l1": 0.0598626434803009,
979
+ "l2": 0.025086617097258568,
980
+ "psnr": 16.005578988706166,
981
+ "ssim": 0.7714287638664246,
982
+ "hole_l1": 0.15091973543167114,
983
+ "hole_l2": 0.06324587762355804,
984
+ "hole_psnr": 11.989677766135935,
985
+ "hole_fraction": 0.3966522216796875
986
+ },
987
+ "refined": {
988
+ "l1": 0.06193532049655914,
989
+ "l2": 0.028101937845349312,
990
+ "psnr": 15.512637311082983,
991
+ "ssim": 0.7698535919189453,
992
+ "hole_l1": 0.1561451405286789,
993
+ "hole_l2": 0.07084779441356659,
994
+ "hole_psnr": 11.496736653731501,
995
+ "hole_fraction": 0.3966522216796875
996
+ },
997
+ "delta_hole_psnr": -0.4929411124044343
998
+ },
999
+ {
1000
+ "validation_index": 938,
1001
+ "rough": {
1002
+ "l1": 0.0031429387163370848,
1003
+ "l2": 0.00026295738643966615,
1004
+ "psnr": 35.80114625402215,
1005
+ "ssim": 0.982566773891449,
1006
+ "hole_l1": 0.027804479002952576,
1007
+ "hole_l2": 0.002326292684301734,
1008
+ "hole_psnr": 26.33335645075949,
1009
+ "hole_fraction": 0.113037109375
1010
+ },
1011
+ "refined": {
1012
+ "l1": 0.0027928724884986877,
1013
+ "l2": 0.00020870771550107747,
1014
+ "psnr": 36.80461495651335,
1015
+ "ssim": 0.9843098521232605,
1016
+ "hole_l1": 0.024707572534680367,
1017
+ "hole_l2": 0.0018463644664734602,
1018
+ "hole_psnr": 27.33682566498254,
1019
+ "hole_fraction": 0.113037109375
1020
+ },
1021
+ "delta_hole_psnr": 1.0034692142230526
1022
+ },
1023
+ {
1024
+ "validation_index": 1778,
1025
+ "rough": {
1026
+ "l1": 0.016899580135941505,
1027
+ "l2": 0.0030970617663115263,
1028
+ "psnr": 25.09050133196403,
1029
+ "ssim": 0.8870254158973694,
1030
+ "hole_l1": 0.10079458355903625,
1031
+ "hole_l2": 0.018471883609890938,
1032
+ "hole_psnr": 17.33488816542881,
1033
+ "hole_fraction": 0.16766357421875
1034
+ },
1035
+ "refined": {
1036
+ "l1": 0.018261650577187538,
1037
+ "l2": 0.0037499219179153442,
1038
+ "psnr": 24.259777751980273,
1039
+ "ssim": 0.883298933506012,
1040
+ "hole_l1": 0.10891842097043991,
1041
+ "hole_l2": 0.022365752607584,
1042
+ "hole_psnr": 16.50416483235952,
1043
+ "hole_fraction": 0.16766357421875
1044
+ },
1045
+ "delta_hole_psnr": -0.8307233330692902
1046
+ },
1047
+ {
1048
+ "validation_index": 1825,
1049
+ "rough": {
1050
+ "l1": 0.011387978680431843,
1051
+ "l2": 0.001009884406812489,
1052
+ "psnr": 29.95728333500969,
1053
+ "ssim": 0.8988690972328186,
1054
+ "hole_l1": 0.035107847303152084,
1055
+ "hole_l2": 0.0031133589800447226,
1056
+ "hole_psnr": 25.06770800915899,
1057
+ "hole_fraction": 0.324371337890625
1058
+ },
1059
+ "refined": {
1060
+ "l1": 0.011536694131791592,
1061
+ "l2": 0.0011533111101016402,
1062
+ "psnr": 29.380535242967248,
1063
+ "ssim": 0.8914839625358582,
1064
+ "hole_l1": 0.03556631878018379,
1065
+ "hole_l2": 0.0035555276554077864,
1066
+ "hole_psnr": 24.490959390053515,
1067
+ "hole_fraction": 0.324371337890625
1068
+ },
1069
+ "delta_hole_psnr": -0.5767486191054765
1070
+ },
1071
+ {
1072
+ "validation_index": 1226,
1073
+ "rough": {
1074
+ "l1": 0.02249549888074398,
1075
+ "l2": 0.006108056753873825,
1076
+ "psnr": 22.14096936288223,
1077
+ "ssim": 0.8774979114532471,
1078
+ "hole_l1": 0.12181994318962097,
1079
+ "hole_l2": 0.03307697921991348,
1080
+ "hole_psnr": 14.804741595797779,
1081
+ "hole_fraction": 0.184661865234375
1082
+ },
1083
+ "refined": {
1084
+ "l1": 0.023123443126678467,
1085
+ "l2": 0.0068352012895047665,
1086
+ "psnr": 21.65248691391115,
1087
+ "ssim": 0.8811467289924622,
1088
+ "hole_l1": 0.12522046267986298,
1089
+ "hole_l2": 0.037014685571193695,
1090
+ "hole_psnr": 14.31625935469285,
1091
+ "hole_fraction": 0.184661865234375
1092
+ },
1093
+ "delta_hole_psnr": -0.4884822411049292
1094
+ },
1095
+ {
1096
+ "validation_index": 1671,
1097
+ "rough": {
1098
+ "l1": 0.019956663250923157,
1099
+ "l2": 0.00282147154211998,
1100
+ "psnr": 25.495243257457343,
1101
+ "ssim": 0.8243646621704102,
1102
+ "hole_l1": 0.07647078484296799,
1103
+ "hole_l2": 0.010811434127390385,
1104
+ "hole_psnr": 19.661166934379022,
1105
+ "hole_fraction": 0.2609710693359375
1106
+ },
1107
+ "refined": {
1108
+ "l1": 0.019974226132035255,
1109
+ "l2": 0.002949242712929845,
1110
+ "psnr": 25.30289484976653,
1111
+ "ssim": 0.8279411196708679,
1112
+ "hole_l1": 0.0765380859375,
1113
+ "hole_l2": 0.011301032267510891,
1114
+ "hole_psnr": 19.468818850468143,
1115
+ "hole_fraction": 0.2609710693359375
1116
+ },
1117
+ "delta_hole_psnr": -0.1923480839108791
1118
+ },
1119
+ {
1120
+ "validation_index": 774,
1121
+ "rough": {
1122
+ "l1": 0.0143342986702919,
1123
+ "l2": 0.0038197310641407967,
1124
+ "psnr": 24.179672133896574,
1125
+ "ssim": 0.9209473729133606,
1126
+ "hole_l1": 0.09645883738994598,
1127
+ "hole_l2": 0.025703858584165573,
1128
+ "hole_psnr": 15.900016768233876,
1129
+ "hole_fraction": 0.1486053466796875
1130
+ },
1131
+ "refined": {
1132
+ "l1": 0.014362520538270473,
1133
+ "l2": 0.004076144192367792,
1134
+ "psnr": 23.897504613579482,
1135
+ "ssim": 0.9252254962921143,
1136
+ "hole_l1": 0.09664874523878098,
1137
+ "hole_l2": 0.02742931619286537,
1138
+ "hole_psnr": 15.617850191314155,
1139
+ "hole_fraction": 0.1486053466796875
1140
+ },
1141
+ "delta_hole_psnr": -0.282166576919721
1142
+ },
1143
+ {
1144
+ "validation_index": 303,
1145
+ "rough": {
1146
+ "l1": 0.034654323011636734,
1147
+ "l2": 0.009601580910384655,
1148
+ "psnr": 20.176572540301997,
1149
+ "ssim": 0.7823416590690613,
1150
+ "hole_l1": 0.12748995423316956,
1151
+ "hole_l2": 0.03532329946756363,
1152
+ "hole_psnr": 14.519387367583933,
1153
+ "hole_fraction": 0.271820068359375
1154
+ },
1155
+ "refined": {
1156
+ "l1": 0.036649029701948166,
1157
+ "l2": 0.01108639407902956,
1158
+ "psnr": 19.55209687956607,
1159
+ "ssim": 0.7835074067115784,
1160
+ "hole_l1": 0.13482828438282013,
1161
+ "hole_l2": 0.040785789489746094,
1162
+ "hole_psnr": 13.894911266454848,
1163
+ "hole_fraction": 0.271820068359375
1164
+ },
1165
+ "delta_hole_psnr": -0.6244761011290851
1166
+ },
1167
+ {
1168
+ "validation_index": 600,
1169
+ "rough": {
1170
+ "l1": 0.009330750443041325,
1171
+ "l2": 0.0016217706725001335,
1172
+ "psnr": 27.90010557467096,
1173
+ "ssim": 0.9239651560783386,
1174
+ "hole_l1": 0.06626570969820023,
1175
+ "hole_l2": 0.011517594568431377,
1176
+ "hole_psnr": 19.386382131643387,
1177
+ "hole_fraction": 0.14080810546875
1178
+ },
1179
+ "refined": {
1180
+ "l1": 0.008663345128297806,
1181
+ "l2": 0.0015661092475056648,
1182
+ "psnr": 28.051779460239274,
1183
+ "ssim": 0.9297456741333008,
1184
+ "hole_l1": 0.061525892466306686,
1185
+ "hole_l2": 0.011122293770313263,
1186
+ "hole_psnr": 19.538056381980617,
1187
+ "hole_fraction": 0.14080810546875
1188
+ },
1189
+ "delta_hole_psnr": 0.15167425033722992
1190
+ },
1191
+ {
1192
+ "validation_index": 1516,
1193
+ "rough": {
1194
+ "l1": 0.03001675195991993,
1195
+ "l2": 0.007618393283337355,
1196
+ "psnr": 21.181366115681485,
1197
+ "ssim": 0.8393765091896057,
1198
+ "hole_l1": 0.11154963076114655,
1199
+ "hole_l2": 0.028311824426054955,
1200
+ "hole_psnr": 15.480321436112852,
1201
+ "hole_fraction": 0.2690887451171875
1202
+ },
1203
+ "refined": {
1204
+ "l1": 0.029575033113360405,
1205
+ "l2": 0.00793098658323288,
1206
+ "psnr": 21.00672784813161,
1207
+ "ssim": 0.8444389700889587,
1208
+ "hole_l1": 0.1099080890417099,
1209
+ "hole_l2": 0.029473502188920975,
1210
+ "hole_psnr": 15.305682560416908,
1211
+ "hole_fraction": 0.2690887451171875
1212
+ },
1213
+ "delta_hole_psnr": -0.17463887569594405
1214
+ },
1215
+ {
1216
+ "validation_index": 1966,
1217
+ "rough": {
1218
+ "l1": 0.032736558467149734,
1219
+ "l2": 0.009081680327653885,
1220
+ "psnr": 20.41833789197806,
1221
+ "ssim": 0.8181911110877991,
1222
+ "hole_l1": 0.15357360243797302,
1223
+ "hole_l2": 0.04260393604636192,
1224
+ "hole_psnr": 13.70550275914891,
1225
+ "hole_fraction": 0.213165283203125
1226
+ },
1227
+ "refined": {
1228
+ "l1": 0.03306162357330322,
1229
+ "l2": 0.009553872980177402,
1230
+ "psnr": 20.198205370085738,
1231
+ "ssim": 0.8237218856811523,
1232
+ "hole_l1": 0.1550985425710678,
1233
+ "hole_l2": 0.04481909051537514,
1234
+ "hole_psnr": 13.485369605667207,
1235
+ "hole_fraction": 0.213165283203125
1236
+ },
1237
+ "delta_hole_psnr": -0.2201331534817026
1238
+ },
1239
+ {
1240
+ "validation_index": 111,
1241
+ "rough": {
1242
+ "l1": 0.012615458108484745,
1243
+ "l2": 0.003059709444642067,
1244
+ "psnr": 25.143198129236154,
1245
+ "ssim": 0.9405741691589355,
1246
+ "hole_l1": 0.05819022282958031,
1247
+ "hole_l2": 0.01411325391381979,
1248
+ "hole_psnr": 18.503728449347246,
1249
+ "hole_fraction": 0.216796875
1250
+ },
1251
+ "refined": {
1252
+ "l1": 0.011848397552967072,
1253
+ "l2": 0.0031699715182185173,
1254
+ "psnr": 24.989446398441103,
1255
+ "ssim": 0.9480624794960022,
1256
+ "hole_l1": 0.05465206876397133,
1257
+ "hole_l2": 0.014621851034462452,
1258
+ "hole_psnr": 18.34997644945413,
1259
+ "hole_fraction": 0.216796875
1260
+ },
1261
+ "delta_hole_psnr": -0.15375199989311739
1262
+ },
1263
+ {
1264
+ "validation_index": 586,
1265
+ "rough": {
1266
+ "l1": 0.004476530477404594,
1267
+ "l2": 0.0004708874912466854,
1268
+ "psnr": 33.27082846093048,
1269
+ "ssim": 0.9773461222648621,
1270
+ "hole_l1": 0.0321681872010231,
1271
+ "hole_l2": 0.0033837808296084404,
1272
+ "hole_psnr": 24.70597774348787,
1273
+ "hole_fraction": 0.13916015625
1274
+ },
1275
+ "refined": {
1276
+ "l1": 0.0034194467589259148,
1277
+ "l2": 0.0004251417703926563,
1278
+ "psnr": 33.714662232854195,
1279
+ "ssim": 0.9835888743400574,
1280
+ "hole_l1": 0.024572022259235382,
1281
+ "hole_l2": 0.003055053763091564,
1282
+ "hole_psnr": 25.149811426035722,
1283
+ "hole_fraction": 0.13916015625
1284
+ },
1285
+ "delta_hole_psnr": 0.4438336825478508
1286
+ },
1287
+ {
1288
+ "validation_index": 462,
1289
+ "rough": {
1290
+ "l1": 0.015107559971511364,
1291
+ "l2": 0.0027220372576266527,
1292
+ "psnr": 25.65105934727494,
1293
+ "ssim": 0.8985742926597595,
1294
+ "hole_l1": 0.05529370158910751,
1295
+ "hole_l2": 0.009962663054466248,
1296
+ "hole_psnr": 20.01624557633427,
1297
+ "hole_fraction": 0.273223876953125
1298
+ },
1299
+ "refined": {
1300
+ "l1": 0.014945074915885925,
1301
+ "l2": 0.0029708941001445055,
1302
+ "psnr": 25.271128286886185,
1303
+ "ssim": 0.898262083530426,
1304
+ "hole_l1": 0.05469900742173195,
1305
+ "hole_l2": 0.010873479768633842,
1306
+ "hole_psnr": 19.63631449246423,
1307
+ "hole_fraction": 0.273223876953125
1308
+ },
1309
+ "delta_hole_psnr": -0.3799310838700407
1310
+ },
1311
+ {
1312
+ "validation_index": 1181,
1313
+ "rough": {
1314
+ "l1": 0.01667766459286213,
1315
+ "l2": 0.00324572273530066,
1316
+ "psnr": 24.88688582375464,
1317
+ "ssim": 0.8632571697235107,
1318
+ "hole_l1": 0.05365409702062607,
1319
+ "hole_l2": 0.010441887192428112,
1320
+ "hole_psnr": 19.812210029439804,
1321
+ "hole_fraction": 0.3108367919921875
1322
+ },
1323
+ "refined": {
1324
+ "l1": 0.015174287371337414,
1325
+ "l2": 0.0030216239392757416,
1326
+ "psnr": 25.197595874027414,
1327
+ "ssim": 0.8774250149726868,
1328
+ "hole_l1": 0.04881753772497177,
1329
+ "hole_l2": 0.009720933623611927,
1330
+ "hole_psnr": 20.1229202230509,
1331
+ "hole_fraction": 0.3108367919921875
1332
+ },
1333
+ "delta_hole_psnr": 0.3107101936110972
1334
+ },
1335
+ {
1336
+ "validation_index": 839,
1337
+ "rough": {
1338
+ "l1": 0.0083765285089612,
1339
+ "l2": 0.0013276725076138973,
1340
+ "psnr": 28.769090376759596,
1341
+ "ssim": 0.9462795257568359,
1342
+ "hole_l1": 0.03545135632157326,
1343
+ "hole_l2": 0.005619008559733629,
1344
+ "hole_psnr": 22.503403063207877,
1345
+ "hole_fraction": 0.2362823486328125
1346
+ },
1347
+ "refined": {
1348
+ "l1": 0.008237166330218315,
1349
+ "l2": 0.0015611778944730759,
1350
+ "psnr": 28.065476067479054,
1351
+ "ssim": 0.9497084617614746,
1352
+ "hole_l1": 0.03486153855919838,
1353
+ "hole_l2": 0.006607255898416042,
1354
+ "hole_psnr": 21.799788726804277,
1355
+ "hole_fraction": 0.2362823486328125
1356
+ },
1357
+ "delta_hole_psnr": -0.7036143364036
1358
+ },
1359
+ {
1360
+ "validation_index": 535,
1361
+ "rough": {
1362
+ "l1": 0.013338207267224789,
1363
+ "l2": 0.0026927199214696884,
1364
+ "psnr": 25.698088166166745,
1365
+ "ssim": 0.9022871851921082,
1366
+ "hole_l1": 0.05453785881400108,
1367
+ "hole_l2": 0.01101011410355568,
1368
+ "hole_psnr": 19.582081801846684,
1369
+ "hole_fraction": 0.24456787109375
1370
+ },
1371
+ "refined": {
1372
+ "l1": 0.013877292163670063,
1373
+ "l2": 0.0032755201682448387,
1374
+ "psnr": 24.847197221577083,
1375
+ "ssim": 0.9030420184135437,
1376
+ "hole_l1": 0.05674209073185921,
1377
+ "hole_l2": 0.013393093831837177,
1378
+ "hole_psnr": 18.73119088492713,
1379
+ "hole_fraction": 0.24456787109375
1380
+ },
1381
+ "delta_hole_psnr": -0.8508909169195533
1382
+ },
1383
+ {
1384
+ "validation_index": 1731,
1385
+ "rough": {
1386
+ "l1": 0.04663988947868347,
1387
+ "l2": 0.013530497439205647,
1388
+ "psnr": 18.68686236578219,
1389
+ "ssim": 0.7780302166938782,
1390
+ "hole_l1": 0.1511368602514267,
1391
+ "hole_l2": 0.04384566470980644,
1392
+ "hole_psnr": 13.580733415382388,
1393
+ "hole_fraction": 0.30859375
1394
+ },
1395
+ "refined": {
1396
+ "l1": 0.04870247840881348,
1397
+ "l2": 0.015451624989509583,
1398
+ "psnr": 18.110258407137948,
1399
+ "ssim": 0.7770935893058777,
1400
+ "hole_l1": 0.1578206866979599,
1401
+ "hole_l2": 0.05007108673453331,
1402
+ "hole_psnr": 13.00412982643644,
1403
+ "hole_fraction": 0.30859375
1404
+ },
1405
+ "delta_hole_psnr": -0.5766035889459484
1406
+ },
1407
+ {
1408
+ "validation_index": 1600,
1409
+ "rough": {
1410
+ "l1": 0.013429203070700169,
1411
+ "l2": 0.0031035749707370996,
1412
+ "psnr": 25.081377592252032,
1413
+ "ssim": 0.9205520749092102,
1414
+ "hole_l1": 0.09047972410917282,
1415
+ "hole_l2": 0.020910443738102913,
1416
+ "hole_psnr": 16.796367509716767,
1417
+ "hole_fraction": 0.1484222412109375
1418
+ },
1419
+ "refined": {
1420
+ "l1": 0.012562033720314503,
1421
+ "l2": 0.003125288523733616,
1422
+ "psnr": 25.051098828059082,
1423
+ "ssim": 0.9266920685768127,
1424
+ "hole_l1": 0.08463713526725769,
1425
+ "hole_l2": 0.02105673961341381,
1426
+ "hole_psnr": 16.76608873298705,
1427
+ "hole_fraction": 0.1484222412109375
1428
+ },
1429
+ "delta_hole_psnr": -0.030278776729716128
1430
+ },
1431
+ {
1432
+ "validation_index": 769,
1433
+ "rough": {
1434
+ "l1": 0.02697957120835781,
1435
+ "l2": 0.006617127452045679,
1436
+ "psnr": 21.793305003591126,
1437
+ "ssim": 0.8151968121528625,
1438
+ "hole_l1": 0.10823538154363632,
1439
+ "hole_l2": 0.026546282693743706,
1440
+ "hole_psnr": 15.759962850767835,
1441
+ "hole_fraction": 0.249267578125
1442
+ },
1443
+ "refined": {
1444
+ "l1": 0.02768552303314209,
1445
+ "l2": 0.007073222193866968,
1446
+ "psnr": 21.50382699042583,
1447
+ "ssim": 0.8175828456878662,
1448
+ "hole_l1": 0.11106748878955841,
1449
+ "hole_l2": 0.0283760204911232,
1450
+ "hole_psnr": 15.470485109197295,
1451
+ "hole_fraction": 0.249267578125
1452
+ },
1453
+ "delta_hole_psnr": -0.28947774157053985
1454
+ },
1455
+ {
1456
+ "validation_index": 1459,
1457
+ "rough": {
1458
+ "l1": 0.013341682963073254,
1459
+ "l2": 0.002349199028685689,
1460
+ "psnr": 26.290801873951168,
1461
+ "ssim": 0.9226545691490173,
1462
+ "hole_l1": 0.0647626519203186,
1463
+ "hole_l2": 0.011403385549783707,
1464
+ "hole_psnr": 19.42966191882363,
1465
+ "hole_fraction": 0.2060089111328125
1466
+ },
1467
+ "refined": {
1468
+ "l1": 0.012789498083293438,
1469
+ "l2": 0.0024153387639671564,
1470
+ "psnr": 26.170219485548248,
1471
+ "ssim": 0.9269556403160095,
1472
+ "hole_l1": 0.06208225339651108,
1473
+ "hole_l2": 0.011724438518285751,
1474
+ "hole_psnr": 19.30907946416634,
1475
+ "hole_fraction": 0.2060089111328125
1476
+ },
1477
+ "delta_hole_psnr": -0.12058245465728845
1478
+ },
1479
+ {
1480
+ "validation_index": 677,
1481
+ "rough": {
1482
+ "l1": 0.015285152941942215,
1483
+ "l2": 0.0031844768673181534,
1484
+ "psnr": 24.96961901569517,
1485
+ "ssim": 0.8935141563415527,
1486
+ "hole_l1": 0.0859704539179802,
1487
+ "hole_l2": 0.017910903319716454,
1488
+ "hole_psnr": 17.46882510361171,
1489
+ "hole_fraction": 0.17779541015625
1490
+ },
1491
+ "refined": {
1492
+ "l1": 0.015462968498468399,
1493
+ "l2": 0.003701949492096901,
1494
+ "psnr": 24.315695108811283,
1495
+ "ssim": 0.8978578448295593,
1496
+ "hole_l1": 0.08697057515382767,
1497
+ "hole_l2": 0.020821403712034225,
1498
+ "hole_psnr": 16.81489995102105,
1499
+ "hole_fraction": 0.17779541015625
1500
+ },
1501
+ "delta_hole_psnr": -0.6539251525906593
1502
+ },
1503
+ {
1504
+ "validation_index": 81,
1505
+ "rough": {
1506
+ "l1": 0.013222870416939259,
1507
+ "l2": 0.0024573979899287224,
1508
+ "psnr": 26.095245013007382,
1509
+ "ssim": 0.9048671722412109,
1510
+ "hole_l1": 0.03679564222693443,
1511
+ "hole_l2": 0.006838266737759113,
1512
+ "hole_psnr": 21.65053962843672,
1513
+ "hole_fraction": 0.3593597412109375
1514
+ },
1515
+ "refined": {
1516
+ "l1": 0.01335363369435072,
1517
+ "l2": 0.0025928423274308443,
1518
+ "psnr": 25.86223892181183,
1519
+ "ssim": 0.9063968658447266,
1520
+ "hole_l1": 0.037159513682127,
1521
+ "hole_l2": 0.007215172052383423,
1522
+ "hole_psnr": 21.417533082974707,
1523
+ "hole_fraction": 0.3593597412109375
1524
+ },
1525
+ "delta_hole_psnr": -0.2330065454620147
1526
+ },
1527
+ {
1528
+ "validation_index": 1168,
1529
+ "rough": {
1530
+ "l1": 0.006746536586433649,
1531
+ "l2": 0.0009593518334440887,
1532
+ "psnr": 30.18022090117116,
1533
+ "ssim": 0.9693885445594788,
1534
+ "hole_l1": 0.047876667231321335,
1535
+ "hole_l2": 0.006808021105825901,
1536
+ "hole_psnr": 21.669791065472175,
1537
+ "hole_fraction": 0.1409149169921875
1538
+ },
1539
+ "refined": {
1540
+ "l1": 0.0051671527326107025,
1541
+ "l2": 0.0007316291448660195,
1542
+ "psnr": 31.357090024816017,
1543
+ "ssim": 0.9777514338493347,
1544
+ "hole_l1": 0.036668598651885986,
1545
+ "hole_l2": 0.005191992502659559,
1546
+ "hole_psnr": 22.846659433371045,
1547
+ "hole_fraction": 0.1409149169921875
1548
+ },
1549
+ "delta_hole_psnr": 1.1768683678988694
1550
+ },
1551
+ {
1552
+ "validation_index": 62,
1553
+ "rough": {
1554
+ "l1": 0.011284600012004375,
1555
+ "l2": 0.0014839592622593045,
1556
+ "psnr": 28.285780211721065,
1557
+ "ssim": 0.9114546179771423,
1558
+ "hole_l1": 0.061327435076236725,
1559
+ "hole_l2": 0.00806474406272173,
1560
+ "hole_psnr": 20.934094105330946,
1561
+ "hole_fraction": 0.1840057373046875
1562
+ },
1563
+ "refined": {
1564
+ "l1": 0.012053693644702435,
1565
+ "l2": 0.001808818313293159,
1566
+ "psnr": 27.4260505364705,
1567
+ "ssim": 0.910711944103241,
1568
+ "hole_l1": 0.06550715863704681,
1569
+ "hole_l2": 0.009830227121710777,
1570
+ "hole_psnr": 20.07436447929185,
1571
+ "hole_fraction": 0.1840057373046875
1572
+ },
1573
+ "delta_hole_psnr": -0.8597296260390941
1574
+ },
1575
+ {
1576
+ "validation_index": 1469,
1577
+ "rough": {
1578
+ "l1": 0.032724928110837936,
1579
+ "l2": 0.008343800902366638,
1580
+ "psnr": 20.786360674812315,
1581
+ "ssim": 0.8283528685569763,
1582
+ "hole_l1": 0.08712112158536911,
1583
+ "hole_l2": 0.022213077172636986,
1584
+ "hole_psnr": 16.533912745660558,
1585
+ "hole_fraction": 0.3756256103515625
1586
+ },
1587
+ "refined": {
1588
+ "l1": 0.03219197317957878,
1589
+ "l2": 0.008644599467515945,
1590
+ "psnr": 20.632551242035227,
1591
+ "ssim": 0.8309615254402161,
1592
+ "hole_l1": 0.08570229262113571,
1593
+ "hole_l2": 0.023013873025774956,
1594
+ "hole_psnr": 16.380102873644336,
1595
+ "hole_fraction": 0.3756256103515625
1596
+ },
1597
+ "delta_hole_psnr": -0.15380987201622176
1598
+ },
1599
+ {
1600
+ "validation_index": 1744,
1601
+ "rough": {
1602
+ "l1": 0.00988290086388588,
1603
+ "l2": 0.002194232540205121,
1604
+ "psnr": 26.587173486955322,
1605
+ "ssim": 0.9192679524421692,
1606
+ "hole_l1": 0.050513625144958496,
1607
+ "hole_l2": 0.011215195059776306,
1608
+ "hole_psnr": 19.501931685680574,
1609
+ "hole_fraction": 0.195648193359375
1610
+ },
1611
+ "refined": {
1612
+ "l1": 0.009150085039436817,
1613
+ "l2": 0.002018959494307637,
1614
+ "psnr": 26.948723940702997,
1615
+ "ssim": 0.9233610033988953,
1616
+ "hole_l1": 0.046768054366111755,
1617
+ "hole_l2": 0.01031933631747961,
1618
+ "hole_psnr": 19.863482332247898,
1619
+ "hole_fraction": 0.195648193359375
1620
+ },
1621
+ "delta_hole_psnr": 0.3615506465673235
1622
+ },
1623
+ {
1624
+ "validation_index": 1934,
1625
+ "rough": {
1626
+ "l1": 0.01750558614730835,
1627
+ "l2": 0.004541680216789246,
1628
+ "psnr": 23.427834480495836,
1629
+ "ssim": 0.913569450378418,
1630
+ "hole_l1": 0.07299861311912537,
1631
+ "hole_l2": 0.018938887864351273,
1632
+ "hole_psnr": 17.226455273684568,
1633
+ "hole_fraction": 0.23980712890625
1634
+ },
1635
+ "refined": {
1636
+ "l1": 0.01790742389857769,
1637
+ "l2": 0.005415800958871841,
1638
+ "psnr": 22.66337305189248,
1639
+ "ssim": 0.9182353615760803,
1640
+ "hole_l1": 0.07467427104711533,
1641
+ "hole_l2": 0.022583989426493645,
1642
+ "hole_psnr": 16.461993381916603,
1643
+ "hole_fraction": 0.23980712890625
1644
+ },
1645
+ "delta_hole_psnr": -0.7644618917679651
1646
+ }
1647
+ ]
1648
+ }
examples/README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # One-image example
2
+
3
+ `masked.png`, `mask.png`, and `expected.png` are a fixed validation example from
4
+ the stage-2 checkpoint at step **97,397**. White mask pixels mark the region to
5
+ inpaint; black pixels mark the known image. The input already hides the target
6
+ pixels. `expected.png` is the model output, not the original photograph.
7
+
8
+ ```bash
9
+ csa infer --checkpoint checkpoints/csa-stage2-step97397.pt \
10
+ --image examples/masked.png --mask examples/mask.png \
11
+ --output output.png --device cpu
12
+ ```
13
+
14
+ The reference was generated on an H100 with FP32 inference. Floating-point
15
+ differences across devices or PyTorch versions can affect final quantization.
16
+ Known pixels are composited from the input. Evaluation details and all eight
17
+ displayed cases are in [the release notes](../README.md).
examples/expected.png ADDED

Git LFS Details

  • SHA256: c5d43fedff374a1c1cb9ff1e72cfdd0a3e391652e40eae479f126de16f60be5b
  • Pointer size: 131 Bytes
  • Size of remote file: 103 kB
examples/mask.png ADDED
examples/masked.png ADDED
export-verification.json ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "PASS",
3
+ "step": 97397,
4
+ "python": "3.10.14",
5
+ "torch": "2.6.0+cu124",
6
+ "device": "NVIDIA H100 80GB HBM3",
7
+ "precision": "FP32",
8
+ "deterministic_algorithms": true,
9
+ "cublas_workspace_config": ":4096:8",
10
+ "inference_bytes": 528510920,
11
+ "inference_sha256": "605b80c18dcb0856367e6276813df0b54ec42aabea782af1631052aedb7abdfe",
12
+ "full_checkpoint_sha256": "9613d50e7d5cc7e7bf097b13a3987d29d086f82c84596c4a7b35411dcfa92c52",
13
+ "generator_tensor_sha256": "455200b2e905de39d96a0606def7f06b0d2f399eba5256e9126033ad2614522b",
14
+ "cases": [
15
+ {
16
+ "validation_index": 582,
17
+ "full_vs_export_tensor_equal": true,
18
+ "frozen_run_png_max_abs_error": 1,
19
+ "known_pixels_equal": true
20
+ },
21
+ {
22
+ "validation_index": 605,
23
+ "full_vs_export_tensor_equal": true,
24
+ "frozen_run_png_max_abs_error": 1,
25
+ "known_pixels_equal": true
26
+ },
27
+ {
28
+ "validation_index": 1659,
29
+ "full_vs_export_tensor_equal": true,
30
+ "frozen_run_png_max_abs_error": 1,
31
+ "known_pixels_equal": true
32
+ },
33
+ {
34
+ "validation_index": 477,
35
+ "full_vs_export_tensor_equal": true,
36
+ "frozen_run_png_max_abs_error": 1,
37
+ "known_pixels_equal": true
38
+ },
39
+ {
40
+ "validation_index": 97,
41
+ "full_vs_export_tensor_equal": true,
42
+ "frozen_run_png_max_abs_error": 16,
43
+ "known_pixels_equal": true
44
+ },
45
+ {
46
+ "validation_index": 1001,
47
+ "full_vs_export_tensor_equal": true,
48
+ "frozen_run_png_max_abs_error": 1,
49
+ "known_pixels_equal": true
50
+ },
51
+ {
52
+ "validation_index": 1492,
53
+ "full_vs_export_tensor_equal": true,
54
+ "frozen_run_png_max_abs_error": 5,
55
+ "known_pixels_equal": true
56
+ },
57
+ {
58
+ "validation_index": 1850,
59
+ "full_vs_export_tensor_equal": true,
60
+ "frozen_run_png_max_abs_error": 13,
61
+ "known_pixels_equal": true
62
+ }
63
+ ],
64
+ "cli_example_png_max_abs_error": 1,
65
+ "pretrained_downloads": 0,
66
+ "note": "Bitwise forward equality verified with deterministic GPU algorithms. Default backend kernels and different devices may round differently; frozen-run PNG differences are recorded as observations, not export equality checks."
67
+ }
preview-full.jpg ADDED

Git LFS Details

  • SHA256: 6915109589a4301e1446020dd59091cd51e96854b64b072237e9487ed62ab9d6
  • Pointer size: 132 Bytes
  • Size of remote file: 1.28 MB
preview.jpg ADDED

Git LFS Details

  • SHA256: bc1ec86541d7a24a23f8ce910c7480d897e749b53d1d9e0a9168ee70e99f91fb
  • Pointer size: 131 Bytes
  • Size of remote file: 366 kB
release-manifest.json ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "release": "csa-stage2-step97397",
3
+ "checkpoint_step": 97397,
4
+ "package_version": "0.3.0",
5
+ "repository": "KumaPower/CSA",
6
+ "files": {
7
+ "LICENSE.md": {
8
+ "bytes": 717,
9
+ "sha256": "3d7f9859efabc748c7e1a9da0115900fbb923d1c6ce643cef836e8ffa4e9df14"
10
+ },
11
+ "README.md": {
12
+ "bytes": 8448,
13
+ "sha256": "55a6226f09518fe892ef55543d7acfec948c03473301d4673a34677e4f592055"
14
+ },
15
+ "csa-inpainting-source.tar.gz": {
16
+ "bytes": 3871507,
17
+ "sha256": "3b5241738138ce9960464b09b275808039e48475022fa7eb4a23963c0d09859f"
18
+ },
19
+ "csa-stage2-step97397.pt": {
20
+ "bytes": 528510920,
21
+ "sha256": "605b80c18dcb0856367e6276813df0b54ec42aabea782af1631052aedb7abdfe"
22
+ },
23
+ "csa_inpainting-0.3.0-py3-none-any.whl": {
24
+ "bytes": 49106,
25
+ "sha256": "508405994683bb63f25d35d95bcebb88037a8f15766be1a2448e219378657e00"
26
+ },
27
+ "evaluation.json": {
28
+ "bytes": 50439,
29
+ "sha256": "4114dc4cfb0e8b1dbec8c46154d84dd19a0de249a354d5943ec2648dd3857825"
30
+ },
31
+ "examples/README.md": {
32
+ "bytes": 789,
33
+ "sha256": "cec629ddda5883b62f6cf104addbe1c6d408ff8ff26ac9a8122e1bc8f733dced"
34
+ },
35
+ "examples/expected.png": {
36
+ "bytes": 103082,
37
+ "sha256": "c5d43fedff374a1c1cb9ff1e72cfdd0a3e391652e40eae479f126de16f60be5b"
38
+ },
39
+ "examples/mask.png": {
40
+ "bytes": 1554,
41
+ "sha256": "a85aa71360708cd7d04003af66872879cba232a55f3a5408797e7462059df03d"
42
+ },
43
+ "examples/masked.png": {
44
+ "bytes": 85489,
45
+ "sha256": "9a2383922aaae53cd911b3eee7ea3f24e8b5e968c8ab25846a17bc040d7c9ed7"
46
+ },
47
+ "export-verification.json": {
48
+ "bytes": 2153,
49
+ "sha256": "9bd67a8dbca0ee5797e68ef7a86d1bc84d3f5f105a40d272a9265ae4230dbc48"
50
+ },
51
+ "preview-full.jpg": {
52
+ "bytes": 1281602,
53
+ "sha256": "6915109589a4301e1446020dd59091cd51e96854b64b072237e9487ed62ab9d6"
54
+ },
55
+ "preview.jpg": {
56
+ "bytes": 365527,
57
+ "sha256": "bc1ec86541d7a24a23f8ce910c7480d897e749b53d1d9e0a9168ee70e99f91fb"
58
+ },
59
+ "source-compatibility.json": {
60
+ "bytes": 538,
61
+ "sha256": "4d50b1d51a4e9b94c6be822f4f27668d0e956b1c9e587ebbe656059afcaeaab9"
62
+ },
63
+ "source-manifest.json": {
64
+ "bytes": 2260,
65
+ "sha256": "4d16a9fd9ebeb9a011bb4f8a05c7da8c02140a632c586022086e9d6a07da119b"
66
+ },
67
+ "training-config.yaml": {
68
+ "bytes": 858,
69
+ "sha256": "8a8cda5a147a987b996ee8b2cdd389f8608103371a947ac4b6a1d33fbf93586a"
70
+ },
71
+ "validation.json": {
72
+ "bytes": 937,
73
+ "sha256": "5c7e84cbb97ac2d14d6a88045d4717ebb11c5a0a3504d1175ee574f607af85e0"
74
+ }
75
+ }
76
+ }
source-compatibility.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checkpoint_step": 97397,
3
+ "checks": [
4
+ {
5
+ "module": "attention.py",
6
+ "scope": "entire_module",
7
+ "ast_equal_to_training_snapshot": true
8
+ },
9
+ {
10
+ "module": "networks.py",
11
+ "scope": "entire_module",
12
+ "ast_equal_to_training_snapshot": true
13
+ },
14
+ {
15
+ "module": "stage1.py",
16
+ "scope": "entire_module",
17
+ "ast_equal_to_training_snapshot": true
18
+ },
19
+ {
20
+ "module": "stage2.py",
21
+ "scope": "Stage2InpaintingModel",
22
+ "ast_equal_to_training_snapshot": true
23
+ }
24
+ ]
25
+ }
source-manifest.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "base_git_commit": "5189923a86bb9f60d6c078ad743d758bd09518ce",
3
+ "branch": "codex/modern-pytorch",
4
+ "includes_uncommitted_changes": true,
5
+ "package_version": "0.3.0",
6
+ "inference_checkpoint_step": 97397,
7
+ "modules": {
8
+ "src/csa_inpainting/discriminators.py": "5cf2c00a350ec09b4165acd9e9eb5f8e272ddffff222033896bf2fa00ea23681",
9
+ "src/csa_inpainting/inference.py": "6d31701286192bfd9ed74918ea1a207ee53adfc91434e99d7a3fe7d41e850a09",
10
+ "src/csa_inpainting/perceptual.py": "d1d99a3a3e4d6c40ba6582d691a4396cc119609d27cd420dab7589e56a3244e5",
11
+ "src/csa_inpainting/stage1.py": "e7c5c829f299d87b911862fe0041147fe98d4352d4b0a4edd7322d776a7ebff5",
12
+ "src/csa_inpainting/stage2.py": "dcb22db3525be20b6afe0e76bd9e75658008b259a7438740b621f8e655279c30",
13
+ "src/csa_inpainting/__init__.py": "86c9183465b035e19c6288b3786eb9087844123f469bab89e235aa394c6d22fd",
14
+ "src/csa_inpainting/__main__.py": "6d8b7d7846a845059d7a3107143f11131f63c5511d669b44085b15ec5e3d2279",
15
+ "src/csa_inpainting/attention.py": "acda9d9039ffbae77bf311cfde2c7f22b3f60431efd0db321f48a06e1707bb0a",
16
+ "src/csa_inpainting/cli.py": "24f23b7956a224342036c737efbbdfad5e6b6004f426592375e6f136570724eb",
17
+ "src/csa_inpainting/config.py": "e306bd7477eb0bc76f9d42d1103c85a80f419848528b0bf25b0e70aa499c308d",
18
+ "src/csa_inpainting/data.py": "0122343e05da94d2009389ab24882ca808a75db6029b8551ace4406e900b83e5",
19
+ "src/csa_inpainting/diagnostics.py": "8c6c28460fd38d5dfdeb33b2e0d83e2019e775f4f3b25c4f2c4171f6281557ed",
20
+ "src/csa_inpainting/engine.py": "7f85a8fbaea602d9f29398340bf70b8aeaacb7d1ebf71e882c16fd3a98748b2f",
21
+ "src/csa_inpainting/evaluation.py": "51bd0541d3b040979b2dcaceaf08b886c8ae44e31a8193af84de48664da6c8f1",
22
+ "src/csa_inpainting/experiment.py": "c5cacf564402d7449d922343cdec0017c10b3d332a0e7d91a12f878aed653e9f",
23
+ "src/csa_inpainting/losses.py": "4bcf84bd52e93c200eacbd0f446dba312b7c944a5ea028e3df9471aa1684feb8",
24
+ "src/csa_inpainting/masks.py": "5099bf99d5210246976820e4af0961c849c2c6f227654933001943e04435c977",
25
+ "src/csa_inpainting/networks.py": "754f16d043c5d6794fc590b4f3acbbe168d9b63f33c034c0f0d3a56bcb455d90"
26
+ },
27
+ "source_archive_sha256": "3b5241738138ce9960464b09b275808039e48475022fa7eb4a23963c0d09859f",
28
+ "source_archive_files": 111
29
+ }
training-config.yaml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Documentary configuration for the indexed stage-2 runner; not csa train.
2
+ model:
3
+ width: 64
4
+ depth: 8
5
+ attention_chunk_size: 256
6
+ mask_threshold: 0.3125
7
+ data:
8
+ train_images: data/train.jsonl
9
+ val_images: data/validation.jsonl
10
+ train_masks: ''
11
+ val_masks: ''
12
+ mask_mode: random
13
+ random_min_fraction: 0.1
14
+ random_max_fraction: 0.4
15
+ mask_white_is_hole: true
16
+ image_size: 256
17
+ center_overlap: 4
18
+ horizontal_flip: true
19
+ batch_size: 192
20
+ workers: 32
21
+ train:
22
+ output: runs/stage2/run
23
+ device: cuda:0
24
+ seed: 2019
25
+ epochs: 120
26
+ decay_start: 20
27
+ lr: 0.0002
28
+ beta1: 0.5
29
+ beta2: 0.999
30
+ reconstruction_weight: 0.1
31
+ lpips_weight: 1.0
32
+ lpips_net: vgg
33
+ lpips_batch_size: 8
34
+ consistency_weight: 0.01
35
+ adversarial_weight: 0.002
36
+ discriminator_width: 64
37
+ feature_discriminator_width: 512
38
+ amp: bf16
39
+ log_every: 1
40
+ image_discriminator: patch
validation.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "date": "2026-10-29",
3
+ "package_version": "0.3.0",
4
+ "development": {
5
+ "python": "3.12.14",
6
+ "torch": "2.14.1",
7
+ "device": "cpu",
8
+ "pytest": {
9
+ "passed": 313,
10
+ "skipped": 16,
11
+ "subtests_passed": 12,
12
+ "seconds": 174.52,
13
+ "skip_reason": "CUDA GPU unavailable"
14
+ },
15
+ "ruff_check": "PASS",
16
+ "ruff_format": "PASS",
17
+ "uv_lock_check": "PASS",
18
+ "wheel_build": "PASS",
19
+ "cpu_smoke": "PASS",
20
+ "local_full_checkpoint_cli": "PASS"
21
+ },
22
+ "production": {
23
+ "python": "3.10.14",
24
+ "torch": "2.6.0+cu124",
25
+ "release_tests_passed": 21,
26
+ "real_image_export_equivalence_cases": 8,
27
+ "device": "NVIDIA H100 80GB HBM3",
28
+ "deterministic_algorithms": true,
29
+ "generator_tensors_equal": true
30
+ },
31
+ "resume_test_contract": "All immediately restored states exact; future losses and functional outputs checked within float32 tolerance; no cross-backend bitwise Adam-update claim."
32
+ }