1
0
Fork 0
mirror of https://github.com/deepfakes/faceswap synced 2025-06-09 04:36:50 -04:00
Commit graph

101 commits

Author SHA1 Message Date
torzdf
a62a85c021 bugfix: setup.py - Force pip for imagio-ffmpeg 2023-11-17 02:09:55 +00:00
torzdf
31eff9c096 macos fixes
- setup.py - reduce width of progress bar
  - macos bash install script
  - macos app launcher
2023-07-14 01:40:41 +01:00
torzdf
c39a77f63e bugfix: setup.py pull in zlib-wapi on nvidia windows 2023-07-06 13:33:30 +01:00
torzdf
c22e105f18 bugfix: setup.py - fix logic ordering 2023-06-30 22:15:13 +01:00
torzdf
dd03aa8573 setup.py: Revert redundant conda check 2023-06-27 18:03:41 +01:00
torzdf
4819d5b97d bugfixes:
- Remove duplicate line from Dockerfile.gpu
  - Add more robust Conda checking
2023-06-27 16:05:53 +01:00
torzdf
6a3b674bef
Rebase code (#1326)
* Remove tensorflow_probability requirement

* setup.py - fix progress bars

* requirements.txt: Remove pre python 3.9 packages

* update apple requirements.txt

* update INSTALL.md

* Remove python<3.9 code

* setup.py - fix Windows Installer

* typing: python3.9 compliant

* Update pytest and readthedocs python versions

* typing fixes

* Python Version updates
  - Reduce max version to 3.10
  - Default to 3.10 in installers
  - Remove incompatible 3.11 tests

* Update dependencies

* Downgrade imageio dep for Windows

* typing: merge optional unions and fixes

* Updates
  - min python version 3.10
  - typing to python 3.10 spec
  - remove pre-tf2.10 code
  - Add conda tests

* train: re-enable optimizer saving

* Update dockerfiles

* Update setup.py
  - Apple Conda deps to setup.py
  - Better Cuda + dependency handling

* bugfix: Patch logging to prevent Autograph errors

* Update dockerfiles

* Setup.py - Setup.py - stdout to utf-8

* Add more OSes to github Actions

* suppress mac-os end to end test
2023-06-27 11:27:47 +01:00
torzdf
03f5c671bc
Remove plaidML support (#1325)
* Remove PlaidML reference from readme files

* Remove AMD option from installers

* remove amd requirements and update setup.py

* remove plaidml test from CI workflow

* gpustats: remove plaidml backend

* plaid removals:
  - faceswap.py - python version check
  - setup.cfg - plaidml typing ignore
  - lib.keras_utils - All plaid code
  - lib.launcher.py - All plaidml checks and configuration

* remove tf2.2 specific code from GUI event reader

* lib.model - remove all plaidml implementations

* plugins.extract - remove plaidml code

* plugins.train remove plaidml code

* lib.convert - remove plaidml code

* tools.model: remove plaidml code

* Remove plaidML tests from unit tests

* remove plaidml_utils and docsting cleanups

* Remove plaidML refs from configs

* fix keras imports
2023-06-21 12:57:33 +01:00
torzdf
80f63280ca Bugfixes
- plugin.train.unbalanced - decoder b
  - gui.stats - crash when log folder deleted
  - setup.py - install gcc=12.1.0 on linux (scipy dep)
  - setup.py - don't test ROCm unless valid
  - typofix - cli_args extract singleprocess help
typing
  - lib.gui.analysis.event_reader
  - lib.gpu_stats.directml - make platform specific
unit tests
  - lib.gui.analysis.event_reader
2023-01-13 23:29:51 +00:00
torzdf
c455601ed2 Linux - ROCm (AMD) support 2023-01-11 13:09:32 +00:00
torzdf
dc94ed9cad
DirectML Support (#1291)
* DML Support
  - Add requirements. Update setup.py. Update Windows Installer
  - Add 'directml' backend. Update backend supporting logic
  - GPUStats - Add GPU querying from Win SDK for DML backend
  - Windows PlaidML - Deprecation Warning
  - Remove deprecated '-d' training flag
  - Logging in DML functions
- Unittest
  - Windows Unit Test
  - lib.utils
2023-01-06 14:45:57 +00:00
torzdf
d750af1e92 bump TF to version 2.10 2022-12-20 15:30:26 +00:00
torzdf
48c886b3dc Allow decoding errors 2022-12-18 19:02:17 +00:00
torzdf
892d8626ed Bugfix: Alignments tool - don't error on from-faces job 2022-09-23 13:23:53 +01:00
torzdf
9bd86eb810 setup - Exit with errorcode if any packages failed 2022-08-26 09:19:52 +01:00
torzdf
b288771577 typofix: setup.py 2022-08-23 18:19:51 +01:00
torzdf
1919366d18 setup.py - cleanup installers 2022-08-23 17:38:39 +01:00
torzdf
76dbc4c7d0 bugfix: setup.py
- Windows - Don't fail + fallback install on non-english systems
  - Windows - Suppress duplicate waiting messages
2022-08-23 12:13:12 +01:00
torzdf
e9bac5dee2 typofix 2022-08-22 02:27:44 +01:00
torzdf
ee25a31d33 bugfix: setup.py - Fix issue with Conda AMD install 2022-08-12 01:46:16 +01:00
torzdf
39ac1f53a3 setup.py - Fix AMD conflicts 2022-08-10 17:38:04 +01:00
torzdf
26e26c6288 Update TF to 2.9
- Update TF to 2.7 to 2.9
    - Bump dependencies
    - Remove decode from pynvml calls
    - force keras predict functions to non-verbose
    - update tests
    - update Tensorboard logging
    - Update docs
2022-08-02 17:12:26 +01:00
torzdf
8da4fac645 setup.py - Update console width for WIndows installer 2022-07-30 17:13:30 +01:00
torzdf
eb3a7fcf2c setup.py - Force newlines in Windows for installer 2022-07-30 14:10:14 +01:00
torzdf
92912a7061 Update setup.py
- Realtime output for Windows
  - color logging for compatible Windows versions
2022-07-30 13:45:09 +01:00
torzdf
ed87326d68 bugfix: Fix setup for Windows 2022-07-29 09:31:18 +01:00
torzdf
1c75d012b0 setup.py: bugfix - use correct installer for Windows 2022-07-29 00:18:45 +01:00
torzdf
03f6cb4e7e setup.py: implement logging 2022-07-28 23:53:31 +01:00
torzdf
4f49de52e7 pin protobuf
Setup: automatically detect for apple-silicon
2022-06-16 16:40:49 +01:00
geewiz94
0f67790071 Some Apple Silicion setup fixes (#1238)
* Move pynvx to Nvidia requirements

* Add missing tensorflow-deps and fix tensorflow-metal version

* Fix setup not using Conda

* Update INSTALL.md
2022-06-16 16:40:49 +01:00
torzdf
a586ef6bf3 Add Apple M1 to setup.py
add libblas to requirements
2022-06-16 16:40:45 +01:00
torzdf
20a657d6cf Bump minimum TF Version 2022-06-07 10:54:51 +01:00
torzdf
8d084cf426 AMD Updates
- Linux Installer - Default to Python3.8
  - Setup + Faceswap - Don't launch with python versions > 3.8
2022-06-05 11:41:46 +01:00
torzdf
17d35ea423 setup.py - python 3.9 support
- move requirements files to dedicated folder
    - update all references to requirements files locations
    - setup.py: remove git requirements references
    - setup.py: allow running in python 3.9
    - windows/linux installers: default to python 3.9 environment
    - faceswap.py: cleaner python version check
2022-05-16 11:28:09 +01:00
torzdf
d83a39716b minor cleanup
- Consistent naming for backend selection
- Remove apple-silicon from setup.py (not yet implemented)
2022-05-12 12:40:53 +01:00
geewiz94
948f0fb82e Rename Apple Silicon backend to apple_silicon 2022-05-12 01:33:56 +02:00
geewiz94
03a8b6228e Merge branch 'merge-upstream-changes' into patch-1 2022-05-07 13:12:42 +02:00
torzdf
c1512fd41d
Update code to support Tensorflow versions up to 2.8 (#1213)
* 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
2022-05-02 14:30:43 +01:00
Daniel Livingston
d6eedb09ff added apple silicon backend 2022-03-19 15:43:21 -04:00
torzdf
cf4b567cc6
Tensorflow 2.6 Support (#1182)
* lib.cli.launcher - Bump max tf version to 2.6

* Remove pathlib requirement

* Update requirements files

* Update setup.py

* bugfix - GUI: Supress errors when attempting to load previews in extract

* GUI: Suppress ptxas error messages for Windows
2021-09-05 02:25:12 +01:00
torzdf
163b8fe374 sysinfo/setup - Standardize cuda/cudnn checks 2021-01-08 23:43:22 +00:00
torzdf
f9a5b722e8 Bugfix - setup.py. Explicitly install cudatoolkit in Conda 2021-01-06 01:24:17 +00:00
torzdf
9182c56921 Re-instate tf2.2 minimum version (2.3 not on Conda for Linux) 2020-12-20 13:37:59 +00:00
torzdf
3b7535c732
Update to TF2.3 (#1100)
* Minimum requirements to tf2.3.
  - Handle upgrades for Windows users with tf2.2 installed by Pip
  - Handle windows upgrade from pip tf2.2
  - Explicitly install Cuda for Conda installs

* Update tensorflow errors api reference
* Suppress AutoGraph warning messages
* Update GUI Stats to work with tf2.3
* Fix live graph for tf2.3
* DSSIMObjective - autoGraph bugfix
* Update Travis test
2020-12-18 19:58:30 +00:00
torzdf
88611018b3 Setup.py - Minor change to cudnn locator 2020-09-27 00:56:39 +01:00
torzdf
baa28669bc bugfix - Update Dependencies - Avoid constantly trying to redownload Tensorflow 2020-08-19 08:07:53 +01:00
torzdf
f897562a09 Set minimum python version to 3.7 2020-08-18 19:10:56 +01:00
torzdf
d8557c1970
Faceswap 2.0 (#1045)
* Core Updates
    - Remove lib.utils.keras_backend_quiet and replace with get_backend() where relevant
    - Document lib.gpu_stats and lib.sys_info
    - Remove call to GPUStats.is_plaidml from convert and replace with get_backend()
    - lib.gui.menu - typofix

* Update Dependencies
Bump Tensorflow Version Check

* Port extraction to tf2

* Add custom import finder for loading Keras or tf.keras depending on backend

* Add `tensorflow` to KerasFinder search path

* Basic TF2 training running

* model.initializers - docstring fix

* Fix and pass tests for tf2

* Replace Keras backend tests with faceswap backend tests

* Initial optimizers update

* Monkey patch tf.keras optimizer

* Remove custom Adam Optimizers and Memory Saving Gradients

* Remove multi-gpu option. Add Distribution to cli

* plugins.train.model._base: Add Mirror, Central and Default distribution strategies

* Update tensorboard kwargs for tf2

* Penalized Loss - Fix for TF2 and AMD

* Fix syntax for tf2.1

* requirements typo fix

* Explicit None for clipnorm if using a distribution strategy

* Fix penalized loss for distribution strategies

* Update Dlight

* typo fix

* Pin to TF2.2

* setup.py - Install tensorflow from pip if not available in Conda

* Add reduction options and set default for mirrored distribution strategy

* Explicitly use default strategy rather than nullcontext

* lib.model.backup_restore documentation

* Remove mirrored strategy reduction method and default based on OS

* Initial restructure - training

* Remove PingPong
Start model.base refactor

* Model saving and resuming enabled

* More tidying up of model.base

* Enable backup and snapshotting

* Re-enable state file
Remove loss names from state file
Fix print loss function
Set snapshot iterations correctly

* Revert original model to Keras Model structure rather than custom layer
Output full model and sub model summary
Change NNBlocks to callables rather than custom keras layers

* Apply custom Conv2D layer

* Finalize NNBlock restructure
Update Dfaker blocks

* Fix reloading model under a different distribution strategy

* Pass command line arguments through to trainer

* Remove training_opts from model and reference params directly

* Tidy up model __init__

* Re-enable tensorboard logging
Suppress "Model Not Compiled" warning

* Fix timelapse

* lib.model.nnblocks - Bugfix residual block
Port dfaker
bugfix original

* dfl-h128 ported

* DFL SAE ported

* IAE Ported

* dlight ported

* port lightweight

* realface ported

* unbalanced ported

* villain ported

* lib.cli.args - Update Batchsize + move allow_growth to config

* Remove output shape definition
Get image sizes per side rather than globally

* Strip mask input from encoder

* Fix learn mask and output learned mask to preview

* Trigger Allow Growth prior to setting strategy

* Fix GUI Graphing

* GUI - Display batchsize correctly + fix training graphs

* Fix penalized loss

* Enable mixed precision training

* Update analysis displayed batch to match input

* Penalized Loss - Multi-GPU Fix

* Fix all losses for TF2

* Fix Reflect Padding

* Allow different input size for each side of the model

* Fix conv-aware initialization on reload

* Switch allow_growth order

* Move mixed_precision to cli

* Remove distrubution strategies

* Compile penalized loss sub-function into LossContainer

* Bump default save interval to 250
Generate preview on first iteration but don't save
Fix iterations to start at 1 instead of 0
Remove training deprecation warnings
Bump some scripts.train loglevels

* Add ability to refresh preview on demand on pop-up window

* Enable refresh of training preview from GUI

* Fix Convert
Debug logging in Initializers

* Fix Preview Tool

* Update Legacy TF1 weights to TF2
Catch stats error on loading stats with missing logs

* lib.gui.popup_configure - Make more responsive + document

* Multiple Outputs supported in trainer
Original Model - Mask output bugfix

* Make universal inference model for convert
Remove scaling from penalized mask loss (now handled at input to y_true)

* Fix inference model to work properly with all models

* Fix multi-scale output for convert

* Fix clipnorm issue with distribution strategies
Edit error message on OOM

* Update plaidml losses

* Add missing file

* Disable gmsd loss for plaidnl

* PlaidML - Basic training working

* clipnorm rewriting for mixed-precision

* Inference model creation bugfixes

* Remove debug code

* Bugfix: Default clipnorm to 1.0

* Remove all mask inputs from training code

* Remove mask inputs from convert

* GUI - Analysis Tab - Docstrings

* Fix rate in totals row

* lib.gui - Only update display pages if they have focus

* Save the model on first iteration

* plaidml - Fix SSIM loss with penalized loss

* tools.alignments - Remove manual and fix jobs

* GUI - Remove case formatting on help text

* gui MultiSelect custom widget - Set default values on init

* vgg_face2 - Move to plugins.extract.recognition and use plugins._base base class
cli - Add global GPU Exclude Option
tools.sort - Use global GPU Exlude option for backend
lib.model.session - Exclude all GPUs when running in CPU mode
lib.cli.launcher - Set backend to CPU mode when all GPUs excluded

* Cascade excluded devices to GPU Stats

* Explicit GPU selection for Train and Convert

* Reduce Tensorflow Min GPU Multiprocessor Count to 4

* remove compat.v1 code from extract

* Force TF to skip mixed precision compatibility check if GPUs have been filtered

* Add notes to config for non-working AMD losses

* Rasie error if forcing extract to CPU mode

* Fix loading of legace dfl-sae weights + dfl-sae typo fix

* Remove unused requirements
Update sphinx requirements
Fix broken rst file locations

* docs: lib.gui.display

* clipnorm amd condition check

* documentation - gui.display_analysis

* Documentation - gui.popup_configure

* Documentation - lib.logger

* Documentation - lib.model.initializers

* Documentation - lib.model.layers

* Documentation - lib.model.losses

* Documentation - lib.model.nn_blocks

* Documetation - lib.model.normalization

* Documentation - lib.model.session

* Documentation - lib.plaidml_stats

* Documentation: lib.training_data

* Documentation: lib.utils

* Documentation: plugins.train.model._base

* GUI Stats: prevent stats from using GPU

* Documentation - Original Model

* Documentation: plugins.model.trainer._base

* linting

* unit tests: initializers + losses

* unit tests: nn_blocks

* bugfix - Exclude gpu devices in train, not include

* Enable Exclude-Gpus in Extract

* Enable exclude gpus in tools

* Disallow multiple plugin types in a single model folder

* Automatically add exclude_gpus argument in for cpu backends

* Cpu backend fixes

* Relax optimizer test threshold

* Default Train settings - Set mask to Extended

* Update Extractor cli help text
Update to Python 3.8

* Fix FAN to run on CPU

* lib.plaidml_tools - typofix

* Linux installer - check for curl

* linux installer - typo fix
2020-08-12 10:36:41 +01:00
torzdf
8a19d21ace setup.py - Fix conda-forge imports
Remove unused icons
2020-07-11 17:54:48 +01:00
torzdf
127d3dbe99
Dependencies update (#1028)
* Dependencies update
  - Split requirements.txt into separate version files
  - More flexible package pinning
  - Update dependencies
  - Fix pynvml being constantly re-downloaded on update
  - Update dockerfiles
  - update INSTALL.md
2020-05-31 16:25:36 +01:00