Download edit\progress_watch.py from Prompt48/PropmtEditor: direct link, hf CLI and curl.
- Browser
- Download file 1.81 kB
-
https://huggingface.co/Prompt48/PropmtEditor/resolve/b107bc59cd7e8d79a3e846735fc4de4d7a1626f2/edit%5Cprogress_watch.py
- Command line
-
hf download 'hf://Prompt48/PropmtEditor@b107bc59cd7e8d79a3e846735fc4de4d7a1626f2/edit\progress_watch.py'
-
curl -L -o 'edit\progress_watch.py' https://huggingface.co/Prompt48/PropmtEditor/resolve/b107bc59cd7e8d79a3e846735fc4de4d7a1626f2/edit%5Cprogress_watch.py
1.81 kB
| """Watch the active HyperFrames render and write live % to RENDER_PROGRESS.txt.""" | |
| import glob, os, time | |
| from datetime import datetime | |
| PROJ = r"D:\PromptEngineer48\In-Progress\P11-Editor" | |
| RENDERS = os.path.join(PROJ, "edit", "hf", "renders") | |
| FINAL = os.path.join(RENDERS, "full_v2.mp4") | |
| OUT = os.path.join(PROJ, "RENDER_PROGRESS.txt") | |
| TOTAL = 11725 # 390.83s * 30fps | |
| def count(d): | |
| return sum(len(files) for _, _, files in os.walk(d)) if os.path.isdir(d) else 0 | |
| def newest_work(): | |
| ws = sorted(glob.glob(os.path.join(RENDERS, "work-*")), key=os.path.getmtime) | |
| return ws[-1] if ws else None | |
| def bar(pct): | |
| n = int(pct / 4) | |
| return "[" + "#" * n + "." * (25 - n) + "]" | |
| start = time.time() | |
| while True: | |
| now = datetime.now().strftime("%H:%M:%S") | |
| if os.path.exists(FINAL) and os.path.getsize(FINAL) > 1_000_000: | |
| with open(OUT, "w") as f: | |
| f.write(f"RENDER COMPLETE 100% {bar(100)}\n" | |
| f"file: {FINAL}\nfinished: {now}\n") | |
| break | |
| work = newest_work() | |
| if not work: | |
| msg = f"starting up (compiling / fetching fonts)... {now}" | |
| pct = 0 | |
| else: | |
| wsum = count(os.path.join(work, "capture-attempt-0", "worker-0")) + \ | |
| count(os.path.join(work, "capture-attempt-0", "worker-1")) | |
| cap = count(os.path.join(work, "captured-frames")) | |
| frames = max(wsum, cap) | |
| pct = min(frames / TOTAL * 100, 99.0) | |
| phase = "encoding + assembling video..." if frames >= TOTAL - 30 else "capturing frames" | |
| msg = f"{phase} ({frames}/{TOTAL} frames)" | |
| with open(OUT, "w") as f: | |
| f.write(f"LM Studio video — full draft render\n" | |
| f"{bar(pct)} {pct:5.1f}%\n" | |
| f"{msg}\nupdated: {now} elapsed: {int(time.time()-start)}s\n") | |
| time.sleep(6) | |