Skip to content

Releases: Reflct/sharp-frames-python

v0.3.0 - Real-time selection previews

28 Aug 19:50

Choose a tag to compare

Added

  • Two-phase processing architecture: Separate extraction/analysis from selection phase
  • Interactive selection screen: Visual preview of frame selection with real-time feedback
  • Sharpness visualization: Bar chart showing frame quality distribution (first 100 frames)
  • Live selection preview: See frame count before applying selection
  • Parameter adjustment: Fine-tune selection parameters with instant visual feedback

Changed

  • TUI workflow: Now operates in distinct extraction and selection phases
  • Selection process: Interactive with visual feedback instead of batch processing
  • Resource efficiency: Analyze frames once, try multiple selection methods without reprocessing

Fixed

  • Windows compatibility: FFmpeg process hanging on Windows with large videos
  • Process termination: Proper subprocess cleanup with timeout handling
  • Thread safety: Enhanced concurrent processing stability on Windows

Technical

  • Two-phase TUIProcessor: New orchestrator for separated extraction and selection phases
  • Selection preview API: Added preview_selection methods to processor and selector
  • SharpnessChart widget: Custom Textual widget for frame quality visualization
  • Windows FFmpeg fix: Proactive termination on frame count completion with stall detection

V0.2.4

24 Jun 11:04

Choose a tag to compare

[0.2.4] - 2025-01-21

Added

  • Smart Path Sanitization: Automatically removes quotes, shell command prefixes, and escape sequences from pasted file paths
  • Intelligent File Path Routing: Drag-and-drop and file paths are automatically routed to appropriate input fields based on context
  • Enhanced Input Validation: Visual feedback for valid/invalid inputs with helpful hints
  • Improved User Experience: Seamless path handling eliminates common user frustrations

Changed

  • Path Input UX: File path inputs now automatically clean user input for better usability
  • Input Field Validation: Enhanced validators with automatic path sanitization
  • Visual Feedback: Added helpful text indicating automatic quote removal

Fixed

  • Processing Error Handling: Improved error messages and user feedback in processing screen
  • Configuration Validation: Better handling of path validation edge cases
  • MacOS fixes: Versions 0.2.1 - 0.2.3 addressed several cross compatibility issues with the textual interface on MacOS

Technical

  • New PathSanitizer Utility: Comprehensive path cleaning with extensive test coverage (366+ test cases)
  • Enhanced Validators: All path validators now support automatic sanitization
  • Smart File Type Detection: Context-aware routing based on file extensions and current step

v0.2.3 - Cross compatibility patch

21 Jun 23:48

Choose a tag to compare

Includes macOS processing improvements and fixes.

v0.2.0 - TUI and video directory processing

21 Jun 12:20

Choose a tag to compare

New Features

Textual Interface (Default)

  • Replaces command-line prompts with step-by-step wizard
  • Real-time input validation and error feedback
  • Enhanced error messages with specific guidance

Video Directory Processing

  • Process all videos in a folder with a single command
  • Automatically detects and processes supported video formats
  • Maintains individual processing settings for each video

Usage Changes

# New default behavior
sharp-frames                    # Launches textual interface

# Existing functionality unchanged  
sharp-frames input.mp4 output/  # Direct processing
sharp-frames video_folder/ output/  # Process all videos in folder
sharp-frames --interactive      # Legacy prompts

Technical Changes

Added

  • Path validation with existence/permission checking
  • Numeric field validation with range checking
  • Thread-safe subprocess management
  • UI component testing
  • Enhanced error analysis and reporting

Fixed

  • Configuration parameter mapping
  • Resource cleanup (temp files, subprocesses)
  • Error message specificity

Breaking Changes

  • sharp-frames without arguments now launches UI instead of showing help
  • Use sharp-frames --help for command-line help

Installation

pip install --upgrade sharp-frames
# or
pipx upgrade sharp-frames

Dependencies

  • Added: textual>=0.41.0
  • All existing dependencies unchanged

v0.1.3 - Image resizing

12 May 02:29

Choose a tag to compare

Added

  • Image resizing feature: New --width parameter to specify a custom width for extracted frames
  • Proportional scaling that preserves aspect ratio for both video extraction and directory processing
  • Interactive mode prompt for specifying resize width

Fixed

  • Improved FFmpeg subprocess handling to better manage stderr output

v0.1.2

08 May 11:09

Choose a tag to compare

[0.1.2] - 2024-06-18

Added

  • Preserve original filenames when processing images from a directory

Release v0.1.1

01 May 19:34

Choose a tag to compare

Minor fixes and cleanup

  • Updated default batch buffer value from 0 to 2 for better results in batched mode
  • Improved FFmpeg dependency detection and warning messages

Fixed

  • Fixed import issues that caused errors when running without installation

Initial Release v0.1.0

01 May 11:15

Choose a tag to compare

Added

  • Initial release
  • Support for extracting frames from video files
  • Support for processing directories of images
  • Three frame selection methods:
    • best-n: Select best frames while maintaining minimum distance
    • batched: Select best frame from each batch
    • outlier-removal: Remove outliers based on comparison with neighbors
  • Interactive mode with guided prompts
  • Proper Python package structure for pip and pipx installation
  • Command-line interface with sharp-frames command