- build the video save-dialog filter from VIDEO_EXTENSIONS (_VIDEO_FILE_FILTER)
instead of a hardcoded "Videos (*.mp4 *.mkv)" — the last filter that still
drifted from the canonical set
- remove the now-dead file_types list (unused in both the fork and upstream;
the PySide6 dialogs use the QFileDialog filter strings) and drop it from the
centralization comment
Review feedback on #1831:
- Remove *.gif from the save/output dialog filter (PR had added it there).
Verified empirically that cv2.imread/imwrite cannot decode OR encode GIF on
OpenCV 4.10 *or* 4.11 (write raises, read returns None), so GIF silently
failed on both ends — dropped from every dialog and from has_image_extension.
- has_image_extension now uses os.path.splitext so only the true extension
counts ('photo.png.bak' / 'clip.webp.mp4' are no longer treated as images).
- Centralize the supported-extension set in modules.globals (IMAGE_EXTENSIONS /
VIDEO_EXTENSIONS); file_types, all QFileDialog filters and has_image_extension
now derive from it instead of hand-copied lists that had already drifted.
WEBP itself is unchanged and works (libwebp ships with opencv-python).
- adds poisson blending on the face to make a seamless blending of the face and the swapped image removing the "frame"
- adds the switch on the UI
Advance Merry Christmas everyone!
- The live camera display as you see it in the front-facing camera frame (like iPhone's Mirror Front Camera).
- The live camera frame is resizable.
Note: These options are turned off by default. Enabling both options may reduce performance by ~2%.
Signed-off-by: Vic P <vic4key@gmail.com>