diff --git a/README.md b/README.md index 78c259d..4f2c975 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,16 @@ https://arxiv.org/abs/2005.05535 ### the leading software for creating deepfakes - +

-![](doc/logo_cuda.png) -![](doc/logo_tensorflow.png) -![](doc/logo_python.png) +![](scripts/logo_cuda.png) +![](scripts/logo_tensorflow.png) +![](scripts/logo_python.png)

@@ -28,13 +28,13 @@ More than 95% of deepfake videos are created with DeepFaceLab. DeepFaceLab is used by such popular youtube channels as -|![](doc/youtube_icon.png) [Ctrl Shift Face](https://www.youtube.com/channel/UCKpH0CKltc73e4wh0_pgL3g)|![](doc/youtube_icon.png) [VFXChris Ume](https://www.youtube.com/channel/UCGf4OlX_aTt8DlrgiH3jN3g/videos)| +|![](scripts/youtube_icon.png) [Ctrl Shift Face](https://www.youtube.com/channel/UCKpH0CKltc73e4wh0_pgL3g)|![](scripts/youtube_icon.png) [VFXChris Ume](https://www.youtube.com/channel/UCGf4OlX_aTt8DlrgiH3jN3g/videos)| |---|---| -|![](doc/youtube_icon.png) [Sham00k](https://www.youtube.com/channel/UCZXbWcv7fSZFTAZV4beckyw/videos)|![](doc/youtube_icon.png) [Collider videos](https://www.youtube.com/watch?v=A91P2qtPT54&list=PLayt6616lBclvOprvrC8qKGCO-mAhPRux)|![](doc/youtube_icon.png) [iFake](https://www.youtube.com/channel/UCC0lK2Zo2BMXX-k1Ks0r7dg/videos)| +|![](scripts/youtube_icon.png) [Sham00k](https://www.youtube.com/channel/UCZXbWcv7fSZFTAZV4beckyw/videos)|![](scripts/youtube_icon.png) [Collider videos](https://www.youtube.com/watch?v=A91P2qtPT54&list=PLayt6616lBclvOprvrC8qKGCO-mAhPRux)|![](scripts/youtube_icon.png) [iFake](https://www.youtube.com/channel/UCC0lK2Zo2BMXX-k1Ks0r7dg/videos)| |---|---|---| -|![](doc/youtube_icon.png) [NextFace](https://www.youtube.com/channel/UCFh3gL0a8BS21g-DHvXZEeQ/videos)|![](doc/youtube_icon.png) [Futuring Machine](https://www.youtube.com/channel/UCC5BbFxqLQgfnWPhprmQLVg)| +|![](scripts/youtube_icon.png) [NextFace](https://www.youtube.com/channel/UCFh3gL0a8BS21g-DHvXZEeQ/videos)|![](scripts/youtube_icon.png) [Futuring Machine](https://www.youtube.com/channel/UCC5BbFxqLQgfnWPhprmQLVg)| |---|---| @@ -47,7 +47,7 @@ DeepFaceLab is used by such popular youtube channels as ## Replace the face - + @@ -58,18 +58,18 @@ DeepFaceLab is used by such popular youtube channels as - + - + -![](doc/youtube_icon.png) https://www.youtube.com/watch?v=Ddx5B-84ebo +![](scripts/youtube_icon.png) https://www.youtube.com/watch?v=Ddx5B-84ebo @@ -82,52 +82,52 @@ DeepFaceLab is used by such popular youtube channels as - + - + -![](doc/youtube_icon.png) https://www.youtube.com/watch?v=xr5FHd0AdlQ +![](scripts/youtube_icon.png) https://www.youtube.com/watch?v=xr5FHd0AdlQ - + - + -![](doc/youtube_icon.png) https://www.youtube.com/watch?v=RTjgkhMugVw +![](scripts/youtube_icon.png) https://www.youtube.com/watch?v=RTjgkhMugVw - + - + -![](doc/youtube_icon.png) https://www.youtube.com/watch?v=R9f7WD0gKPo +![](scripts/youtube_icon.png) https://www.youtube.com/watch?v=R9f7WD0gKPo @@ -140,9 +140,9 @@ DeepFaceLab is used by such popular youtube channels as ## Change the lip movement of politicians* - + -![](doc/youtube_icon.png) https://www.youtube.com/watch?v=2Z1oA3GYPaY +![](scripts/youtube_icon.png) https://www.youtube.com/watch?v=2Z1oA3GYPaY \* also requires a skill in video editors such as *Adobe After Effects* or *Davinci Resolve* @@ -153,12 +153,12 @@ DeepFaceLab is used by such popular youtube channels as - + - + Unfortunately, there is no "make everything ok" button in DeepFaceLab. You should spend time studying the workflow and growing your skills. A skill in programs such as *AfterEffects* or *Davince Resolve* is also desirable. @@ -169,7 +169,7 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul - + @@ -228,7 +228,7 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul ||[Donate via Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=lepersorium@gmail.com&lc=US&no_note=0&item_name=Support+DeepFaceLab&cn=&curency_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted) ||[Donate via Yandex.Money](https://money.yandex.ru/to/41001142318065)| ||bitcoin:bc1qkhh7h0gwwhxgg6h6gpllfgstkd645fefrd5s6z| -|Alipay 捐款|![](doc/Alipay_donation.jpg)| +|Alipay 捐款|![](scripts/Alipay_donation.jpg)| ||| |Last donations|-| ||| @@ -247,19 +247,19 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul - + - + - + diff --git a/doc/Alipay_donation.jpg b/doc/Alipay_donation.jpg deleted file mode 100644 index 48781e1..0000000 Binary files a/doc/Alipay_donation.jpg and /dev/null differ diff --git a/doc/DFL_welcome.png b/doc/DFL_welcome.png deleted file mode 100644 index 2e4e138..0000000 Binary files a/doc/DFL_welcome.png and /dev/null differ diff --git a/doc/deage_0_1.jpg b/doc/deage_0_1.jpg deleted file mode 100644 index 51e057e..0000000 Binary files a/doc/deage_0_1.jpg and /dev/null differ diff --git a/doc/deage_0_2.jpg b/doc/deage_0_2.jpg deleted file mode 100644 index 996cacd..0000000 Binary files a/doc/deage_0_2.jpg and /dev/null differ diff --git a/doc/deepfake_progress.png b/doc/deepfake_progress.png deleted file mode 100644 index e7a14a2..0000000 Binary files a/doc/deepfake_progress.png and /dev/null differ diff --git a/doc/deepfake_progress_source.psd b/doc/deepfake_progress_source.psd deleted file mode 100644 index d90b241..0000000 Binary files a/doc/deepfake_progress_source.psd and /dev/null differ diff --git a/doc/head_replace_0_1.jpg b/doc/head_replace_0_1.jpg deleted file mode 100644 index 9125d91..0000000 Binary files a/doc/head_replace_0_1.jpg and /dev/null differ diff --git a/doc/head_replace_0_2.jpg b/doc/head_replace_0_2.jpg deleted file mode 100644 index 14c23ec..0000000 Binary files a/doc/head_replace_0_2.jpg and /dev/null differ diff --git a/doc/head_replace_1_1.jpg b/doc/head_replace_1_1.jpg deleted file mode 100644 index 464bf50..0000000 Binary files a/doc/head_replace_1_1.jpg and /dev/null differ diff --git a/doc/head_replace_1_2.jpg b/doc/head_replace_1_2.jpg deleted file mode 100644 index 14c845a..0000000 Binary files a/doc/head_replace_1_2.jpg and /dev/null differ diff --git a/doc/head_replace_2_1.jpg b/doc/head_replace_2_1.jpg deleted file mode 100644 index a447893..0000000 Binary files a/doc/head_replace_2_1.jpg and /dev/null differ diff --git a/doc/head_replace_2_2.jpg b/doc/head_replace_2_2.jpg deleted file mode 100644 index dc4eaf3..0000000 Binary files a/doc/head_replace_2_2.jpg and /dev/null differ diff --git a/doc/landmarks.jpg b/doc/landmarks.jpg deleted file mode 100644 index 1b9c275..0000000 Binary files a/doc/landmarks.jpg and /dev/null differ diff --git a/doc/landmarks_98.jpg b/doc/landmarks_98.jpg deleted file mode 100644 index f2b32ab..0000000 Binary files a/doc/landmarks_98.jpg and /dev/null differ diff --git a/doc/logo_cuda.png b/doc/logo_cuda.png deleted file mode 100644 index 0b928a6..0000000 Binary files a/doc/logo_cuda.png and /dev/null differ diff --git a/doc/logo_python.png b/doc/logo_python.png deleted file mode 100644 index f2f1d90..0000000 Binary files a/doc/logo_python.png and /dev/null differ diff --git a/doc/logo_tensorflow.png b/doc/logo_tensorflow.png deleted file mode 100644 index 1287842..0000000 Binary files a/doc/logo_tensorflow.png and /dev/null differ diff --git a/doc/make_everything_ok.png b/doc/make_everything_ok.png deleted file mode 100644 index 9a90c0d..0000000 Binary files a/doc/make_everything_ok.png and /dev/null differ diff --git a/doc/meme1.jpg b/doc/meme1.jpg deleted file mode 100644 index 819d36d..0000000 Binary files a/doc/meme1.jpg and /dev/null differ diff --git a/doc/meme2.jpg b/doc/meme2.jpg deleted file mode 100644 index 9899c85..0000000 Binary files a/doc/meme2.jpg and /dev/null differ diff --git a/doc/meme3.jpg b/doc/meme3.jpg deleted file mode 100644 index 3ee794a..0000000 Binary files a/doc/meme3.jpg and /dev/null differ diff --git a/doc/mini_tutorial.jpg b/doc/mini_tutorial.jpg deleted file mode 100644 index 193129f..0000000 Binary files a/doc/mini_tutorial.jpg and /dev/null differ diff --git a/doc/political_speech.jpg b/doc/political_speech.jpg deleted file mode 100644 index 9775e75..0000000 Binary files a/doc/political_speech.jpg and /dev/null differ diff --git a/doc/replace_the_face.png b/doc/replace_the_face.png deleted file mode 100644 index 7d612dc..0000000 Binary files a/doc/replace_the_face.png and /dev/null differ diff --git a/doc/youtube_icon.png b/doc/youtube_icon.png deleted file mode 100644 index dff95d4..0000000 Binary files a/doc/youtube_icon.png and /dev/null differ diff --git a/scripts/1_clear_workspace.sh b/scripts/1_clear_workspace.sh new file mode 100644 index 0000000..237d059 --- /dev/null +++ b/scripts/1_clear_workspace.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +source env.sh + +rm -r "$DFL_WORKSPACE" +mkdir "$DFL_WORKSPACE" +mkdir "$DFL_WORKSPACE/data_src" +mkdir "$DFL_WORKSPACE/data_src/aligned" +mkdir "$DFL_WORKSPACE/data_src/aligned_debug" +mkdir "$DFL_WORKSPACE/data_dst" +mkdir "$DFL_WORKSPACE/data_dst/aligned" +mkdir "$DFL_WORKSPACE/data_dst/aligned_debug" +mkdir "$DFL_WORKSPACE/model" \ No newline at end of file diff --git a/scripts/2_extract_image_from_data_src.sh b/scripts/2_extract_image_from_data_src.sh new file mode 100644 index 0000000..8ef5277 --- /dev/null +++ b/scripts/2_extract_image_from_data_src.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" videoed extract-video \ + --input-file "$DFL_WORKSPACE/data_src.*" \ + --output-dir "$DFL_WORKSPACE/data_src" diff --git a/scripts/3.1_denoise_data_dst_images.sh b/scripts/3.1_denoise_data_dst_images.sh new file mode 100644 index 0000000..c970051 --- /dev/null +++ b/scripts/3.1_denoise_data_dst_images.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" videoed denoise-image-sequence \ + --output-dir "$DFL_WORKSPACE/data_dst" + diff --git a/scripts/3_extract_image_from_data_dst.sh b/scripts/3_extract_image_from_data_dst.sh new file mode 100644 index 0000000..da97427 --- /dev/null +++ b/scripts/3_extract_image_from_data_dst.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" videoed extract-video \ + --input-file "$DFL_WORKSPACE/data_dst.*" \ + --output-dir "$DFL_WORKSPACE/data_dst" \ + --fps 0 + diff --git a/scripts/4.2_data_src_sort.sh b/scripts/4.2_data_src_sort.sh new file mode 100755 index 0000000..9deed6c --- /dev/null +++ b/scripts/4.2_data_src_sort.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" sort \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" + diff --git a/scripts/4.2_data_src_util_add_landmarks_debug_images.sh b/scripts/4.2_data_src_util_add_landmarks_debug_images.sh new file mode 100755 index 0000000..a8f4fdc --- /dev/null +++ b/scripts/4.2_data_src_util_add_landmarks_debug_images.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --add-landmarks-debug-images + diff --git a/scripts/4.2_data_src_util_faceset_enhance.sh b/scripts/4.2_data_src_util_faceset_enhance.sh new file mode 100755 index 0000000..5d5e3dd --- /dev/null +++ b/scripts/4.2_data_src_util_faceset_enhance.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" facesettool enhance \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" + diff --git a/scripts/4.2_data_src_util_faceset_metadata_restore.sh b/scripts/4.2_data_src_util_faceset_metadata_restore.sh new file mode 100755 index 0000000..f22c2a7 --- /dev/null +++ b/scripts/4.2_data_src_util_faceset_metadata_restore.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --restore-faceset-metadata + diff --git a/scripts/4.2_data_src_util_faceset_metadata_save.sh b/scripts/4.2_data_src_util_faceset_metadata_save.sh new file mode 100755 index 0000000..bd284f9 --- /dev/null +++ b/scripts/4.2_data_src_util_faceset_metadata_save.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --save-faceset-metadata + diff --git a/scripts/4.2_data_src_util_faceset_pack.sh b/scripts/4.2_data_src_util_faceset_pack.sh new file mode 100755 index 0000000..f7234f5 --- /dev/null +++ b/scripts/4.2_data_src_util_faceset_pack.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --pack-faceset + diff --git a/scripts/4.2_data_src_util_faceset_unpack.sh b/scripts/4.2_data_src_util_faceset_unpack.sh new file mode 100755 index 0000000..5df2a1a --- /dev/null +++ b/scripts/4.2_data_src_util_faceset_unpack.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --unpack-faceset + diff --git a/scripts/4.2_data_src_util_recover_original_filename.sh b/scripts/4.2_data_src_util_recover_original_filename.sh new file mode 100755 index 0000000..ed3c5a4 --- /dev/null +++ b/scripts/4.2_data_src_util_recover_original_filename.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --recover-original-aligned-filename + diff --git a/scripts/4_data_src_extract_faces_MANUAL.sh b/scripts/4_data_src_extract_faces_MANUAL.sh new file mode 100755 index 0000000..c7ce369 --- /dev/null +++ b/scripts/4_data_src_extract_faces_MANUAL.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" extract \ + --input-dir "$DFL_WORKSPACE/data_src" \ + --output-dir "$DFL_WORKSPACE/data_src/aligned" \ + --detector manual + diff --git a/scripts/4_data_src_extract_faces_S3FD.sh b/scripts/4_data_src_extract_faces_S3FD.sh new file mode 100755 index 0000000..e54eb10 --- /dev/null +++ b/scripts/4_data_src_extract_faces_S3FD.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" extract \ + --input-dir "$DFL_WORKSPACE/data_src" \ + --output-dir "$DFL_WORKSPACE/data_src/aligned" \ + --detector s3fd + diff --git a/scripts/5.2_data_dst_sort.sh b/scripts/5.2_data_dst_sort.sh new file mode 100755 index 0000000..0db0bff --- /dev/null +++ b/scripts/5.2_data_dst_sort.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" sort \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" + diff --git a/scripts/5.2_data_dst_util_faceset_pack.sh b/scripts/5.2_data_dst_util_faceset_pack.sh new file mode 100755 index 0000000..2a5148f --- /dev/null +++ b/scripts/5.2_data_dst_util_faceset_pack.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --pack-faceset + diff --git a/scripts/5.2_data_dst_util_faceset_unpack.sh b/scripts/5.2_data_dst_util_faceset_unpack.sh new file mode 100755 index 0000000..d7b672c --- /dev/null +++ b/scripts/5.2_data_dst_util_faceset_unpack.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --unpack-faceset + diff --git a/scripts/5.2_data_dst_util_recover_original_filename.sh b/scripts/5.2_data_dst_util_recover_original_filename.sh new file mode 100755 index 0000000..fc70651 --- /dev/null +++ b/scripts/5.2_data_dst_util_recover_original_filename.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" util \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --recover-original-aligned-filename + diff --git a/scripts/5_XSeg_data_dst_mask_apply.sh b/scripts/5_XSeg_data_dst_mask_apply.sh new file mode 100644 index 0000000..955ab10 --- /dev/null +++ b/scripts/5_XSeg_data_dst_mask_apply.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg fetch \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --model-dir "$DFL_WORKSPACE/model" \ No newline at end of file diff --git a/scripts/5_XSeg_data_dst_mask_edit.sh b/scripts/5_XSeg_data_dst_mask_edit.sh new file mode 100644 index 0000000..3206bd7 --- /dev/null +++ b/scripts/5_XSeg_data_dst_mask_edit.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg editor \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_data_dst_mask_fetch.sh b/scripts/5_XSeg_data_dst_mask_fetch.sh new file mode 100644 index 0000000..1b90634 --- /dev/null +++ b/scripts/5_XSeg_data_dst_mask_fetch.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg fetch \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_data_dst_mask_remove.sh b/scripts/5_XSeg_data_dst_mask_remove.sh new file mode 100644 index 0000000..69bd681 --- /dev/null +++ b/scripts/5_XSeg_data_dst_mask_remove.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg remove_labels \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_data_dst_trained_mask_remove.sh b/scripts/5_XSeg_data_dst_trained_mask_remove.sh new file mode 100644 index 0000000..dcda553 --- /dev/null +++ b/scripts/5_XSeg_data_dst_trained_mask_remove.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg remove \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_data_src_mask_apply.sh b/scripts/5_XSeg_data_src_mask_apply.sh new file mode 100644 index 0000000..e007f54 --- /dev/null +++ b/scripts/5_XSeg_data_src_mask_apply.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg fetch \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ + --model-dir "$DFL_WORKSPACE/model" \ No newline at end of file diff --git a/scripts/5_XSeg_data_src_mask_fetch.sh b/scripts/5_XSeg_data_src_mask_fetch.sh new file mode 100644 index 0000000..957f329 --- /dev/null +++ b/scripts/5_XSeg_data_src_mask_fetch.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg fetch \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_data_src_mask_remove.sh b/scripts/5_XSeg_data_src_mask_remove.sh new file mode 100644 index 0000000..ed0fc1b --- /dev/null +++ b/scripts/5_XSeg_data_src_mask_remove.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg remove_labels \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_data_src_trained_mask_remove.sh b/scripts/5_XSeg_data_src_trained_mask_remove.sh new file mode 100644 index 0000000..5e7f63d --- /dev/null +++ b/scripts/5_XSeg_data_src_trained_mask_remove.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" xseg remove \ + --input-dir "$DFL_WORKSPACE/data_src/aligned" \ No newline at end of file diff --git a/scripts/5_XSeg_train.sh b/scripts/5_XSeg_train.sh new file mode 100644 index 0000000..dea04f4 --- /dev/null +++ b/scripts/5_XSeg_train.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" train \ + --training-data-src-dir "$DFL_WORKSPACE/data_src/aligned" \ + --training-data-dst-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model XSeg \ No newline at end of file diff --git a/scripts/5_data_dst_extract_faces_MANUAL.sh b/scripts/5_data_dst_extract_faces_MANUAL.sh new file mode 100755 index 0000000..79918fe --- /dev/null +++ b/scripts/5_data_dst_extract_faces_MANUAL.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" extract \ + --input-dir "$DFL_WORKSPACE/data_dst" \ + --output-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --detector manual \ + --max-faces-from-image 0 \ + --output-debug + diff --git a/scripts/5_data_dst_extract_faces_MANUAL_RE-EXTRACT_DELETED_ALIGNED_DEBUG.sh b/scripts/5_data_dst_extract_faces_MANUAL_RE-EXTRACT_DELETED_ALIGNED_DEBUG.sh new file mode 100755 index 0000000..a962924 --- /dev/null +++ b/scripts/5_data_dst_extract_faces_MANUAL_RE-EXTRACT_DELETED_ALIGNED_DEBUG.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" extract \ + --input-dir "$DFL_WORKSPACE/data_dst" \ + --output-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --detector manual \ + --max-faces-from-image 0 \ + --output-debug \ + --manual-output-debug-fix \ + + diff --git a/scripts/5_data_dst_extract_faces_S3FD.sh b/scripts/5_data_dst_extract_faces_S3FD.sh new file mode 100755 index 0000000..ef72309 --- /dev/null +++ b/scripts/5_data_dst_extract_faces_S3FD.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" extract \ + --input-dir "$DFL_WORKSPACE/data_dst" \ + --output-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --detector s3fd \ + --max-faces-from-image 0 \ + --output-debug + diff --git a/scripts/5_data_dst_extract_faces_S3FD_+_manual_fix.sh b/scripts/5_data_dst_extract_faces_S3FD_+_manual_fix.sh new file mode 100755 index 0000000..8860b16 --- /dev/null +++ b/scripts/5_data_dst_extract_faces_S3FD_+_manual_fix.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" extract \ + --input-dir "$DFL_WORKSPACE/data_dst" \ + --output-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --output-debug \ + --detector s3fd \ + --max-faces-from-image 0 \ + --manual-fix + diff --git a/scripts/6_train_Quick96.sh b/scripts/6_train_Quick96.sh new file mode 100755 index 0000000..c958f1b --- /dev/null +++ b/scripts/6_train_Quick96.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" train \ + --training-data-src-dir "$DFL_WORKSPACE/data_src/aligned" \ + --training-data-dst-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --pretraining-data-dir "$DFL_ROOT/pretrain_CelebA" \ + --pretrained-model-dir "$DFL_ROOT/pretrain_Quick96" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model Quick96 + diff --git a/scripts/6_train_Quick96_no_preview.sh b/scripts/6_train_Quick96_no_preview.sh new file mode 100755 index 0000000..0644c71 --- /dev/null +++ b/scripts/6_train_Quick96_no_preview.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" train \ + --training-data-src-dir "$DFL_WORKSPACE/data_src/aligned" \ + --training-data-dst-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --pretraining-data-dir "$DFL_SRC/pretrain_CelebA" \ + --pretrained-model-dir "$DFL_SRC/pretrain_Quick96" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model Quick96 \ + --no-preview + diff --git a/scripts/6_train_SAEHD.sh b/scripts/6_train_SAEHD.sh new file mode 100755 index 0000000..10ea707 --- /dev/null +++ b/scripts/6_train_SAEHD.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" train \ + --training-data-src-dir "$DFL_WORKSPACE/data_src/aligned" \ + --training-data-dst-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --pretraining-data-dir "$DFL_ROOT/pretrain_CelebA" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model SAEHD + diff --git a/scripts/6_train_SAEHD_no_preview.sh b/scripts/6_train_SAEHD_no_preview.sh new file mode 100755 index 0000000..d174616 --- /dev/null +++ b/scripts/6_train_SAEHD_no_preview.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" train \ + --training-data-src-dir "$DFL_WORKSPACE/data_src/aligned" \ + --training-data-dst-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --pretraining-data-dir "$DFL_SRC/pretrain_CelebA" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model SAEHD \ + --no-preview + diff --git a/scripts/7_merge_Quick96.sh b/scripts/7_merge_Quick96.sh new file mode 100755 index 0000000..1787e27 --- /dev/null +++ b/scripts/7_merge_Quick96.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" merge \ + --input-dir "$DFL_WORKSPACE/data_dst" \ + --output-dir "$DFL_WORKSPACE/data_dst/merged" \ + --output-mask-dir "$DFL_WORKSPACE/data_dst/merged_mask" \ + --aligned-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model Quick96 + diff --git a/scripts/7_merge_SAEHD.sh b/scripts/7_merge_SAEHD.sh new file mode 100755 index 0000000..4eb9d95 --- /dev/null +++ b/scripts/7_merge_SAEHD.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" merge \ + --input-dir "$DFL_WORKSPACE/data_dst" \ + --output-dir "$DFL_WORKSPACE/data_dst/merged" \ + --output-mask-dir "$DFL_WORKSPACE/data_dst/merged_mask" \ + --aligned-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --model-dir "$DFL_WORKSPACE/model" \ + --model SAEHD + diff --git a/scripts/8_merged_to_avi.sh b/scripts/8_merged_to_avi.sh new file mode 100755 index 0000000..9226243 --- /dev/null +++ b/scripts/8_merged_to_avi.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +source env.sh + + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged" \ + --output-file "$DFL_WORKSPACE/result.avi" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --include-audio + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged_mask" \ + --output-file "$DFL_WORKSPACE/result_mask.avi" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --lossless + diff --git a/scripts/8_merged_to_mov_lossless.sh b/scripts/8_merged_to_mov_lossless.sh new file mode 100755 index 0000000..2ed8721 --- /dev/null +++ b/scripts/8_merged_to_mov_lossless.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +source env.sh + + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged" \ + --output-file "$DFL_WORKSPACE/result.mov" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --include-audio \ + --lossless + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged_mask" \ + --output-file "$DFL_WORKSPACE/result_mask.mov" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --lossless + diff --git a/scripts/8_merged_to_mp4.sh b/scripts/8_merged_to_mp4.sh new file mode 100755 index 0000000..f20b927 --- /dev/null +++ b/scripts/8_merged_to_mp4.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged" \ + --output-file "$DFL_WORKSPACE/result.mp4" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --include-audio + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged_mask" \ + --output-file "$DFL_WORKSPACE/result_mask.mp4" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --lossless + diff --git a/scripts/8_merged_to_mp4_lossless.sh b/scripts/8_merged_to_mp4_lossless.sh new file mode 100755 index 0000000..a19928b --- /dev/null +++ b/scripts/8_merged_to_mp4_lossless.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +source env.sh + + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged" \ + --output-file "$DFL_WORKSPACE/result.mp4" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --include-audio \ + --lossless + +$DFL_PYTHON "$DFL_SRC/main.py" videoed video-from-sequence \ + --input-dir "$DFL_WORKSPACE/data_dst/merged_mask" \ + --output-file "$DFL_WORKSPACE/result_mask.mp4" \ + --reference-file "$DFL_WORKSPACE/data_dst.*" \ + --lossless + diff --git a/scripts/env.sh b/scripts/env.sh new file mode 100644 index 0000000..e7745e6 --- /dev/null +++ b/scripts/env.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +export DFL_PYTHON="python3.6" +export DFL_WORKSPACE="workspace/" + +if [ ! -d "$DFL_WORKSPACE" ]; then + mkdir "$DFL_WORKSPACE" + mkdir "$DFL_WORKSPACE/data_src" + mkdir "$DFL_WORKSPACE/data_src/aligned" + mkdir "$DFL_WORKSPACE/data_src/aligned_debug" + mkdir "$DFL_WORKSPACE/data_dst" + mkdir "$DFL_WORKSPACE/data_dst/aligned" + mkdir "$DFL_WORKSPACE/data_dst/aligned_debug" + mkdir "$DFL_WORKSPACE/model" +fi + +export DFL_ROOT="./" +export DFL_SRC="./DeepFaceLab" \ No newline at end of file