Upload folder using huggingface_hub
Browse files- README.md +161 -50
- sdr2hdr/SHA256SUMS +6 -0
- sdr2hdr/index.json +44 -0
- sdr2hdr/sdr2hdr_image_v5.config.json +41 -0
- sdr2hdr/sdr2hdr_image_v5.safetensors +3 -0
- sdr2hdr/sdr2hdr_image_v6.config.json +41 -0
- sdr2hdr/sdr2hdr_image_v6.safetensors +3 -0
- sdr2hdr/sdr2hdr_shadow_s2.config.json +19 -0
- sdr2hdr/sdr2hdr_shadow_s2.safetensors +3 -0
- sdr2hdr/sdr2hdr_shadow_s3.config.json +19 -0
- sdr2hdr/sdr2hdr_shadow_s3.safetensors +3 -0
- sdr2hdr/sdr2hdr_shadow_v1.config.json +19 -0
- sdr2hdr/sdr2hdr_shadow_v1.safetensors +3 -0
- sdr2hdr/sdr2hdr_temporal_v1.config.json +40 -0
- sdr2hdr/sdr2hdr_temporal_v1.safetensors +3 -0
README.md
CHANGED
|
@@ -4,70 +4,181 @@ library_name: comfyui
|
|
| 4 |
pipeline_tag: image-to-image
|
| 5 |
tags:
|
| 6 |
- hdr
|
|
|
|
|
|
|
|
|
|
| 7 |
- diffusion
|
| 8 |
- comfyui
|
| 9 |
-
- vae-decoder
|
| 10 |
- openexr
|
| 11 |
- radiance
|
| 12 |
- rudra
|
| 13 |
---
|
| 14 |
|
| 15 |
-
# RUDRA
|
| 16 |
|
| 17 |
**Radiometric Dynamic-Range Conditioning for HDR-Aware Diffusion Models**
|
| 18 |
-
FXTD Studios
|
| 19 |
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
-
|
| 25 |
|
| 26 |
-
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
-
|
| 29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
```
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
```
|
| 33 |
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
|
| 38 |
-
|
|
| 39 |
-
|
|
| 40 |
-
|
|
| 41 |
-
|
|
| 42 |
-
|
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
##
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
pipeline_tag: image-to-image
|
| 5 |
tags:
|
| 6 |
- hdr
|
| 7 |
+
- inverse-tone-mapping
|
| 8 |
+
- sdr-to-hdr
|
| 9 |
+
- vae-decoder
|
| 10 |
- diffusion
|
| 11 |
- comfyui
|
|
|
|
| 12 |
- openexr
|
| 13 |
- radiance
|
| 14 |
- rudra
|
| 15 |
---
|
| 16 |
|
| 17 |
+
# RUDRA
|
| 18 |
|
| 19 |
**Radiometric Dynamic-Range Conditioning for HDR-Aware Diffusion Models**
|
| 20 |
+
[FXTD Studios](https://fxtdstudios.com) · [github.com/fxtdstudios/RUDRA](https://github.com/fxtdstudios/RUDRA)
|
| 21 |
|
| 22 |
+
Two independent families live in this repository.
|
| 23 |
+
|
| 24 |
+
| family | what it does | files |
|
| 25 |
+
|---|---|---|
|
| 26 |
+
| **`sdr2hdr/`** | takes an ordinary 8-bit frame and reconstructs scene-linear HDR | 6 |
|
| 27 |
+
| **decoders (root)** | decode diffusion latents straight to scene-linear HDR, skipping the tone-mapped VAE | 14 |
|
| 28 |
+
|
| 29 |
+
They share a name and a radiometric convention and nothing else. Pick the one
|
| 30 |
+
that matches your problem.
|
| 31 |
+
|
| 32 |
+
---
|
| 33 |
|
| 34 |
+
## `sdr2hdr/` — single-image inverse tone mapping
|
| 35 |
|
| 36 |
+
A compact U-Net that predicts a **residual on an analytic inverse-ACES tone
|
| 37 |
+
map**, not the image itself. Six channels in (SDR RGB plus the analytic
|
| 38 |
+
baseline), five out (a log-domain residual and two masks). The curve does the
|
| 39 |
+
mapping; the network supplies only what a curve cannot know.
|
| 40 |
|
| 41 |
+
**Start with `sdr2hdr_shadow_v1.safetensors`.**
|
| 42 |
|
| 43 |
+
| file | params | what it is |
|
| 44 |
+
|---|---:|---|
|
| 45 |
+
| **`sdr2hdr_shadow_v1`** | 1,217,318 | **the shipped model.** v5 backbone plus a trained shadow gate, seed 20260901 |
|
| 46 |
+
| `sdr2hdr_shadow_s2` | 1,217,318 | same recipe, seed 2 |
|
| 47 |
+
| `sdr2hdr_shadow_s3` | 1,217,318 | same recipe, seed 3 |
|
| 48 |
+
| `sdr2hdr_image_v5` | 1,196,197 | the backbone alone, no gate |
|
| 49 |
+
| `sdr2hdr_image_v6` | 4,770,117 | 4× capacity ablation, 64 base channels |
|
| 50 |
+
| `sdr2hdr_temporal_v1` | 37,011 | temporal refiner. **Not an `SDR2HDRNet`** and will not load as one |
|
| 51 |
+
|
| 52 |
+
Input is 8-bit normalised sRGB RGB. Output is scene-linear RGB normalised to
|
| 53 |
+
10,000 nits, with diffuse white at 203 (ITU-R BT.2408).
|
| 54 |
+
|
| 55 |
+
### Loading
|
| 56 |
+
|
| 57 |
+
Each file carries its own architecture config in its safetensors metadata, so
|
| 58 |
+
nothing else is needed to build the right network:
|
| 59 |
+
|
| 60 |
+
```python
|
| 61 |
+
import json, torch
|
| 62 |
+
from safetensors import safe_open
|
| 63 |
+
from safetensors.torch import load_file
|
| 64 |
+
from rudra.sdr2hdr import SDR2HDRNet # pip install -e . from the GitHub repo
|
| 65 |
+
|
| 66 |
+
path = "sdr2hdr/sdr2hdr_shadow_v1.safetensors"
|
| 67 |
+
with safe_open(path, framework="pt") as f:
|
| 68 |
+
config = json.loads(f.metadata()["config"])
|
| 69 |
+
model = SDR2HDRNet.from_config(config)
|
| 70 |
+
model.load_state_dict(load_file(path), strict=True)
|
| 71 |
+
model.eval()
|
| 72 |
```
|
| 73 |
+
|
| 74 |
+
`SHA256SUMS` and `index.json` sit beside the weights.
|
| 75 |
+
|
| 76 |
+
### What it scores
|
| 77 |
+
|
| 78 |
+
429 held-out frames at native 1280×720, PU21-PSNR and ColorVideoVDP JOD,
|
| 79 |
+
against the analytic inverse-ACES baseline the model sits on top of. `hard` is
|
| 80 |
+
the deployment condition (unknown tone curve, 4:2:0 chroma, banding, JPEG);
|
| 81 |
+
`clean` is well-graded input the baseline already handles.
|
| 82 |
+
|
| 83 |
+
| model | clean dB | clean JOD | hard dB | hard JOD |
|
| 84 |
+
|---|---:|---:|---:|---:|
|
| 85 |
+
| shadow_v1 | +0.07 | +0.113 | +1.24 | +0.389 |
|
| 86 |
+
| shadow_s2 | +0.71 | +0.068 | +0.96 | +0.308 |
|
| 87 |
+
| shadow_s3 | +0.45 | +0.089 | +1.18 | +0.358 |
|
| 88 |
+
| **mean ± sd** | **+0.41 ± 0.33** | **+0.090 ± 0.023** | **+1.12 ± 0.15** | **+0.352 ± 0.041** |
|
| 89 |
+
| image_v5 | −3.00 | −0.046 | +1.43 | +0.443 |
|
| 90 |
+
| image_v6 | −2.75 | +0.004 | +0.96 | +0.343 |
|
| 91 |
+
|
| 92 |
+
The three gate seeds are the only configurations that come out positive on all
|
| 93 |
+
four measures.
|
| 94 |
+
|
| 95 |
+
### Limitations, stated plainly
|
| 96 |
+
|
| 97 |
+
- **No published method has been scored on our split.** Every number above is
|
| 98 |
+
against our own analytic baseline. Read them as internal progress, not as a
|
| 99 |
+
comparison, until that gap is closed.
|
| 100 |
+
- **The backbone alone regresses on clean input.** `image_v5` loses 3.0 dB of
|
| 101 |
+
PU21-PSNR on well-graded frames, and the failure concentrates in
|
| 102 |
+
low-dynamic-range scenes: the 60 worst average −10.76 dB at a median
|
| 103 |
+
ground-truth peak of 238 nits, the 60 best +3.41 dB at 19,590 nits. The gate
|
| 104 |
+
is what fixes it.
|
| 105 |
+
- **The metrics disagree, and it matters.** That same 3.0 dB loss is −0.046 JOD
|
| 106 |
+
in CVVDP, far below a just-noticeable difference. Do not quote the PU21 row
|
| 107 |
+
without the JOD beside it.
|
| 108 |
+
- **The achievable gain is bounded by the input, not the model.** A linear
|
| 109 |
+
readout of the features explains 3% of the variance in the per-frame scale an
|
| 110 |
+
oracle would use, and 79% of that variance sits within a condition rather than
|
| 111 |
+
between. Capacity (4×), corpus (6×) and objective were each varied and none
|
| 112 |
+
moved it.
|
| 113 |
+
- **Three seeds is a spread, not a distribution.**
|
| 114 |
+
- **The temporal refiner is unevaluated.** Its held-out set is 4 validation and
|
| 115 |
+
5 test clips of one scene each, too small to report.
|
| 116 |
+
|
| 117 |
+
Training data is documented in the GitHub README: Poly Haven HDRIs (CC0),
|
| 118 |
+
HdM-HDR-2014 and HdM-HFR-2017 (academic licence), Netflix Chimera (CC BY 4.0),
|
| 119 |
+
plus proprietary FXTD footage that is not redistributed.
|
| 120 |
+
|
| 121 |
+
---
|
| 122 |
+
|
| 123 |
+
## Decoders — diffusion latents to scene-linear HDR
|
| 124 |
+
|
| 125 |
+
Diffusion models are trained on tone-mapped images, so their VAEs decode to a
|
| 126 |
+
world where nothing is brighter than white. These replace that decoder and
|
| 127 |
+
return scene-linear radiance instead.
|
| 128 |
+
|
| 129 |
+
Two sizes per backbone: `full` reconstructs more faithfully, `turbo` is roughly
|
| 130 |
+
a tenth the size and fast enough to sit in a live graph.
|
| 131 |
+
|
| 132 |
+
```bash
|
| 133 |
+
huggingface-cli download fxtdstudios/RUDRA \
|
| 134 |
+
--include "rudra_*_decoder_*.safetensors" \
|
| 135 |
+
--local-dir "ComfyUI/models/radiance"
|
| 136 |
```
|
| 137 |
|
| 138 |
+
Then enable `rudra_decoder` in the **Radiance HDR VAE Decode** node and pick a
|
| 139 |
+
`decoder_size`.
|
| 140 |
+
|
| 141 |
+
| file | size |
|
| 142 |
+
|---|---:|
|
| 143 |
+
| `rudra_full_decoder_flux_ema.safetensors` | 21.5 MB |
|
| 144 |
+
| `rudra_full_decoder_ltx-video_ema.safetensors` | 22.0 MB |
|
| 145 |
+
| `rudra_full_decoder_sdxl_ema.safetensors` | 21.4 MB |
|
| 146 |
+
| `rudra_full_decoder_wan_ema.safetensors` | 21.5 MB |
|
| 147 |
+
| `rudra_full_decoder_zimage_ema.safetensors` | 21.5 MB |
|
| 148 |
+
| `rudra_turbo_decoder_flux_ema.safetensors` | 2.2 MB |
|
| 149 |
+
| `rudra_turbo_decoder_flux2_ema.safetensors` | 2.0 MB |
|
| 150 |
+
| `rudra_turbo_decoder_flux2-klein_ema.safetensors` | 3.0 MB |
|
| 151 |
+
| `rudra_turbo_decoder_ltx_ema.safetensors` | 2.4 MB |
|
| 152 |
+
| `rudra_turbo_decoder_ltx-video_ema.safetensors` | 3.5 MB |
|
| 153 |
+
| `rudra_turbo_decoder_qwen_ema.safetensors` | 2.2 MB |
|
| 154 |
+
| `rudra_turbo_decoder_sdxl_ema.safetensors` | 2.1 MB |
|
| 155 |
+
| `rudra_turbo_decoder_wan_ema.safetensors` | 2.2 MB |
|
| 156 |
+
| `rudra_turbo_decoder_zimage_ema.safetensors` | 2.2 MB |
|
| 157 |
+
|
| 158 |
+
Measured reconstruction quality, for the size we recommend per backbone. The
|
| 159 |
+
table covers the recommended decoder per backbone, not every file above:
|
| 160 |
+
|
| 161 |
+
| backbone | VAE latent | recommended | PSNR_log |
|
| 162 |
+
|---|---|---|---:|
|
| 163 |
+
| Flux.1 | 16ch / 8× | full | 29.77 |
|
| 164 |
+
| Wan | 16ch / 8× | full | 32.45 |
|
| 165 |
+
| LTX | 128ch / 8× | full | 25.47 |
|
| 166 |
+
| SDXL | 4ch / 8× | turbo | 33.86 |
|
| 167 |
+
| Qwen-Image | 16ch / 8× | turbo | 26.67 |
|
| 168 |
+
| Flux.2 Klein | 128ch / **16×** | turbo | 28.57 |
|
| 169 |
+
|
| 170 |
+
---
|
| 171 |
+
|
| 172 |
+
## Licence and citation
|
| 173 |
+
|
| 174 |
+
Apache 2.0. If the SDR→HDR work is useful in yours:
|
| 175 |
+
|
| 176 |
+
```bibtex
|
| 177 |
+
@misc{rudra2026,
|
| 178 |
+
title = {What an 8-Bit Frame Can and Cannot Say About the Scene Behind It:
|
| 179 |
+
bounds for inverse tone mapping, and a gate that reaches one of them},
|
| 180 |
+
author = {{FXTD Studios}},
|
| 181 |
+
year = {2026},
|
| 182 |
+
note = {https://github.com/fxtdstudios/RUDRA}
|
| 183 |
+
}
|
| 184 |
+
```
|
sdr2hdr/SHA256SUMS
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
a25ac506dd5cb2f20f1f428628c9bb4c6d09bfd5aed8f8b93d783314f98bd47c sdr2hdr_shadow_v1.safetensors
|
| 2 |
+
f46b1a367ae9aca6df9d256243189462b7c504fdda9bb089bfe9588e3c213a87 sdr2hdr_shadow_s2.safetensors
|
| 3 |
+
46ab0e49bd246ef4e9e1394f3f736b5274afc04e24efd6afff994cf1b1d7cc7e sdr2hdr_shadow_s3.safetensors
|
| 4 |
+
3e0581ce5f4c20c53220955ce23af394a7ad5a091755c2ee5b72e9a02ecca715 sdr2hdr_image_v5.safetensors
|
| 5 |
+
44c08cc202e4e0a3f7c59b13b0b25cec029116ec1b7d79102d07e269a5d44b90 sdr2hdr_image_v6.safetensors
|
| 6 |
+
9ee451688b46ce2f11948d451dfe32f1816448c876231d7299eb29031aeb060c sdr2hdr_temporal_v1.safetensors
|
sdr2hdr/index.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"file": "sdr2hdr/sdr2hdr_shadow_v1.safetensors",
|
| 4 |
+
"note": "the shipped model: v5 backbone + trained shadow gate",
|
| 5 |
+
"params": 1217318,
|
| 6 |
+
"step": 2400,
|
| 7 |
+
"sha256": "a25ac506dd5cb2f20f1f428628c9bb4c6d09bfd5aed8f8b93d783314f98bd47c"
|
| 8 |
+
},
|
| 9 |
+
{
|
| 10 |
+
"file": "sdr2hdr/sdr2hdr_shadow_s2.safetensors",
|
| 11 |
+
"note": "same recipe, seed 2",
|
| 12 |
+
"params": 1217318,
|
| 13 |
+
"step": 2600,
|
| 14 |
+
"sha256": "f46b1a367ae9aca6df9d256243189462b7c504fdda9bb089bfe9588e3c213a87"
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"file": "sdr2hdr/sdr2hdr_shadow_s3.safetensors",
|
| 18 |
+
"note": "same recipe, seed 3",
|
| 19 |
+
"params": 1217318,
|
| 20 |
+
"step": 2800,
|
| 21 |
+
"sha256": "46ab0e49bd246ef4e9e1394f3f736b5274afc04e24efd6afff994cf1b1d7cc7e"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"file": "sdr2hdr/sdr2hdr_image_v5.safetensors",
|
| 25 |
+
"note": "the backbone alone, no gate",
|
| 26 |
+
"params": 1196197,
|
| 27 |
+
"step": 81000,
|
| 28 |
+
"sha256": "3e0581ce5f4c20c53220955ce23af394a7ad5a091755c2ee5b72e9a02ecca715"
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"file": "sdr2hdr/sdr2hdr_image_v6.safetensors",
|
| 32 |
+
"note": "4x capacity ablation, 64 base channels",
|
| 33 |
+
"params": 4770117,
|
| 34 |
+
"step": 83000,
|
| 35 |
+
"sha256": "44c08cc202e4e0a3f7c59b13b0b25cec029116ec1b7d79102d07e269a5d44b90"
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"file": "sdr2hdr/sdr2hdr_temporal_v1.safetensors",
|
| 39 |
+
"note": "temporal refiner -- NOT an SDR2HDRNet",
|
| 40 |
+
"params": 37011,
|
| 41 |
+
"step": 0,
|
| 42 |
+
"sha256": "9ee451688b46ce2f11948d451dfe32f1816448c876231d7299eb29031aeb060c"
|
| 43 |
+
}
|
| 44 |
+
]
|
sdr2hdr/sdr2hdr_image_v5.config.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mode": "image",
|
| 3 |
+
"manifest": "E:\\RUDRA_v3_20260822\\sdr_hdr_manifest.jsonl",
|
| 4 |
+
"output_dir": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_image_v5",
|
| 5 |
+
"image_checkpoint": null,
|
| 6 |
+
"best_eval": "hard",
|
| 7 |
+
"resume": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_image_v5\\step_0020000.pt",
|
| 8 |
+
"init_checkpoint": null,
|
| 9 |
+
"reset_best": false,
|
| 10 |
+
"device": "cuda",
|
| 11 |
+
"steps": 100000,
|
| 12 |
+
"batch_size": 2,
|
| 13 |
+
"crop_size": 384,
|
| 14 |
+
"workers": 2,
|
| 15 |
+
"base_channels": 32,
|
| 16 |
+
"temporal_channels": 24,
|
| 17 |
+
"lr": 0.0002,
|
| 18 |
+
"weight_decay": 0.0001,
|
| 19 |
+
"grad_accum": 2,
|
| 20 |
+
"max_grad_norm": 1.0,
|
| 21 |
+
"augmentation_strength": 1.0,
|
| 22 |
+
"degradation_probability": 0.65,
|
| 23 |
+
"video_sample_fraction": 0.4,
|
| 24 |
+
"scene_balanced_sampling": true,
|
| 25 |
+
"temporal_weight": 0.5,
|
| 26 |
+
"shadow_chroma_weight": 0.15,
|
| 27 |
+
"shadow_smoothness_weight": 0.02,
|
| 28 |
+
"best_metric": "composite_gain",
|
| 29 |
+
"val_fraction": 0.1,
|
| 30 |
+
"eval_every": 1000,
|
| 31 |
+
"eval_batches": 128,
|
| 32 |
+
"save_every": 2000,
|
| 33 |
+
"log_every": 20,
|
| 34 |
+
"max_items": null,
|
| 35 |
+
"max_val_items": null,
|
| 36 |
+
"seed": 20260715,
|
| 37 |
+
"manifest_sha256": "2fc33f59704351099e6941ea40fa50f83674a630ee779729ad870455e52ef5f7",
|
| 38 |
+
"architecture": "SDR2HDRNet",
|
| 39 |
+
"input_contract": "8-bit normalized sRGB RGB",
|
| 40 |
+
"output_contract": "scene-linear RGB normalized to 10000 nits"
|
| 41 |
+
}
|
sdr2hdr/sdr2hdr_image_v5.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3e0581ce5f4c20c53220955ce23af394a7ad5a091755c2ee5b72e9a02ecca715
|
| 3 |
+
size 4794076
|
sdr2hdr/sdr2hdr_image_v6.config.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mode": "image",
|
| 3 |
+
"manifest": "E:\\RUDRA_v3_20260822\\sdr_hdr_manifest.jsonl",
|
| 4 |
+
"output_dir": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_image_v6_c64",
|
| 5 |
+
"image_checkpoint": null,
|
| 6 |
+
"best_eval": "hard",
|
| 7 |
+
"resume": null,
|
| 8 |
+
"init_checkpoint": null,
|
| 9 |
+
"reset_best": false,
|
| 10 |
+
"device": "cuda",
|
| 11 |
+
"steps": 100000,
|
| 12 |
+
"batch_size": 2,
|
| 13 |
+
"crop_size": 384,
|
| 14 |
+
"workers": 2,
|
| 15 |
+
"base_channels": 64,
|
| 16 |
+
"temporal_channels": 24,
|
| 17 |
+
"lr": 0.0002,
|
| 18 |
+
"weight_decay": 0.0001,
|
| 19 |
+
"grad_accum": 2,
|
| 20 |
+
"max_grad_norm": 1.0,
|
| 21 |
+
"augmentation_strength": 1.0,
|
| 22 |
+
"degradation_probability": 0.65,
|
| 23 |
+
"video_sample_fraction": 0.4,
|
| 24 |
+
"scene_balanced_sampling": true,
|
| 25 |
+
"temporal_weight": 0.5,
|
| 26 |
+
"shadow_chroma_weight": 0.15,
|
| 27 |
+
"shadow_smoothness_weight": 0.02,
|
| 28 |
+
"best_metric": "composite_gain",
|
| 29 |
+
"val_fraction": 0.1,
|
| 30 |
+
"eval_every": 1000,
|
| 31 |
+
"eval_batches": 128,
|
| 32 |
+
"save_every": 2000,
|
| 33 |
+
"log_every": 20,
|
| 34 |
+
"max_items": null,
|
| 35 |
+
"max_val_items": null,
|
| 36 |
+
"seed": 20260715,
|
| 37 |
+
"manifest_sha256": "2fc33f59704351099e6941ea40fa50f83674a630ee779729ad870455e52ef5f7",
|
| 38 |
+
"architecture": "SDR2HDRNet",
|
| 39 |
+
"input_contract": "8-bit normalized sRGB RGB",
|
| 40 |
+
"output_contract": "scene-linear RGB normalized to 10000 nits"
|
| 41 |
+
}
|
sdr2hdr/sdr2hdr_image_v6.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:44c08cc202e4e0a3f7c59b13b0b25cec029116ec1b7d79102d07e269a5d44b90
|
| 3 |
+
size 19089804
|
sdr2hdr/sdr2hdr_shadow_s2.config.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"manifest": "E:\\RUDRA_v3_20260822\\sdr_hdr_manifest.jsonl",
|
| 3 |
+
"init_checkpoint": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_image_v5\\shipped_v5_step81000.pt",
|
| 4 |
+
"output_dir": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_shadow_s2",
|
| 5 |
+
"steps": 3000,
|
| 6 |
+
"lr": 0.003,
|
| 7 |
+
"grad_accum": 8,
|
| 8 |
+
"max_side": 512,
|
| 9 |
+
"degradation_probability": 0.5,
|
| 10 |
+
"eval_every": 200,
|
| 11 |
+
"eval_batches": 128,
|
| 12 |
+
"best_smoothing": 5,
|
| 13 |
+
"workers": 2,
|
| 14 |
+
"seed": 2,
|
| 15 |
+
"device": "cuda",
|
| 16 |
+
"base_channels": 32,
|
| 17 |
+
"shadow_conditioning": true,
|
| 18 |
+
"objective": "degradation_bce"
|
| 19 |
+
}
|
sdr2hdr/sdr2hdr_shadow_s2.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f46b1a367ae9aca6df9d256243189462b7c504fdda9bb089bfe9588e3c213a87
|
| 3 |
+
size 4878384
|
sdr2hdr/sdr2hdr_shadow_s3.config.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"manifest": "E:\\RUDRA_v3_20260822\\sdr_hdr_manifest.jsonl",
|
| 3 |
+
"init_checkpoint": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_image_v5\\shipped_v5_step81000.pt",
|
| 4 |
+
"output_dir": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_shadow_s3",
|
| 5 |
+
"steps": 3000,
|
| 6 |
+
"lr": 0.003,
|
| 7 |
+
"grad_accum": 8,
|
| 8 |
+
"max_side": 512,
|
| 9 |
+
"degradation_probability": 0.5,
|
| 10 |
+
"eval_every": 200,
|
| 11 |
+
"eval_batches": 128,
|
| 12 |
+
"best_smoothing": 5,
|
| 13 |
+
"workers": 2,
|
| 14 |
+
"seed": 3,
|
| 15 |
+
"device": "cuda",
|
| 16 |
+
"base_channels": 32,
|
| 17 |
+
"shadow_conditioning": true,
|
| 18 |
+
"objective": "degradation_bce"
|
| 19 |
+
}
|
sdr2hdr/sdr2hdr_shadow_s3.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:46ab0e49bd246ef4e9e1394f3f736b5274afc04e24efd6afff994cf1b1d7cc7e
|
| 3 |
+
size 4878384
|
sdr2hdr/sdr2hdr_shadow_v1.config.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"manifest": "E:\\RUDRA_v3_20260822\\sdr_hdr_manifest.jsonl",
|
| 3 |
+
"init_checkpoint": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_image_v5\\shipped_v5_step81000.pt",
|
| 4 |
+
"output_dir": "E:\\RUDRA_v3_20260822\\checkpoints\\sdr2hdr_shadow_v1",
|
| 5 |
+
"steps": 3000,
|
| 6 |
+
"lr": 0.003,
|
| 7 |
+
"grad_accum": 8,
|
| 8 |
+
"max_side": 512,
|
| 9 |
+
"degradation_probability": 0.5,
|
| 10 |
+
"eval_every": 200,
|
| 11 |
+
"eval_batches": 128,
|
| 12 |
+
"best_smoothing": 5,
|
| 13 |
+
"workers": 2,
|
| 14 |
+
"seed": 20260901,
|
| 15 |
+
"device": "cuda",
|
| 16 |
+
"base_channels": 32,
|
| 17 |
+
"shadow_conditioning": true,
|
| 18 |
+
"objective": "degradation_bce"
|
| 19 |
+
}
|
sdr2hdr/sdr2hdr_shadow_v1.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a25ac506dd5cb2f20f1f428628c9bb4c6d09bfd5aed8f8b93d783314f98bd47c
|
| 3 |
+
size 4878392
|
sdr2hdr/sdr2hdr_temporal_v1.config.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"mode": "temporal",
|
| 3 |
+
"manifest": "E:\\RUDRA_postfix_20260818\\hdrdata\\video_manifest_9f_unc.jsonl",
|
| 4 |
+
"output_dir": "E:\\RUDRA_postfix_20260818\\hdrdata\\checkpoints\\sdr2hdr_temporal_postfix_v1",
|
| 5 |
+
"image_checkpoint": "E:\\RUDRA_postfix_20260818\\hdrdata\\checkpoints\\sdr2hdr_image_postfix_v1\\best.pt",
|
| 6 |
+
"resume": "E:\\RUDRA_postfix_20260818\\hdrdata\\checkpoints\\sdr2hdr_temporal_postfix_v1\\step_0016000.pt",
|
| 7 |
+
"init_checkpoint": null,
|
| 8 |
+
"reset_best": false,
|
| 9 |
+
"device": "cuda",
|
| 10 |
+
"steps": 30000,
|
| 11 |
+
"batch_size": 2,
|
| 12 |
+
"crop_size": 256,
|
| 13 |
+
"workers": 2,
|
| 14 |
+
"base_channels": 32,
|
| 15 |
+
"temporal_channels": 24,
|
| 16 |
+
"lr": 0.0002,
|
| 17 |
+
"weight_decay": 0.0001,
|
| 18 |
+
"grad_accum": 1,
|
| 19 |
+
"max_grad_norm": 1.0,
|
| 20 |
+
"augmentation_strength": 1.0,
|
| 21 |
+
"degradation_probability": 0.65,
|
| 22 |
+
"video_sample_fraction": 0.25,
|
| 23 |
+
"scene_balanced_sampling": true,
|
| 24 |
+
"temporal_weight": 0.5,
|
| 25 |
+
"shadow_chroma_weight": 0.15,
|
| 26 |
+
"shadow_smoothness_weight": 0.02,
|
| 27 |
+
"best_metric": "loss",
|
| 28 |
+
"val_fraction": 0.1,
|
| 29 |
+
"eval_every": 500,
|
| 30 |
+
"eval_batches": 16,
|
| 31 |
+
"save_every": 2000,
|
| 32 |
+
"log_every": 20,
|
| 33 |
+
"max_items": null,
|
| 34 |
+
"max_val_items": null,
|
| 35 |
+
"seed": 20260715,
|
| 36 |
+
"manifest_sha256": "b4a1791294282b912662b6d7293f04ec2cbe561eb79ffa72b4737f06812808bd",
|
| 37 |
+
"architecture": "TemporalHDRRefiner",
|
| 38 |
+
"input_contract": "8-bit normalized sRGB RGB",
|
| 39 |
+
"output_contract": "scene-linear RGB normalized to 10000 nits"
|
| 40 |
+
}
|
sdr2hdr/sdr2hdr_temporal_v1.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9ee451688b46ce2f11948d451dfe32f1816448c876231d7299eb29031aeb060c
|
| 3 |
+
size 150196
|