defaults:
  # Step 2 - Frame Extraction
  extract_fps: 10
  extract_width: 960
  quality: sd

  # Step 3 - Telop Detection
  diff_threshold: 30
  dedup_iou_threshold: 0.7
  min_region_area: 500
  min_region_width: 40
  min_region_height: 15
  min_duration_seconds: 0.5
  merge_gap_seconds: 1.0
  morph_kernel_size: 5

  # Rendering / Output
  target_languages: [ZH, EN, ES, AR, ID, HI]
  # Font calibration: step7 auto-calibrates new fonts via
  # scripts/calibrate_font.py and stores ratios in config/font_calibration.json.
  # You can also run the script manually: `./scripts/calibrate_font.py --force`.
  # Uncalibrated fonts fall back to PIL_TO_LIBASS=1.4, which may overflow.
  fonts:
    ZH: "Noto Sans CJK SC"
    EN: "Impact"
    ES: "Montserrat"
    AR: "Cairo"
    ID: "Bebas Neue"
    HI: "Hind"
  # @20260422 - seems offset is ok now after centering fix
  # Compensate libass CJK centering bug. See doc/libass-cjk-centering.md
  # render_offsets:
    # ZH:
      # center_x: 30

  # AI Models (per-step override, fallback: google/gemini-2.5-flash)
  ai_models:
    style: "google/gemini-2.5-flash"
    ocr: "google/gemini-2.5-flash"

  # Server log file (relative paths resolve from project root). Set to null to disable.
  serve_log_file: logs/serve.log

  # Per-run pipeline log directory (relative paths resolve from project root).
  # Each run writes {scope}-{YYYYMMDD-HHMMSS}.log under {run_log_dir}/{video}/.
  run_log_dir: /srv/bulk/apps/teroppu/logs/runs
