Session restore fixes:
- AUTO-typed folders now default to MAIN on restore instead of using
position-based index%2, which silently flipped half the folders to
TRANSITION when restoring legacy sessions
- All restored folders get explicit type overrides so no folder relies
on position-based typing after restore
- TRANSITION folders with symlink data are auto-recovered as MAIN
(catches incorrectly saved types from older export paths)
- Export Sequence path now saves with save_effective_types=True,
preventing folder type loss
- Removed redundant trim-only save that used unresolved paths
- Auto-save guards against overwriting sessions with empty file lists
UI improvements:
- Added 4th "Frame" column to Sequence Order tab showing overall
frame number (1-based)
- Last frame of each sequence is bold for visual clarity
- Fixed column resizing (ResizeToContents + Stretch) to prevent
column collapse bugs
- Save Session dialog now reports main + transition folder counts
- Default optical flow preset changed to Max
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix export range not covering TRANSITION folder middle frames: range max
was based on MAIN-only file count, causing blends at sequence end to be
silently skipped. Now uses full sequence frame count from preview table.
- Fix preview table not counting TRANSITION middle frames: these frames are
output as symlinks in export but were shown without sequence numbers in
preview. Now displayed as [T] entries with proper output_seq numbering.
- Fix session restore path resolution: all folder paths now .resolve()'d on
save and restored with _resolve_lookup() fallback for both raw and resolved
forms. Fixes folder order corruption on restore.
- Fix legacy session restore: detect pre-migration sessions (all folder_order=0)
and fall back to symlink-derived ordering with get_all_folder_settings().
- Fix ffmpeg concat demuxer duration format: use decimal instead of fraction.
- Fix QProgressDialog false cancellation from autoReset at max value.
- Fix Export with Transitions skipping TRANSITION folders entirely while
preview processed them, causing cutoff at blend boundaries.
- Fix Encode Video Only not finding transition-exported files in trans_dest.
- Add video encoding module (core/video.py) with concat demuxer support.
- Add direct_transition_settings DB table and persistence.
- Add sticky folder types on reorder and placeholder transition slots.
- Add blend-skipped-range counter to export completion dialog.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rewrite _export_sequence with QProgressDialog, per-file error handling,
cancel support, and continuous seq_00000 naming
- Add folder progress labels to _process_with_transitions
- Extend cleanup_old_links to remove film_temp_*.png temporaries
- Add copy-files checkbox for Docker/remote destinations
- Persist individually removed files across sessions (removed_files table)
- Recover file removals from export history for older sessions
- Save effective folder types in transition exports for reliable restore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implement standalone PyTorch-based RIFE interpolation that runs in a
dedicated virtual environment to avoid Qt/OpenCV conflicts:
- Add PracticalRifeEnv class for managing venv and subprocess execution
- Add rife_worker.py standalone interpolation script using Practical-RIFE
- Add RIFE_PRACTICAL blending model with ensemble/fast mode settings
- Add UI controls for Practical-RIFE configuration
- Update .gitignore to exclude venv-rife/ directory
The implementation downloads Practical-RIFE models on first use and runs
interpolation in a separate process with proper progress reporting.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>