|
|
| """Smoke Faz3 TRELLIS forward LoRA then optional Paint LoRA. Uses HF Preprocessed-4K."""
|
| from __future__ import annotations
|
|
|
| import argparse
|
| import os
|
| import sys
|
| from pathlib import Path
|
|
|
| ROOT = Path(__file__).resolve().parents[1]
|
| sys.path.insert(0, str(ROOT))
|
|
|
|
|
| def main() -> int:
|
| parser = argparse.ArgumentParser()
|
| parser.add_argument("--paint", action="store_true", help="Ayrica faz3_paint smoke")
|
| parser.add_argument("--limit", type=int, default=4)
|
| parser.add_argument("--epochs", type=int, default=1)
|
| parser.add_argument("--lora-rank", type=int, default=8)
|
| args = parser.parse_args()
|
|
|
| token = os.environ.get("HF_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN")
|
| if not token:
|
| print("HF_TOKEN gerekli")
|
| return 1
|
|
|
| os.environ.setdefault("ATTN_BACKEND", "xformers")
|
| os.environ.setdefault("SPARSE_ATTN_BACKEND", "xformers")
|
| os.environ.setdefault("PYTORCH_CUDA_ALLOC_CONF", "expandable_segments:True")
|
|
|
|
|
| cmd_geo = [
|
| sys.executable,
|
| str(ROOT / "train_pipeline.py"),
|
| "--mode",
|
| "faz3",
|
| "--epochs",
|
| str(args.epochs),
|
| "--limit",
|
| str(args.limit),
|
| "--lora-rank",
|
| str(args.lora_rank),
|
| "--checkpoint-every",
|
| "20",
|
| "--validation-every",
|
| "50",
|
| ]
|
| print("RUN", " ".join(cmd_geo))
|
| import subprocess
|
|
|
| env = os.environ.copy()
|
| env["HF_TOKEN"] = token
|
| r = subprocess.call(cmd_geo, cwd=str(ROOT), env=env)
|
| if r != 0:
|
| return r
|
| ckpt = ROOT / "checkpoints" / "latest_faz3_lora.pt"
|
| if not ckpt.is_file():
|
| print("FAIL: latest_faz3_lora.pt yok")
|
| return 1
|
| print("OK geo ckpt", ckpt, ckpt.stat().st_size)
|
|
|
| if args.paint:
|
| cmd_p = [
|
| sys.executable,
|
| str(ROOT / "train_pipeline.py"),
|
| "--mode",
|
| "faz3_paint",
|
| "--epochs",
|
| str(args.epochs),
|
| "--limit",
|
| str(min(2, args.limit)),
|
| "--lora-rank",
|
| str(args.lora_rank),
|
| "--checkpoint-every",
|
| "5",
|
| ]
|
| print("RUN", " ".join(cmd_p))
|
| r2 = subprocess.call(cmd_p, cwd=str(ROOT), env=env)
|
| if r2 != 0:
|
| return r2
|
| ckpt2 = ROOT / "checkpoints" / "latest_faz3_paint_lora.pt"
|
| print("OK paint ckpt", ckpt2, ckpt2.stat().st_size if ckpt2.is_file() else None)
|
| print("SMOKE OK")
|
| return 0
|
|
|
|
|
| if __name__ == "__main__":
|
| raise SystemExit(main())
|
|
|