INNER CODE UNIT · Python
main
htdt/godogen · asset-gen/tools/find_loop_frame.py:93
def main():
parser = argparse.ArgumentParser(description="Find best loop frame")
parser.add_argument("frames_dir", help="Directory containing numbered frame PNGs")
parser.add_argument("--skip", type=int, default=10, help="Skip first N frames (default: 10)")
parser.add_argument("--min-gap", type=int, default=5, help="Min frames between candidates (default: 5)")
parser.add_argument("--top", type=int, default=5, help="Show top N in stderr (default: 5)")
args = parser.parse_args()
frames_dir = Path(args.frames_dir)
paths = sorted(frames_dir.glob("*.png"))
if len(paths) < args.skip + 2:
print(json.dumps({"error": f"Not enough frames ({len(paths)}) for skip={args.skip}"}))
return
embeddings = [embed(p) for p in paths]
for window in (7, 1):
idx, sim, peaks = find_loop(embeddings, args.skip, window, args.min_gap)