* Sort images properly (to make the frame range parameter meaningfull)
* Add backup mechanism for model weights.
* Replace 'print' call by 'tqdm.write' call.
Right now, lowmem and Original use the same filenames. Since their models are incompatible, this could lead to failure by attemptiong to load lowmem weights in original or vice versa. This namechange migration will rename existing lowmem models in order to prevent problems.
Recommend that all users either manually rename the lowmem files or run this branch to update to the correct filenames.
* Complete parity fix for GAN128.
This brings GAN128 to parity with GAN in terms of multi GPU support.
Unfortunately, it fails to run due to a naming error.
('The name "model_4" is used 2 times in the model. All layer names should be unique. Layer names: ', ['input_6', 'lambda_1', 'lambda_2', 'model_6', 'model_4', 'model_4'])
* Fix for GAN128 until #287 can be resolved
Issue #287 details why GAN128 cannot be fixed until Keras is fixed upstream.
* Changes to PR as per Clorr
Made changes to error handling to split into separate PR as requested by Clorr.
* Updated to support Output Sharpening arguments
Two new types of output sharpening methods have been added.
One that deals with a Box Blur method and the other with a Gaussian Blur method.
Box Blur method can be called using argument '-sh bsharpen' --- This method is not dynamic and can produce strong sharpening on your images. Sometimes it can yield great results and sometimes entirely the opposite.
Gaussian Blur method can be called using argument '-sh gsharpen' --- This method is dynamic and tries to adjust to your data set. As a result, while the sharpening effect might not be as strong as bsharpen, it is bound to produce a more natural looking sharpened image.
By default the parameter is set to none which will not run any sharpening on your output.
* Output Sharpening added
Two ways of sharpening your output have been added
-sh bsharpen
-sh gsharpen
* Update convert.py
* Fix broken multigpu GAN loading.
Fix for loading into the multi GPU model when it needs to load/save the original model.
* Move reference change.
Move reference change for single model so it is defined before load
* Add mutliGPU support to GAN128
Added support for mutligpu to GAN128
* Add Improved AutoEncoder model.
* Refactoring Model_IAE to match the new model folder structure
* Add Model_IAE in plugins
* Add Multi-GPU support
I added multi-GPU support to the new model layout. Currently, Original is not tested (due to OOM on my 2x 4gb 970s). LowMem is not tested with the current commit due to it not being available since the new pluginloader misses it.
* Clearer requirements for each platform
* Refactoring of old plugins (Model_Original + Extract_Align) + Cleanups
* Adding GAN128
* Update GAN to v2
* Create instance_normalization.py
* Fix decoder output
* Revert "Fix decoder output"
This reverts commit 3a8ecb8957fe65e66282197455d775eb88455a77.
* Fix convert
* Enable all options except perceptual_loss by default
* Disable instance norm
* Update Model.py
* Update Trainer.py
* Match GAN128 to shaoanlu's latest v2
* Add first_order to GAN128
* Disable `use_perceptual_loss`
* Fix call to `self.first_order`
* Switch to average loss in output
* Constrain average to last 100 iterations
* Fix math, constrain average to intervals of 100
* Fix math averaging again
* Remove math and simplify this damn averagin
* Add gan128 conversion
* Update convert.py
* Use non-warped images in masked preview
* Add K.set_learning_phase(1) to gan64
* Add K.set_learning_phase(1) to gan128
* Add missing keras import
* Use non-warped images in masked preview for gan128
* Exclude deleted faces from conversion
* --input-aligned-dir defaults to "{input_dir}/aligned"
* Simplify map operation
* port 'face_alignment' from PyTorch to Keras. It works x2 faster, but initialization takes 20secs.
2DFAN-4.h5 and mmod_human_face_detector.dat included in lib\FaceLandmarksExtractor
fixed dlib vs tensorflow conflict: dlib must do op first, then load keras model, otherwise CUDA OOM error
if face location not found by CNN, its try to find by HOG.
removed this:
- if face.landmarks == None:
- print("Warning! landmarks not found. Switching to crop!")
- return cv2.resize(face.image, (size, size))
because DetectedFace always has landmarks
* Enabled masked converter for GAN models
* Histogram matching, cli option for perceptual loss
* Fix init() positional args error
* Add backwards compatibility for aligned filenames
* Fix masked converter
* Remove GAN converters
* Allows for negative erosion kernel for -e arg. If value is negative, it turns it into a dilation kernel, which allow facehullandrect to cover more space. Can help to cover double eyebrows. Also could be useful with Masked converter for GAN that oatsss is working on.
* Update convert.py
Modified argument help to clarify the effects of erosion and dilation as parameters
* port 'face_alignment' from PyTorch to Keras. It works x2 faster, but initialization takes 20secs.
2DFAN-4.h5 and mmod_human_face_detector.dat included in lib\FaceLandmarksExtractor
fixed dlib vs tensorflow conflict: dlib must do op first, then load keras model, otherwise CUDA OOM error
if face location not found by CNN, its try to find by HOG.
removed this:
- if face.landmarks == None:
- print("Warning! landmarks not found. Switching to crop!")
- return cv2.resize(face.image, (size, size))
because DetectedFace always has landmarks
* removing DetectedFace.landmarks
* Making Models as plugins
* Do not reload model on each image #39 + Adding FaceFilter #53
* Adding @lukaville PR for #43 and #44 (possibly)
* Training done in a separate thread
* Better log for plugin load
* Adding a prefetch to train.py #49
(Note that we prefetch 2 batches of images, due to the queue behavior)
+ More compact logging with verbose info included
* correction of DirectoryProcessor signature
* adding missing import
* Convert with parallel preprocessing of files
* Added coverage var for trainer
Added a var with comment. Feel free to add it as argument
* corrections
* Modifying preview and normalization of image + correction
* Cleanup