#!/usr/bin/env python3 """#6 Diffusion-based augmentation for rare signs. Reference: DA-Fusion (Trabucco 2023); DiffuseMix (Islam 2024 CVPR); Flux.1-dev (BFL 2024). Strategy for rare classes (<10 sample): 1. Gerçek örneklerden ControlNet LoRA fine-tune 2. "relief + clay texture" synthesis 3. Expert review (quality control zorunlu) """ import json from pathlib import Path ROOT = Path("/arf/scratch/stakan/hitit-proje") RECIPE = { "name": "Diffusion augmentation — rare cuneiform sign synthesis", "method": "ControlNet LoRA on Flux.1-dev or SD3", "target": "Rare signs (class_sample_count < 10 in hitit_local)", "strategy": [ "1. Gerçek örneklerden sign-specific ControlNet LoRA eğit (3-5 sample yeter)", "2. Conditioning: edge map + depth (MaiCuBeDa 3D render'dan)", "3. Generate: relief + clay texture + lighting variation", "4. Expert paleographer review (accept/reject loop)", "5. Manifest'e synthetic=True flag" ], "expected_gain": "+0.2-0.5% (tail tier improvement)", "caveats": [ "Diffusion kolay hallucinate eder → yanlış stroke riski", "Sadece in-distribution noise/lighting, yeni sign sentezi DEĞİL", "Expert review zorunlu" ], "gpu_hours": 100, "status": "recipe-only (implementation in diffusion_synthetic_runbook.md)" } def main(): out = ROOT / "datasets/processed/diffusion_aug_recipe.json" with open(out, 'w') as f: json.dump(RECIPE, f, indent=2, ensure_ascii=False) print(f"Diffusion aug recipe: {out}") if __name__ == '__main__': main()