dataset:
  target: dataset.realesrgan.RealESRGANDataset
  params:
    # Path to the file list.
    file_list: train_data_path/train.list
    out_size: 512
    crop_type: center

    use_hflip: false
    use_rot: false

    blur_kernel_size: 21
    kernel_list: ['iso', 'aniso', 'generalized_iso', 'generalized_aniso', 'plateau_iso', 'plateau_aniso']
    kernel_prob: [0.45, 0.25, 0.12, 0.03, 0.12, 0.03]
    sinc_prob: 0.1
    blur_sigma: [0.2, 3]
    betag_range: [0.5, 4]
    betap_range: [1, 2]

    blur_kernel_size2: 21
    kernel_list2: ['iso', 'aniso', 'generalized_iso', 'generalized_aniso', 'plateau_iso', 'plateau_aniso']
    kernel_prob2: [0.45, 0.25, 0.12, 0.03, 0.12, 0.03]
    sinc_prob2: 0.1
    blur_sigma2: [0.2, 1.5]
    betag_range2: [0.5, 4]
    betap_range2: [1, 2]

    final_sinc_prob: 0.8

data_loader:
  batch_size: 1
  shuffle: true
  num_workers: 2
  prefetch_factor: 2
  drop_last: true

batch_transform:
  target: dataset.batch_transform.RealESRGANBatchTransform
  params:
    use_sharpener: false
    resize_hq: false
    # Queue size of training pool, this should be multiples of batch_size.
    queue_size: 128
    # the first degradation process
    resize_prob: [0.2, 0.7, 0.1] # up, down, keep
    resize_range: [0.15, 1.5]
    gaussian_noise_prob: 0.5
    noise_range: [1, 30]
    poisson_scale_range: [0.05, 3]
    gray_noise_prob: 0.4
    jpeg_range: [30, 95]

    # the second degradation process
    stage2_scale: 4
    second_blur_prob: 0.8
    resize_prob2: [0.3, 0.4, 0.3] # up, down, keep
    resize_range2: [0.3, 1.2]
    gaussian_noise_prob2: 0.5
    noise_range2: [1, 25]
    poisson_scale_range2: [0.05, 2.5]
    gray_noise_prob2: 0.4
    jpeg_range2: [30, 95]
