| experiment_name: picotrust_v2 | |
| model: | |
| type: picotrust | |
| encoder_size: 512 | |
| decoder_size: 256 # Proven 256 decoder; trainer downsamples 512β256 | |
| data: | |
| source: folder | |
| path: ./data/train | |
| batch_size: 4 | |
| training: | |
| num_steps: 200000 | |
| lr: 0.0001 | |
| num_bits: 100 | |
| image_size: 512 | |
| warmup_steps: 500 | |
| no_im_loss_steps: 10000 # 10k steps pure message β establish communication first | |
| generator_grad_clip: 0.25 | |
| stn_lr_scale: 0.01 | |
| borders: black | |
| rnd_trans: 0.10 | |
| rnd_trans_ramp: 10000 | |
| phase2_step: 60000 | |
| phase2_decoder_lr_scale: 0.1 | |
| residual_strength: 1.0 # Start unbounded β let encoder-decoder bootstrap | |
| residual_strength_anneal_target: 0.03 # Target Β±0.03 for ~38+ dB PSNR | |
| residual_strength_anneal_start: 10000 # Start when image losses activate | |
| residual_strength_anneal_steps: 60000 # Slow squeeze 1.0β0.03 over 60k steps | |
| loss: | |
| message: | |
| scale: 5.0 | |
| ramp_steps: 1 | |
| l2: | |
| scale: 1.5 | |
| ramp_steps: 50000 # Slow squeeze β give encoder time to learn compact embedding | |
| lpips: | |
| scale: 1.0 | |
| ramp_steps: 50000 | |
| ffl: | |
| scale: 1.0 | |
| ramp_steps: 50000 | |
| delay_steps: 30000 | |
| # chroma: not needed β grayscale residual (1-channel E_post) eliminates colour shifts by construction | |
| # mask_reg: not needed β bounded residual handles quality guarantee | |
| message_loss_type: mse | |
| l2_edge_gain: 0.0 # Disabled β was dominating loss, forcing content-agnostic residual | |
| use_border_falloff: true | |
| gan_config: | |
| enabled: true | |
| discriminator_lr: 0.00001 | |
| g_loss_scale: 1.0 | |
| g_loss_ramp_steps: 20000 | |
| distortion: | |
| strategy: curriculum | |
| perspective: | |
| strength: 0.1 | |
| ramp_steps: 10000 | |
| brightness: | |
| strength: 0.3 | |
| ramp_steps: 1000 | |
| saturation: | |
| strength: 1.0 | |
| ramp_steps: 1000 | |
| hue: | |
| strength: 0.1 | |
| ramp_steps: 1000 | |
| noise: | |
| strength: 0.02 | |
| ramp_steps: 1000 | |
| jpeg_quality: | |
| strength: 25 | |
| ramp_steps: 1000 | |
| enable_jpeg: true | |
| enable_blur: true | |
| checkpoint: | |
| dir: checkpoints | |
| save_every_steps: 10000 | |
| keep_last: 3 | |
| logging: | |
| backends: [console, tensorboard] | |
| log_every_steps: 100 | |