Skip to content

Releases: fralapo/FrameShift

FrameShift v1.0.1 — Security fixes

Choose a tag to compare

@fralapo fralapo released this 18 Jun 15:41

Security-focused patch release. No API or CLI changes.

Security

  • Model integrity verification (RCE hardening). Every YOLO .pt is now verified against a pinned SHA-256 before it is loaded. A .pt is a pickle archive, so loading an unverified file is equivalent to arbitrary code execution. Verification covers both freshly downloaded files and ones already present in models/, closing the path where a poisoned models/yolo11n.pt dropped in the working directory would be loaded unchecked. A file that fails the check is deleted, not loaded (fail-closed).
  • Safe downloads. Models download to a temporary .part file, are verified, then atomically moved into place, with a 60s request timeout. A stalled or partial download can no longer hang a run or leave a trusted-but-corrupt file behind.
  • Dependency pinning. requirements.txt now uses version bounds, drops the unused huggingface_hub and tensorboard, and adds the previously implicit requests dependency.

Fixes

  • Fixed the face-model download URL (dead tag v0.0.01.0.0). The old URL always returned 404, silently leaving the app on the MediaPipe fallback instead of the YOLO face model.

Other

  • Added tests/test_model_verification.py covering the integrity gate (heavy deps stubbed, runs without a full install).
  • README documents the integrity check.

Full changelog: v1.0.0...v1.0.1

FrameShift v1.0.0

Choose a tag to compare

@fralapo fralapo released this 22 Jun 20:11
ea795c1

First Public Release

I'm excited to announce the first public and stable release of FrameShift!

FrameShift is an open-source tool, inspired by Google AutoFlip, that automatically reframes videos to a new aspect ratio (e.g., from horizontal to vertical), ensuring that important faces and objects always remain visible in the frame.

This v1.0.0 release introduces a solid foundation of features, including a graphical user interface for easier use.

✨ What's New

  • Graphical User Interface (GUI): For those who prefer a visual experience, you can now launch FrameShift with a convenient GUI by running python frameshift_gui.py. The interface allows you to access most of the features without using the command line.

  • Intelligent Reframing: The system analyzes the video to identify scenes and, within each scene, detects faces and objects to determine the optimal framing.

  • Content Detection:

    • Faces: Detection via a specialized YOLO model, with MediaPipe as a fallback.
    • Objects: Detection of 80 classes of common objects (people, cars, animals, etc.) using the YOLO model, activated only when necessary to optimize performance.
  • Flexible Output Options:

    • Pan & Scan (Default): The frame completely fills the new format by cropping the excess parts.
    • Padding: Adds sidebars to show the entire optimal frame. The bars can be black, a custom color, or blurred.
  • Batch Processing: You can process an entire folder of videos with a single command.

  • Audio Handling: The audio from the original video is preserved in the output thanks to the integration with FFmpeg.