Ruvadev commited on
Commit
57efede
·
verified ·
1 Parent(s): 06ea438

Delete raven/cli.py

Browse files
Files changed (1) hide show
  1. raven/cli.py +0 -87
raven/cli.py DELETED
@@ -1,87 +0,0 @@
1
- from __future__ import annotations
2
- import argparse,json
3
- from pathlib import Path
4
- import torch
5
- from .config import load_config
6
- from .utils import read_jsonl
7
- from .manifest import build_manifest,manifest_summary
8
- from .audit import audit_manifest
9
- from .specialists import train_real_specialists
10
- from .cache import cache_features
11
- from .training import train_fusion
12
- from .evaluate import evaluate_cache
13
- from .inference import infer_image
14
- from .hard_mining import mine_hard
15
- from .onnx_export import export_fusion,export_foundation
16
- from .directml_inference import infer_directml
17
- from .parquet_io import import_parquet,inspect_parquet
18
- from .model import RavenFusion
19
- from .diagnose import diagnose
20
- from .benchmark import benchmark_foundation
21
- from .budget import plan_budget
22
-
23
-
24
- def pjson(x): print(json.dumps(x,indent=2,ensure_ascii=False))
25
-
26
- def cmd_build(a):
27
- cfg=load_config(a.config); mc=cfg.get("manifest",{})
28
- rows=build_manifest(
29
- a.real_dir,a.ai_dir,a.out,a.holdout_source,
30
- a.val if a.val is not None else mc.get("val_fraction",.15),
31
- a.real_test if a.real_test is not None else mc.get("real_test_fraction",.15),
32
- a.dedupe_distance if a.dedupe_distance is not None else mc.get("dedupe_hamming_distance",3),
33
- a.parquet_cache_dir,
34
- a.real_parquet_image_column,a.real_parquet_source_column,
35
- a.ai_parquet_image_column,a.ai_parquet_source_column,
36
- a.real_source_name if getattr(a,"real_source_name",None) else mc.get("real_source_name"),
37
- a.ai_source_name if getattr(a,"ai_source_name",None) else mc.get("ai_source_name"),
38
- ); print(manifest_summary(rows))
39
- def cmd_report(a): print(manifest_summary(read_jsonl(a.manifest)))
40
- def cmd_audit(a): pjson(audit_manifest(read_jsonl(a.manifest), load_config(a.config) if getattr(a,"config",None) else None))
41
- def cmd_pretrain(a): pjson(train_real_specialists(read_jsonl(a.manifest),load_config(a.config),a.out))
42
- def cmd_cache(a): pjson(cache_features(read_jsonl(a.manifest),load_config(a.config),a.specialists,a.out,a.augment_copies))
43
- def cmd_train(a): pjson(train_fusion(a.cache,load_config(a.config),a.out))
44
- def cmd_eval(a):
45
- r=evaluate_cache(a.model,a.cache,a.split); pjson({"total":r["total"],"by_source":r["by_source"],"by_light":r["by_light"]})
46
- if a.report_json: Path(a.report_json).write_text(json.dumps(r,indent=2,ensure_ascii=False),encoding="utf-8")
47
- def cmd_infer(a): pjson(infer_image(a.model,a.image))
48
- def cmd_mine(a): pjson(mine_hard(a.model,a.cache,a.out,a.split,a.confidence))
49
- def cmd_expf(a): print(export_fusion(a.model,a.out))
50
- def cmd_expb(a): print(export_foundation(a.model,a.out))
51
- def cmd_dml(a): pjson(infer_directml(a.model,a.foundation_onnx,a.fusion_onnx,a.image,a.cpu_only))
52
- def cmd_parquet(a): pjson(import_parquet(a.parquet,a.out_dir,a.label,a.source,a.manifest_out,a.image_column))
53
- def cmd_parquet_info(a): pjson(inspect_parquet(a.parquet))
54
- def cmd_diag(a): pjson(diagnose())
55
- def cmd_bench(a): pjson(benchmark_foundation(load_config(a.config),a.accelerator,a.loops))
56
- def cmd_budget(a): pjson(plan_budget(a.manifest,a.config,a.out,a.target_hours,a.min_hours,a.max_hours,a.accelerator,a.loops))
57
-
58
- def cmd_inspect(a):
59
- ck=torch.load(a.model,map_location="cpu",weights_only=False); m=RavenFusion(ck["dims"],len(ck.get("ai_source_map",{})),len(ck.get("real_source_map",{}))); total=sum(p.numel() for p in m.parameters()); trainable=sum(p.numel() for p in m.parameters() if p.requires_grad); pjson({"fusion_parameters_per_member":total,"fusion_trainable_per_member":trainable,"ensemble_members":len(ck["ensemble_states"]),"foundation_backend":ck["foundation_backend"],"foundation_parameters_not_stored_in_fusion_count":True,"calibration_prior":"50:50 REAL/AI","validation_metrics":ck.get("validation_metrics")})
60
-
61
-
62
- def parser():
63
- p=argparse.ArgumentParser(prog="RAVEN-F2K",description="Budget-adaptive AI-generated image detector optimized for i3-12100F / 16GB / RX 570")
64
- s=p.add_subparsers(dest="cmd",required=True)
65
- q=s.add_parser("build-manifest"); q.add_argument("--real-dir",required=True,help="REAL image directory OR a .parquet file; directories may also contain parquet files"); q.add_argument("--ai-dir",required=True,help="AI image directory OR a .parquet file; directories may also contain parquet files"); q.add_argument("--out",default="manifest.jsonl"); q.add_argument("--config",default="configs/raven_f2k_rx570.yaml"); q.add_argument("--holdout-source",nargs="*",default=[]); q.add_argument("--ai-source-name",help="Force every AI file to one generator/source label, e.g. gpt-image-2. Original folder label is preserved as raw_source."); q.add_argument("--real-source-name",help="Optional forced REAL source label."); q.add_argument("--val",type=float); q.add_argument("--real-test",type=float); q.add_argument("--dedupe-distance",type=int); q.add_argument("--parquet-cache-dir",default="cache/parquet_materialized"); q.add_argument("--real-parquet-image-column"); q.add_argument("--real-parquet-source-column"); q.add_argument("--ai-parquet-image-column"); q.add_argument("--ai-parquet-source-column"); q.set_defaults(func=cmd_build)
66
- q=s.add_parser("report"); q.add_argument("--manifest",required=True); q.set_defaults(func=cmd_report)
67
- q=s.add_parser("audit"); q.add_argument("--manifest",required=True); q.add_argument("--config",default="configs/raven_f2k_rx570_3to6h.yaml"); q.set_defaults(func=cmd_audit)
68
- q=s.add_parser("pretrain-real"); q.add_argument("--manifest",required=True); q.add_argument("--config",default="configs/raven_f2k_rx570.yaml"); q.add_argument("--out",default="models/real_specialists.pt"); q.set_defaults(func=cmd_pretrain)
69
- q=s.add_parser("cache-features"); q.add_argument("--manifest",required=True); q.add_argument("--specialists",default="models/real_specialists.pt"); q.add_argument("--config",default="configs/raven_f2k_rx570.yaml"); q.add_argument("--out",default="cache/features.npz"); q.add_argument("--augment-copies",type=int,default=1); q.set_defaults(func=cmd_cache)
70
- q=s.add_parser("train"); q.add_argument("--cache",default="cache/features.npz"); q.add_argument("--config",default="configs/raven_f2k_rx570.yaml"); q.add_argument("--out",default="models/raven_f2k.pt"); q.set_defaults(func=cmd_train)
71
- q=s.add_parser("eval"); q.add_argument("--model",default="models/raven_f2k.pt"); q.add_argument("--cache",default="cache/features.npz"); q.add_argument("--split",default="test"); q.add_argument("--report-json",default="outputs/eval.json"); q.set_defaults(func=cmd_eval)
72
- q=s.add_parser("infer"); q.add_argument("--model",default="models/raven_f2k.pt"); q.add_argument("--image",required=True); q.set_defaults(func=cmd_infer)
73
- q=s.add_parser("mine-hard"); q.add_argument("--model",default="models/raven_f2k.pt"); q.add_argument("--cache",default="cache/features.npz"); q.add_argument("--split",default="test"); q.add_argument("--confidence",type=float,default=.80); q.add_argument("--out",default="outputs/hard.jsonl"); q.set_defaults(func=cmd_mine)
74
- q=s.add_parser("export-fusion-onnx"); q.add_argument("--model",default="models/raven_f2k.pt"); q.add_argument("--out",default="models/raven_fusion.onnx"); q.set_defaults(func=cmd_expf)
75
- q=s.add_parser("export-foundation-onnx"); q.add_argument("--model",default="models/raven_f2k.pt"); q.add_argument("--out",default="models/raven_foundation.onnx"); q.set_defaults(func=cmd_expb)
76
- q=s.add_parser("infer-directml"); q.add_argument("--model",default="models/raven_f2k.pt"); q.add_argument("--foundation-onnx",default="models/raven_foundation.onnx"); q.add_argument("--fusion-onnx",default="models/raven_fusion.onnx"); q.add_argument("--image",required=True); q.add_argument("--cpu-only",action="store_true"); q.set_defaults(func=cmd_dml)
77
- q=s.add_parser("import-parquet"); q.add_argument("--parquet",required=True); q.add_argument("--out-dir",required=True); q.add_argument("--label",type=int,choices=[0,1],required=True); q.add_argument("--source",required=True); q.add_argument("--manifest-out",default="outputs/parquet_import.jsonl"); q.add_argument("--image-column",default="image"); q.set_defaults(func=cmd_parquet)
78
- q=s.add_parser("parquet-info"); q.add_argument("--parquet",required=True); q.set_defaults(func=cmd_parquet_info)
79
- q=s.add_parser("inspect-model"); q.add_argument("--model",default="models/raven_f2k.pt"); q.set_defaults(func=cmd_inspect)
80
- q=s.add_parser("diagnose"); q.set_defaults(func=cmd_diag)
81
- q=s.add_parser("benchmark-foundation"); q.add_argument("--config",default="configs/raven_f2k_rx570.yaml"); q.add_argument("--accelerator",choices=["auto","directml","openvino","torch"],default="auto"); q.add_argument("--loops",type=int,default=5); q.set_defaults(func=cmd_bench)
82
- q=s.add_parser("plan-budget"); q.add_argument("--manifest",required=True); q.add_argument("--config",default="configs/raven_f2k_rx570_3to6h.yaml"); q.add_argument("--out",default="configs/auto_3to6h.yaml"); q.add_argument("--target-hours",type=float,default=4.5); q.add_argument("--min-hours",type=float,default=3.0); q.add_argument("--max-hours",type=float,default=6.0); q.add_argument("--accelerator",choices=["auto","directml","openvino","torch"],default="auto"); q.add_argument("--loops",type=int,default=4); q.set_defaults(func=cmd_budget)
83
- return p
84
-
85
-
86
- def main():
87
- a=parser().parse_args(); a.func(a)