* FaceSwap 3 (#1515)
* Update extract pipeline
* Update requirements + setup for nvidia
* Remove allow-growth option
* tf.keras to keras updates
* lib.model.losses - Port + fix all loss functions for Keras3
* lib.model - port initializers, layers. normalization to Keras3
* lib.model.autoclip to Keras 3
* Update mixed precision layer storage
* model file to .keras format
* Restructure nn_blocks to initialize layers in __init__
* Tensorboard
- Trainer: Add Torch compatible Tensorboard callbacks
- GUI event reader remove TF dependency
* Loss logging
- Flush TB logs on save
- Replace TB live iterator for GUI
* Backup models on total loss drop rather than per side
* Update all models to Keras3 Compat
* Remove lib.model.session
* Update clip ViT to Keras 3
* plugins.extract.mask.unet-dfl - Fix for Keras3/Torch backend
* Port AdaBelief to Keras 3
* setup.py:
- Add --dev flag for dev tool install
* Fix Keras 3 syntax
* Fix LR Finder for Keras 3
* Fix mixed precision switching for Keras 3
* Add more optimizers + open up config setting
* train: Remove updating FS1 weights to FS2 models
* Alignments: Remove support for legacy .json files
* tools.model:
- Remove TF Saved Format saving
- Fix Backup/Restore + Nan-Scan
* Fix inference model creation for Keras 3
* Preview tool: Fix for Keras3
* setup.py: Configure keras backend
* train: Migration of FS2 models to FS3
* Training: Default coverage to 100%
* Remove DirectML backend
* Update setup for MacOS
* GUI: Force line reading to UTF-8
* Remove redundant Tensorflow references
* Remove redundant code
* Legacy model loading: Fix TFLamdaOp scalar ops and DepthwiseConv2D
* Add vertical offset option for training
* Github actions: Add more python versions
* Add python version to workflow names
* Github workflow: Exclude Python 3.12 for macOS
* Implement custom training loop
* Fs3 - Add RTX5xxx and ROCm 6.1-6.4 support (#1511)
* setup.py: Add Cuda/ROCm version select options
* bump minimum python version to 3.11
* Switch from setup.cgf to pyproject.toml
* Documentation: Update all docs to use automodapi
* Allow sysinfo to run with missing packages + correctly install tk under Linux
* Bugfix: dot naming convention in clip models
* lib.config: Centralise globally rather than passing as object
- Add torch DataParallel for multi-gpu training
- GUI: Group switches together when generating cli args
- CLI: Remove deprecated multi-character argparse args
- Refactor:
- Centralise tensorboard reading/writing + unit tests
- Create trainer plugin interfaces + add original + distributed
* Update installers
* 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