opera-tools-full-r2b — expert restoration tools fine-tuned along the planner's chains (OPERA "Full" stage, run 2)
Expert tools (SwinIR / Restormer / X-Restormer) fine-tuned end-to-end along the chains that the frozen planner opera-rsi/opera-planner-sft-r2
produced on the clean synthetic training set synth_5k_135 (paper appendix D protocol; our re-implementation in
opera-rsi/opera-repro-code, overlay/full_r2_chain.sh + overlay/train_smoke.sh + Opera/tools/restormer/training/train_combined.py).
Results on MiO100 (1,440 images, Y channel; planner r2's own plans + these tools)
| model | A | B | C | Avg PSNR | SSIM | LPIPS | CLIPIQA |
|---|---|---|---|---|---|---|---|
| r2 Planning (pretrained tools) | 22.57 | 22.71 | 20.99 | 22.09 | 0.710 | 0.364 | 0.408 |
| r2 + these tools (epoch 9 of 12) | 23.39 | 23.62 | 21.51 | 22.84 | 0.727 | 0.334 | 0.451 |
| OPERA paper Full (reported) | 24.81 | 24.63 | 23.04 | 24.16 | 0.74 | 0.24 | — |
Epoch selection: best internal-validation PSNR-Y (80/20 split of the training pairs, epochs after the 30% loss-ramp) → epoch 9 (24.37); MiO was evaluated exactly once, on that epoch. Per-epoch validation PSNR-Y: 23.45 23.93 23.94 23.86 23.97 24.17 24.34 24.18 24.37 24.24 24.20 24.32.
Protocol
- Training pairs: 3,221 (validation 741) from synth_5k_135, chains from planner r2; images whose chain contains a cv2 brighten step are skipped (the brighten ops have no parameters; dropping only the step would teach the neural tools to brighten — this was the bug of run 1).
- Adam lr 1e-6, patch 128, batch 1 × grad-accum 4, grad clip 0.5, L1 + progressive perceptual (VGG) weight over the first 30% of epochs, fp32 (fp16 autocast gave NaN at the first batch), 12 epochs (paper: 23), checkpoints every epoch.
- Tools present in r2's chains and therefore updated (training pairs): swinir.car.jpeg40 1,418 · xrestormer.dehaze 956 · restormer.deblur.defocus-single 832 · restormer.derain 795 · xrestormer.sr.real 723 · restormer.deblur.motion 613 · restormer.denoise.color-sigma50 491 · swinir.sr.real-psnr 424 · restormer.denoise.color-sigma25 261 · xrestormer.derain 206 · swinir.denoise.color-sigma25 98 · xrestormer.deblur.motion 34. Never in a chain (not included here; use the original weights): restormer.denoise.color-sigma15, swinir.denoise.color-sigma15/50, xrestormer.denoise.gaussian.
Files
models/<tool>_epoch_9.pth— the 12 fine-tuned weights (state dicts in the trainer's checkpoint format;TOOLS_CKPT=<this dir> TOOLS_EPOCH=9 SKIP_PLAN=1 bash overlay/step0_eval.shloads them).metrics/validation_metrics.csv,metrics/metrics_history.json,plots/— internal validation per epoch.configs/train_config.json,configs/val_config.json— the exact chains and image pairs used (paths are cluster-local).mio_eval/— MiO per-category metrics of the epoch-9 evaluation (mio_full_planner_sft_r2_toolsb_e9).
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support