* tools.alignments - add export job
* plugins.extract: Update __repr__ for ExtractorBatch dataclass
* plugins.extract: Initial implementation of external import plugins
* plugins.extract: Disable lm masks on ROI alignment data import
* lib.align: Add `landmark_type` property to AlignedFace and return dummy data for ROI Landmarks pose estimate
* plugins.extract: Add centering config item for align import and fix filename mapping for images
* plugins.extract: Log warning on downstream plugins on limited alignment data
* tools: Fix plugins for 4 point ROI landmarks (alignments, sort, mask)
* tools.manual: Fix for 2D-4 ROI landmarks
* training: Fix for 4 point ROI landmarks
* lib.convert: Average color plugin. Avoid divide by zero errors
* extract - external:
- Default detector to 'external' when importing alignments
- Handle different frame origin co-ordinates
* alignments: Store video extension in alignments file
* plugins.extract.external: Handle video file keys
* plugins.extract.external: Output warning if missing data
* locales + docs
* plugins.extract.align.external: Roll the corner points to top-left for different origins
* Clean up
* linting fix
* Add LR Finder support structure
* Move trainer.Feeder to lib.training.generator
* Expose model.io
* Add lr_finder
* Update docs and locales
* Pre-PR fixups
- Fix training graph not displaying
- CI fixes
- Switch lr finder progress to tqdm
- Exit lr finder early on NaN
- Display lr finder progress in GUI
- implement configurable re-align function in extract
- update locales + documentation
- re-factor align._base and split to separate modules
- move normalization method to plugin parent
- bugfix: FAN use zeros for pre-processing crop
- lint AlignedFilter
- Allow selecting folder as well as multiple images
- Lower default threshold and update helptext
- bugfix: detector error when using all aligned faces
- Standardize output folder name
- Remove old face filter
- plugins.extract.pipeline: Expose plugins directly
- Change `is_aligned` from plugin level to ExtractMedia level
- Allow extract pipeline to take faceswap aligned images
- Add ability for recognition plugins to accept aligned faces as input
- Add face filter to recognition plugin
- Move extractor pipeline IO ops to own class
- lib.detected_face
- Subclass Masks for Landmark based masks
- Add training mask propery + methods to DetectedFace
- lib.training_training
- subclass TrainingDataGenerator for training and preview data
- Split cache into own module
- Reduce thread count to 1 to prevent image corruption + data re-use
- Process on largest model input/output size rather than stored image size
- Size and crop masks during caching stage
- Implement ring buffer for data flow
- Fix preview reload bug
- augmentation
- typing
- switch color aug order
- better initialization
- Fix warp + landmark warp to correctly apply at different image scales
- Slightly improved warp caching
- Don't store whether image is_preview. Handle all data as training images implicitly
- plugins.trainer: Typing and fixes to work with trainingdata refactor
* Update maximum tf version in setup + requirements
* - bump max version of tf version in launcher
- standardise tf version check
* update keras get_custom_objects for tf>2.6
* bugfix: force black text in GUI file dialogs (linux)
* dssim loss - Move to stock tf.ssim function
* Update optimizer imports for compatibility
* fix logging for tf2.8
* Fix GUI graphing for TF2.8
* update tests
* bump requirements.txt versions
* Remove limit on nvidia-ml-py
* Graphing bugfixes
- Prevent live graph from displaying if data not yet available
* bugfix: Live graph. Collect loss labels correctly
* fix: live graph - swallow inconsistent loss errors
* Bugfix: Prevent live graph from clearing during training
* Fix graphing for AMD
Documentation
- Update Usage.md, align.rst and image.rst
lib.image.py
- read_image - Remove hash return, add metadata return
- Remove read_image_hash functions
- Add read_image_meta functios
- Replace encode_image_with_hash with encode_image (to store metadata)
- Add png meta reading and writing functions
- Update Image Loaders/Savers to handle metadata rather than hashes
lib.training_data
- Naming updates to remove references to hashes
lib.align.Alignments
- Add versioning notes
- Increment alignments version to 2.1
- Deprecate hashing lookup functions
- Replace filter_hashes with filter_faces
lib.align.detected_face
- DetectedFace
- Remove hash property
- Add png header data serializing/deserializing functions
- Mask
- Add png header data serializing/deserializing functions
- add update_legacy_png_header function to update png meta data
lib.cli.args - Deprecate alignments files for training
- plugins.train.trainer
- Update alignments/mask code to read png header data
- scripts.convert
- Aligned images folder - read data from png headers
- scripts.extract
- Write png header information and no longer store hash of face
- tools.alignments
- remove leftover-faces, merge and update-hashes jobs
- Update jobs to use png meta data rather than hashes
- tools.manual
- Update extract code to output png meta data and don't store hashes
- Perform check on launch that tool is not pointing at a faces folder
tools.mask
- Update to use png meta data
tools.sort
- Update to use png meta data