- FaceSwap Tutorial 목적의 Repository입니다.
- Colab 환경에서는 곧잘 실행됩니다.
- FaceSwap 자체가 실제 윈도우/리눅스 환경에서 실행할 때는 다양한 문제가 발생할 수 있으며, 로그(log)가 친절하게 나오지 않습니다.
- Faceswap 라이브러리에서 요구하는 requirements.txt 내용을 모두 설치해야 합니다.
- 필요한 라이브러리를 다 설치하지 않은 경우에는 별도의 로그(log)도 출력되지 않고, FaceSwap이 정지하는 경우도 있습니다.
- 클러스터 노드에서 다음과 같은 오류가 발생하는 경우
File "/home/dongbinna/DeepFakes_Research/faceswap/lib/cli.py", line 128, in execute_script process.process() File "/home/dongbinna/DeepFakes_Research/faceswap/scripts/train.py", line 157, in process err = self._monitor(thread) File "/home/dongbinna/DeepFakes_Research/faceswap/scripts/train.py", line 343, in _monitor keypress = KBHit(is_gui=self._args.redirect_gui) File "/home/dongbinna/DeepFakes_Research/faceswap/lib/keypress.py", line 42, in __init__ self.new_term = termios.tcgetattr(self.file_desc) termios.error: (25, 'Inappropriate ioctl for device')
- 일반적으로 GUI 자체가 없는 컴퓨터에서 발생할 수 있는 오류입니다.
- scripts/train.py 파일에서 다음의 부분 앞에 '#'을 붙여서 주석 처리
keypress = KBHit(is_gui=self._args.redirect_gui)
- 이후에 바로 아래쪽의 'Console Monitor' 부분 전체 주석 처리
- 어차피 학습이 되는 과정에서 자동으로 저장을 해주므로, 프로세스를 강제로 종료해도 상관 없음
- FaceSwap 설치(Installation)
git clone https://github.com/deepfakes/faceswap.git cd faceswap pip install -r requirements.txt --user
- 학습용 이미지 옮긴 뒤에 특정 폴더에 압축 풀기
unzip source_images.zip -d source_images_test_1 unzip target_images.zip -d target_images_test_1 rm source_images.zip rm target_images.zip
- 학습 진행하기
python3 faceswap.py train -A "source_images_test_1" -B "target_images_test_1" -m "./test_1" -t "villain" -bs 16 -s 330 -w -nl
-
학습을 처음 진행하는 경우 설정파일이 .faceswap에 저장됩니다.
-
Slurm Batch 예제 (test_1.sh)
#!/bin/sh #SBATCH -J faceswap_test_1 #SBATCH -o faceswap_test_1.%j.out #SBATCH -p gpu-titanxp #SBATCH -t 264:00:00 #SBATCH --gres=gpu:1 #SBATCH --ntasks=1 #SBATCH --tasks-per-node=1 #SBATCH --cpus-per-task=1 cd $SLURM_SUBMIT_DIR echo "SLURM_SUBMIT_DIR=$SLURM_SUBMIT_DIR" echo "CUDA_HOME=$CUDA_HOME" echo "CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES" echo "CUDA_VERSION=$CUDA_VERSION" srun -l /bin/hostname srun -l /bin/pwd srun -l /bin/date python3 faceswap.py train -A "source_images_test_1" -B "target_images_test_1" -m "./test_1" -t "villain" -bs 16 -s 330 -w -nl date squeue --job $SLURM_JOBID echo "##### END #####"
- 이후에 sbatch test_1.sh로 실행
- FaceSwap 설치(Installation)
git clone https://github.com/deepfakes/faceswap.git faceswap_test_1 cd faceswap_test_1 pip install -r requirements.txt --user
- 학습용 이미지 옮긴 뒤에 특정 폴더에 압축 풀기
unzip source_images.zip -d source_images unzip target_images.zip -d target_images rm source_images.zip rm target_images.zip
- 학습 진행하기
python3 faceswap.py train -A "source_images" -B "target_images" -m "./trained_models" -t "villain" -bs 16 -s 330 -w -nl
-
학습을 처음 진행하는 경우 설정파일이 .faceswap에 저장됩니다.
-
Slurm Batch 예제 (test_1.sh)
#!/bin/sh #SBATCH -J faceswap_test_1 #SBATCH -o faceswap_test_1.%j.out #SBATCH -p gpu-titanxp #SBATCH -t 264:00:00 #SBATCH --gres=gpu:1 #SBATCH --ntasks=1 #SBATCH --tasks-per-node=1 #SBATCH --cpus-per-task=1 cd $SLURM_SUBMIT_DIR echo "SLURM_SUBMIT_DIR=$SLURM_SUBMIT_DIR" echo "CUDA_HOME=$CUDA_HOME" echo "CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES" echo "CUDA_VERSION=$CUDA_VERSION" srun -l /bin/hostname srun -l /bin/pwd srun -l /bin/date python3 faceswap.py train -A "source_images" -B "target_images" -m "./trained_models" -t "villain" -bs 16 -s 330 -w -nl date squeue --job $SLURM_JOBID echo "##### END #####"
- 이후에 sbatch test_1.sh로 실행