Views
No views yet
| Checkpoint | Training data | Best val MSE | Notes |
|---|---|---|---|
best.pt | Transient Attributes only | 0.028953 | v1 baseline |
best_extended.pt | TA + LOL fine-tune | 0.027752 | Recommended |
best.pt — v1 (Transient Attributes only)tyakovenko/night-to-day-enhancement| Hyperparameter | Value |
|---|---|
| Loss | MSE |
| Crop size | 128×128 |
| Batch size | 8 |
| LR schedule | 1e-4 → 5e-5 → 2.5e-5 (ReduceLROnPlateau) |
| Best epoch | 22 |
| Metric | Value |
|---|---|
| Val MSE avg | 0.028953 |
| Final eval MSE — R | 0.037988 |
| Final eval MSE — G | 0.035524 |
| Final eval MSE — B | 0.043262 |
| Final eval MSE avg | 0.038925 |
best_extended.pt — v1-extended (TA + LOL fine-tune)best.pt. Adds the LOL indoor dataset to improve generalisation to non-outdoor scenes.| Source | Train | Val |
|---|---|---|
| Transient Attributes | 1,095 | 81 |
| LOL | 420 | 80 |
| Total | 1,515 | 161 |
| Hyperparameter | Value |
|---|---|
| Loss | MSE |
| Initialized from | best.pt (epoch 22) |
| Crop size | 128×128 |
| Batch size | 8 |
| LR | 1e-5 (fine-tuning, 10× lower) |
| Best epoch | 19 |
| Metric | best.pt | best_extended.pt | Δ |
|---|---|---|---|
| Val MSE avg | 0.028953 | 0.027752 | −4.1% |
| Val MSE — R | — | 0.026945 | |
| Val MSE — G | — | 0.025522 | |
| Val MSE — B | — | 0.030788 |
1import torch
2from PIL import Image
3from torchvision import transforms
4from huggingface_hub import hf_hub_download
5from model import UNet # available in this repo
6
7REPO = "tyakovenko/night-to-day-enhancement-model"
8
9# Choose checkpoint: "best.pt" or "best_extended.pt"
10ckpt_path = hf_hub_download(REPO, "best_extended.pt")
11ckpt = torch.load(ckpt_path, map_location="cpu")
12model = UNet(base_filters=ckpt["args"]["base_filters"])
13model.load_state_dict(ckpt["model"])
14model.eval()
15
16def pad_to_multiple(t, m=16):
17 """Pad spatial dims to a multiple of m (required by 4-level U-Net)."""
18 _, _, h, w = t.shape
19 ph = (m - h % m) % m
20 pw = (m - w % m) % m
21 return torch.nn.functional.pad(t, (0, pw, 0, ph), mode="reflect"), h, w
22
23img = Image.open("night.jpg").convert("RGB")
24x = transforms.ToTensor()(img).unsqueeze(0)
25x_padded, orig_h, orig_w = pad_to_multiple(x)
26
27with torch.no_grad():
28 out = model(x_padded)
29
30out = out[:, :, :orig_h, :orig_w].clamp(0, 1)
31transforms.ToPILImage()(out.squeeze(0)).save("enhanced.jpg")best.pt trained on outdoor scenes only — may underperform on indoor imagesbest_extended.pt improves indoor generalisation but the LOL weighting is not tuned; outdoor performance is largely preservedtyakovenko/night-to-day-enhancement-model-v2 for a version trained with L1 + MS-SSIM loss for improved perceptual quality