diff --git a/scripts/1_clear_workspace.sh b/scripts/1_clear_workspace.sh new file mode 100755 index 0000000..f1c5627 --- /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" diff --git a/scripts/2_extract_PNG_from_video_data_src.sh b/scripts/2_extract_PNG_from_video_data_src.sh new file mode 100755 index 0000000..8764cfd --- /dev/null +++ b/scripts/2_extract_PNG_from_video_data_src.sh @@ -0,0 +1,7 @@ +#!/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_extract_PNG_from_video_data_dst.sh b/scripts/3_extract_PNG_from_video_data_dst.sh new file mode 100755 index 0000000..d9e489e --- /dev/null +++ b/scripts/3_extract_PNG_from_video_data_dst.sh @@ -0,0 +1,7 @@ +#!/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" + 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.3_data_dst_mask_editor.sh b/scripts/5.3_data_dst_mask_editor.sh new file mode 100755 index 0000000..b5182d6 --- /dev/null +++ b/scripts/5.3_data_dst_mask_editor.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +source env.sh + +$DFL_PYTHON "$DFL_SRC/main.py" labelingtool edit_mask \ + --input-dir "$DFL_WORKSPACE/data_dst/aligned" \ + --confirmed-dir "$DFL_WORKSPACE/data_dst/aligned_confirmed" \ + --skipped-dir "$DFL_WORKSPACE/data_dst/aligned_skipped" + 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..a83d687 --- /dev/null +++ b/scripts/5_data_dst_extract_faces_MANUAL.sh @@ -0,0 +1,9 @@ +#!/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 \ + --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..8071a8c --- /dev/null +++ b/scripts/5_data_dst_extract_faces_MANUAL_RE-EXTRACT_DELETED_ALIGNED_DEBUG.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" \ + --detector manual \ + --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..ed4bed8 --- /dev/null +++ b/scripts/5_data_dst_extract_faces_S3FD.sh @@ -0,0 +1,9 @@ +#!/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 \ + --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..1092789 --- /dev/null +++ b/scripts/5_data_dst_extract_faces_S3FD_+_manual_fix.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" \ + --output-debug \ + --detector s3fd \ + --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 100755 index 0000000..b2dfb05 --- /dev/null +++ b/scripts/env.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +conda activate deepfacelab +export DFL_PYTHON="python3.7" +export DFL_WORKSPACE="$DEEPFACELAB_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="$DEEPFACELAB_PATH" +export DFL_SRC="$DEEPFACELAB_PATH"