Skip to content

Results

All numbers in this page are scored on the official RSICD test split (1,093 images), with torchmetrics Inception FID (feature=2048, both sides resized to 256) and OpenAI CLIP ViT-B/32 for CLIP-score.

Headline

With (milestone, cond_scale) = (SR ep650, 5) on the full test split:

Headline FID + CLIP

Metric Value
FID (cascade-256, N=1093, feature=2048) 65.70
FID (feature=768) 0.275
CLIP-score (OpenAI ViT-B/32) 0.278 ± 0.030
CLIP-score (shuffled-caption null baseline) 0.232
CLIP-score delta vs null +0.046

The shuffled-caption baseline pairs each generated image with a randomly chosen caption from the same test set. The +0.046 delta is the text-image alignment signal above random pairing.

Full 1,093-image generation bundle and the matching captions index live on the HF Hub release as samples/ and captions.txt. Committed numerics: results/fid_result.json, results/clip_result.json.

SR-cascade FID sweep

Per-milestone scoring at N=128 samples, cascade-256, feature=2048, cond_scale=4. ep50 and ep100 are scored at the same protocol locally; the cloud sweep covers ep150 → ep1000 (stride 50).

SR FID curve

Range FID
ep50 224.53
ep100 174.52
ep150 → ep700 172.79 → 159.39 → 156.73 (ep650 winner)
ep700 → ep1000 156.85, then a sharp climb to 167.46

The post-ep650 climb is the expected overfit signature for the small-train-set / no-augmentation setting. ep650 is the picked SR milestone for everything downstream.

Full 18-row TSV: results/fid_curve_sr.tsv.

LR-base FID sweep

Per-milestone scoring at N=64 samples, 128×128, Inception feature=2048, cond_scale=4.

LR FID curve

The LR-base curve bottoms at ep700 = 202.43 and climbs afterwards. ep700 is chosen as the frozen seed for SR training. Full TSV: results/fid_curve_lr.tsv.

CFG cond_scale ablation

On the SR ep650 winner, N=64 per scale (cheap rank-only picker before the expensive headline run), cascade-256, feature=2048.

CFG sweep

cond_scale FID (N=64)
1 230.12
2 210.98
3 205.06
4 204.06
5 200.00
6 201.62
8 201.97

The bowl bottoms at cs=5. N=64 absolute FID is upward-biased relative to the N=1,093 headline; only the ranking is used. Full TSV: results/fid_cfg_step89050.tsv.

Samples

A random 9-sample look at the 1,093-image headline bundle:

Sample montage

Full bundle (1,093 PNGs + captions) on the HF Hub release under samples/.

Discussion

Milestone choice matters. The FID range across SR milestones (cascade-256 N=128) is 156.73 → 172.79; the headline N=1,093 protocol scales the absolute values down but the ranking is preserved. Picking a late-training milestone naïvely (e.g. ep1000) would land ~10 FID points worse than ep650 — this is one of the clearest illustrations of overfit drift on a small-train-set RS dataset.

CFG is non-trivial. Without guidance (cs=1) the cascade scores ~230 FID — the model effectively ignores text. The bowl bottoms in the cs=4–5 region and rises again past cs=6. We recommend cs=5 as a default; domain-shifted captions may benefit from cs=4 or cs=6.

N matters for FID. N=64 Inception-FID is upward-biased relative to N=1,093 by an unspecified but visible margin (the same milestone scores 156.73 at N=128 vs ~200 at N=64). When comparing across runs on this dataset, report both N and feature dim explicitly.

Decoupled cascade is sufficient. Training the SR UNet on ground-truth low-resolution inputs (rather than jointly fine-tuning the cascade) is enough to land in the published FID range. A joint fine-tune of both UNets at the end of training is left as future work.

The full tech report — including methodology, training cost, hardware, and the complete narrative around milestone selection — is in docs/REPORT.md.