Skip to content

OpenCut v1.9.25 — /system/dependencies 6000x speedup

Choose a tag to compare

@SysAdminDoc SysAdminDoc released this 11 Apr 22:47

v1.9.25 — Settings tab load time: 6.5 s → 0 ms

Caught during the v1.9.24 binary smoke test: GET /system/dependencies took ~6.5 s on the first cold call because it runs 20+ importlib.import_module() probes (torch, mediapipe, audiocraft, pyannote, onnxruntime, rembg, realesrgan, gfpgan, insightface, ...) plus an ffmpeg -version subprocess plus an ollama HTTP probe — all synchronously in one request. This blocked the Settings tab render on first open.

Fix

  • New module-level _deps_cache in opencut/routes/system.py with a threading.Lock and a 60-second TTL.
  • Cold call still pays the ~5 s import tax once; every subsequent call within the window returns from memory in <1 ms.
  • New ?fresh=1 query param bypasses the cache so the frontend can force a re-check after an install/uninstall.

Measured (via compiled PyInstaller exe)

cold call:   5513 ms   (20+ importlib + ffmpeg + ollama)
warm call:     87 ms   (HTTP roundtrip overhead only — cached in memory)
fresh=1:      173 ms   (bypasses cache; sys.modules warm)

~63x speedup on steady-state.

How this was found

Part of a rolling QA cycle: every tagged release gets an end-to-end binary smoke test against the PyInstaller exe (not just the Flask test client). That exercise caught v1.9.23's OPENCUT_PORT regression in v1.9.24, and now v1.9.25's dependency-check slowness.

Downloads

Windows

  • OpenCut-Server-v1.9.25-Windows.zip (225 MB) — 🆕 ready-to-run Windows bundle. Extract anywhere, double-click OpenCut-Server.exe. Self-contained PyInstaller onedir build with Python 3.12 + all dependencies. This is the easiest download for Windows users.
  • OpenCut-Server-Windows.tar.gz — same contents as the zip, tarball format for CI/WSL/Linux extraction

Linux

  • OpenCut-Server-Linux.tar.gz — PyInstaller onedir, Python 3.12, Ubuntu-built

macOS

  • OpenCut-Server-macOS.tar.gz — PyInstaller onedir, Python 3.12, macOS-built

Running it (Windows)

# Extract the zip
# Double-click OpenCut-Server.exe
# OR from a terminal:
cd OpenCut-Server
./OpenCut-Server.exe

# Env-var config (new in v1.9.24):
OPENCUT_PORT=5799 ./OpenCut-Server.exe
OPENCUT_HOST=0.0.0.0 OPENCUT_PORT=5679 ./OpenCut-Server.exe

Server listens on http://127.0.0.1:5679 by default. Point the CEP/UXP Adobe Premiere Pro panel at it or use the REST API directly.