Convert + Alignments - Common Problems MegaThread

Got questions or tips about the Conversion process? This is the place to discuss them.


Forum rules

Read the FAQs and search the forum before posting a new topic.

This forum is for discussing tips and understanding the process involved with Converting faces from your trained model.

If you are having issues with the Convert process not working as you would expect, then you should post in the Convert Support forum.

Please mark any answers that fixed your problems so others can find the solutions.

User avatar
230V
Posts: 20
Joined: Sun Jan 19, 2020 6:20 pm
Answers: 1
Has thanked: 7 times
Been thanked: 2 times

Re: Preview tool works fine, converting fails..

Post by 230V »

does it mean there is no need to point to the alignment file of the source video at the convert tab?
i will test it when im home :)

User avatar
torzdf
Posts: 2651
Joined: Fri Jul 12, 2019 12:53 am
Answers: 159
Has thanked: 129 times
Been thanked: 622 times

Re: Preview tool works fine, converting fails..

Post by torzdf »

If the alignments file is in the default location, then there is no need to specify it, the process will automatically find it.

However, the output flag should be where you want the final output to be located, not the alignments file (as you have specified),

My word is final

User avatar
230V
Posts: 20
Joined: Sun Jan 19, 2020 6:20 pm
Answers: 1
Has thanked: 7 times
Been thanked: 2 times

Re: Preview tool works fine, converting fails..

Post by 230V »

have sloved the problem..

the alignment file of the source video was the version where i have exracted every 10th frame. so it clear why it was always skipping. so have extracted the source video with setting every frame. using the new aligment file do the magic.

thanks for the support!

User avatar
RaynnXD
Posts: 4
Joined: Mon Feb 10, 2020 5:46 pm
Has thanked: 2 times

Re: How to convert after training

Post by RaynnXD »

hello :3 im new with this faceswap thing and yeah i read this section and how to do it but i still dnt know what to apply in the conversion page

!! Convert !!
for example :: " Input Dir" -> should i select the folder with the extracted faces "A" of me or the ones i want to fake Input folder "B"?
->should i select the folder with the trained faces?
Image
i watched a video on youtube with a guy saying i have to select a input folder with a video
but here it says : Input directory or video, Either a directory containing the image files you wish to process or path to a video file ,NB: This should be the source video/frames not the source frames" <--- so whats that???? i have to select the original video frames i extracted that are in Input folder B or the actual video? or its something else i dnt know?
!!Efffmpeg
i followed the tutorials extracting/training (actually im training something right now) but i wish to know how to do to save my work into an actual video format i can watch outside the application(faceswap)
Image
!!!!!!!please aswer when u can!!!

User avatar
torzdf
Posts: 2651
Joined: Fri Jul 12, 2019 12:53 am
Answers: 159
Has thanked: 129 times
Been thanked: 622 times

Re: How to convert after training

Post by torzdf »

RaynnXD wrote: Mon Feb 10, 2020 6:17 pm

for example :: " Input Dir" -> should i select the folder with the extracted faces "A" of me or the ones i want to fake Input folder "B"?
->should i select the folder with the trained faces?

This is the video/folder of frames that you want to put the face onto. (For example if you have Trump making a speech and you want to swap Trump's face with Nicholas Cage, this would be the path to the Trump speech video).

You should make sure you have generated an alignments file for this video (see the extract guide).

RaynnXD wrote: Mon Feb 10, 2020 6:17 pm

i watched a video on youtube with a guy saying i have to select a input folder with a video

Have you got a link to this video? I can tell what is right/wrong if I view it.

RaynnXD wrote: Mon Feb 10, 2020 6:17 pm

but here it says : Input directory or video, Either a directory containing the image files you wish to process or path to a video file ,NB: This should be the source video/frames not the source frames" <--- so whats that????

You've misread this, it says: NB: This should be the source video/frames not the source faces.

RaynnXD wrote: Mon Feb 10, 2020 6:17 pm

i followed the tutorials extracting/training (actually im training something right now) but i wish to know how to do to save my work into an actual video format i can watch outside the application(faceswap)

Don't use Effmpeg. We still have it from when Faceswap couldn't output video, but we keep the tool around as it is still useful to have.

Instead, select the "ffmpeg" writer plugin in the convert settings to convert straight to video.

My word is final

User avatar
RaynnXD
Posts: 4
Joined: Mon Feb 10, 2020 5:46 pm
Has thanked: 2 times

Re: How to convert after training

Post by RaynnXD »

Don't use Effmpeg. We still have it from when Faceswap couldn't output video, but we keep the tool around as it is still useful to have.

Instead, select the "ffmpeg" writer plugin in the convert settings to convert straight to video.

yeah imissread that thing but everything expect this part with converting i did right

so yeah thanks for helping ,now i know how to convert into a video

but seems like i need the original video aligmen file which i somehow manage to get ,maybe luck :D
and i converted my first faceswap try :3(not the best just 4-5hrs on a 3m video) but looks ok somehow
hm im thinking of testing some masks,maybe it will improve the edges of the swapped face :3

User avatar
siliconunit
Posts: 8
Joined: Sun Feb 16, 2020 11:26 am
Has thanked: 1 time

conversion fails, missing alignments

Post by siliconunit »

Hello,

I am trying to run a conversion, but I'm a bit stuck, I think what confuses me in general is the alignments management,
I have got 5 input A videos, 4 input B videos, I extracted in different ways (don't remember the settings for each), FS creates different alignment files, but in input folder A I have got only one alignment file, while in input B I got 4 different alignment files.
When I run the convert section it asks me to pick the alignment file for input A, but as I only have 1 alignment file (don't know why)and it's not the correct one and it complains every frame of missing alignment data (also when I extract I do like every 30 frames, so there will be still missing data as it seems to want every frame?).

The preview tools works though, I can see a correct swap. But the output of the convert displays mostly the original video with occasional swaps.

I think what confuses me is that there is no 'build' option in the alignment tool to just regenerate the file? Also should I regen it with the exact same settings I've used to train the model? Or it doesn't matter?

Thanks!

SU

User avatar
deephomage
Posts: 33
Joined: Fri Jul 12, 2019 6:09 pm
Answers: 1
Has thanked: 2 times
Been thanked: 8 times

Re: conversion fails, missing alignments

Post by deephomage »

You need an alignments file for the faces in the destination clip you want to use for the swap. If you're confused as to which alignments file corresponds to the destination clip you want to use, then the easiest solution is to re-extract the faces the from destination clip you want to use and save the alignments file in a location that you can easily remember.

Then to convert, specify the location of the alignments file, the clip or the extracted images, the output folder, the model directory, the trainer and the aligned faces folder.

User avatar
acg90
Posts: 2
Joined: Tue Feb 25, 2020 8:24 am

Conversion Issues

Post by acg90 »

I have tried every step at least three times, I have read the forum over and over. I am just having so many issues. Hopefully someone here can help me. I keep getting an error. Sorry for the long post. But I guess I am going to need someone to explain the conversion part to me step by step like I am stupid. Thank you in advance for your help.

Code: Select all

02/25/2020 00:15:11 MainProcess     MainThread      logger          log_setup                 INFO     Log level set to: INFO
02/25/2020 00:15:11 MainProcess     MainThread      cli             execute_script            DEBUG    Executing: convert. PID: 16972
02/25/2020 00:15:11 MainProcess     MainThread      cli             setup_amd                 DEBUG    Setting up for AMD
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   setup_plaidml             INFO     Setting up for PlaidML
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   setup_plaidml             VERBOSE  Setting Keras Backend to PlaidML
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   __init__                  DEBUG    Initializing: PlaidMLStats: (loglevel: INFO, log: True)
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   initialize                DEBUG    Initializing PlaidML
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_plaidml_logger        DEBUG    Setting PlaidML Default Logger
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_plaidml_logger        DEBUG    Set PlaidML Default Logger
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_verbosity             DEBUG    Setting PlaidML Loglevel: INFO
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   initialize                DEBUG    Initialized PlaidML
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   get_supported_devices     DEBUG    []
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   get_all_devices           DEBUG    Experimental Devices: [<plaidml._DeviceConfig object at 0x000001E4111B2EC8>]
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   get_all_devices           DEBUG    [<plaidml._DeviceConfig object at 0x000001E4111B2EC8>]
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   __init__                  DEBUG    Initialized: PlaidMLStats
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   load_active_devices       DEBUG    Setting largest PlaidML device
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_largest_gpu           DEBUG    Obtaining largest experimental device
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   experimental_indices      DEBUG    [0]
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_largest_gpu           DEBUG    Max VRAM: 4140.21875
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_largest_gpu           DEBUG    GPU IDX: 0
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   set_largest_gpu           INFO     Setting GPU to largest available experimental device. If you want to override this selection, run `plaidml-setup` from the command line.
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   setup_plaidml             INFO     Using GPU: ['opencl_amd_gfx902.0']
02/25/2020 00:15:12 MainProcess     MainThread      plaidml_tools   setup_plaidml             INFO     Successfully set up for PlaidML
02/25/2020 00:15:12 MainProcess     MainThread      cli             setup_amd                 DEBUG    setup up for PlaidML
02/25/2020 00:15:15 MainProcess     MainThread      cli             test_for_tf_version       DEBUG    Installed Tensorflow Version: 1.15
02/25/2020 00:15:16 MainProcess     MainThread      queue_manager   __init__                  DEBUG    Initializing QueueManager
02/25/2020 00:15:16 MainProcess     MainThread      queue_manager   __init__                  DEBUG    Initialized QueueManager
02/25/2020 00:15:16 MainProcess     MainThread      convert         __init__                  DEBUG    Initializing Convert: (args: Namespace(alignments_path='C:\\Users\\kaken\\Videos\\Captures\\original_state.json', allow_growth=False, colab=False, color_adjustment='avg-color', configfile=None, filter=None, frame_ranges=None, func=<bound method ScriptExecutor.execute_script of <lib.cli.ScriptExecutor object at 0x000001E4103EFEC8>>, gpus=1, input_aligned_dir=None, input_dir='C:\\Users\\kaken\\Videos\\Captures\\mom.mp4', jobs=4, keep_unchanged=False, logfile=None, loglevel='INFO', mask_type='predicted', model_dir='C:\\Users\\kaken\\Videos\\Captures\\original_logs\\b', nfilter=None, on_the_fly=False, output_dir='C:\\Users\\kaken\\Desktop\\momout', output_scale=100, redirect_gui=True, ref_threshold=0.4, reference_video=None, scaling='none', singleprocess=False, swap_model=True, trainer='original', writer='opencv'))
02/25/2020 00:15:16 MainProcess     MainThread      fsmedia         __init__                  DEBUG    Initializing Images
02/25/2020 00:15:16 MainProcess     MainThread      fsmedia         _check_input_folder       INFO     Input Video: C:\Users\kaken\Videos\Captures\mom.mp4
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    filename: C:\Users\kaken\Videos\Captures\mom.mp4, fast: True
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    FFMPEG Command: 'C:\Users\kaken\MiniConda3\envs\faceswap\Library\bin\ffmpeg.exe -i C:\Users\kaken\Videos\Captures\mom.mp4 -map 0:v:0 -c copy -f null -'
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    Duration line: Duration: 00:02:01.77, start: 0.000000, bitrate: 2162 kb/s
02/25/2020 00:15:16 MainProcess     MainThread      utils           convert_to_secs           DEBUG    from time: ('00', '02', '01.77')
02/25/2020 00:15:16 MainProcess     MainThread      utils           convert_to_secs           DEBUG    to secs: 121.77
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    duration: 121
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    frame line: frame= 2918 fps=0.0 q=-1.0 Lsize=N/A time=00:02:01.62 bitrate=N/A speed=7.78e+03x
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    Initializing tqdm
02/25/2020 00:15:16 MainProcess     MainThread      utils           convert_to_secs           DEBUG    from time: ('00', '02', '01.62')
02/25/2020 00:15:16 MainProcess     MainThread      utils           convert_to_secs           DEBUG    to secs: 121.62
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    frames: 2918, vid_time: 121
02/25/2020 00:15:16 MainProcess     MainThread      image           count_frames              DEBUG    Return code: 0, frames: 2918
02/25/2020 00:15:16 MainProcess     MainThread      fsmedia         __init__                  DEBUG    Initialized Images
02/25/2020 00:15:16 MainProcess     MainThread      fsmedia         __init__                  DEBUG    Initializing Alignments: (is_extract: False, input_is_video: True)
02/25/2020 00:15:16 MainProcess     MainThread      fsmedia         _set_folder_filename      DEBUG    Alignments File provided: 'C:\Users\kaken\Videos\Captures\original_state.json'
02/25/2020 00:15:16 MainProcess     MainThread      fsmedia         _set_folder_filename      DEBUG    Setting Alignments: (folder: 'C:\Users\kaken\Videos\Captures' filename: 'original_state.json')
02/25/2020 00:15:16 MainProcess     MainThread      alignments      __init__                  DEBUG    Initializing Alignments: (folder: 'C:\Users\kaken\Videos\Captures', filename: 'original_state.json')
02/25/2020 00:15:16 MainProcess     MainThread      serializer      get_serializer            DEBUG    <lib.serializer._PickleSerializer object at 0x000001E4233AA1C8>
02/25/2020 00:15:16 MainProcess     MainThread      serializer      get_serializer            DEBUG    <lib.serializer._CompressedSerializer object at 0x000001E4252E3FC8>
02/25/2020 00:15:16 MainProcess     MainThread      alignments      get_location              DEBUG    Getting location: (folder: 'C:\Users\kaken\Videos\Captures', filename: 'original_state.json')
02/25/2020 00:15:16 MainProcess     MainThread      alignments      update_file_format        INFO     Reformatting legacy alignments file...
02/25/2020 00:15:16 MainProcess     MainThread      alignments      update_file_format        INFO     Using existing updated alignments file found at 'C:\Users\kaken\Videos\Captures\original_state.fsa'. If you do not wish to use this existing file then you should delete or rename it.
02/25/2020 00:15:16 MainProcess     MainThread      alignments      get_location              DEBUG    Updated legacy alignments. New filename: 'original_state.fsa'
02/25/2020 00:15:16 MainProcess     MainThread      alignments      get_location              DEBUG    File extension set from serializer: 'fsa'
02/25/2020 00:15:16 MainProcess     MainThread      alignments      get_location              VERBOSE  Alignments filepath: 'C:\Users\kaken\Videos\Captures\original_state.fsa'
02/25/2020 00:15:16 MainProcess     MainThread      alignments      load                      DEBUG    Loading alignments
02/25/2020 00:15:16 MainProcess     MainThread      alignments      load                      INFO     Reading alignments from: 'C:\Users\kaken\Videos\Captures\original_state.fsa'
02/25/2020 00:15:16 MainProcess     MainThread      serializer      load                      DEBUG    filename: C:\Users\kaken\Videos\Captures\original_state.fsa
02/25/2020 00:15:16 MainProcess     MainThread      serializer      load                      DEBUG    stored data type: <class 'bytes'>
02/25/2020 00:15:16 MainProcess     MainThread      serializer      unmarshal                 DEBUG    data type: <class 'bytes'>
02/25/2020 00:15:16 MainProcess     MainThread      serializer      unmarshal                 DEBUG    returned data type: <class 'dict'>
02/25/2020 00:15:16 MainProcess     MainThread      serializer      load                      DEBUG    data type: <class 'dict'>
02/25/2020 00:15:16 MainProcess     MainThread      alignments      load                      DEBUG    Loaded alignments
02/25/2020 00:15:16 MainProcess     MainThread      alignments      has_legacy_landmarksxy    DEBUG    checking legacy landmarksXY
02/25/2020 00:15:16 MainProcess     MainThread      plaidml_tools   initialize                DEBUG    PlaidML already initialized
02/25/2020 00:15:16 MainProcess     MainThread      plaidml_tools   get_supported_devices     DEBUG    []
02/25/2020 00:15:16 MainProcess     MainThread      plaidml_tools   get_all_devices           DEBUG    Experimental Devices: [<plaidml._DeviceConfig object at 0x000001E42532E708>]
02/25/2020 00:15:16 MainProcess     MainThread      plaidml_tools   get_all_devices           DEBUG    [<plaidml._DeviceConfig object at 0x000001E42532E708>]
02/25/2020 00:15:16 MainProcess     MainThread      plaidml_tools   __init__                  DEBUG    Initialized: PlaidMLStats
02/25/2020 00:15:16 MainProcess     MainThread      plaidml_tools   supported_indices         DEBUG    []
Traceback (most recent call last):
  File "C:\Users\kaken\faceswap\lib\cli.py", line 127, in execute_script
    process = script(arguments)
  File "C:\Users\kaken\faceswap\scripts\convert.py", line 56, in __init__
    self._alignments = Alignments(self._args, False, self._images.is_video)
  File "C:\Users\kaken\faceswap\scripts\fsmedia.py", line 71, in __init__
    super().__init__(folder, filename=filename)
  File "C:\Users\kaken\faceswap\lib\alignments.py", line 33, in __init__
    self.update_legacy()
  File "C:\Users\kaken\faceswap\lib\alignments.py", line 291, in update_legacy
    if self.has_legacy_landmarksxy():
  File "C:\Users\kaken\faceswap\lib\alignments.py", line 340, in has_legacy_landmarksxy
    for alignments in self.data.values()
  File "C:\Users\kaken\faceswap\lib\alignments.py", line 341, in <genexpr>
    for alignment in alignments
TypeError: 'int' object is not iterable

============ System Information ============
encoding:            cp1252
git_branch:          master
git_commits:         1245ff6 Merge branch 'staging'
gpu_cuda:            9.0
gpu_cudnn:           No global version found. Check Conda packages for Conda cuDNN
gpu_devices:         GPU_0: Advanced Micro Devices, Inc. - gfx902 (experimental)
gpu_devices_active:  GPU_0
gpu_driver:          ['2686.5 (PAL,HSAIL)']
gpu_vram:            GPU_0: 4140MB
os_machine:          AMD64
os_platform:         Windows-10-10.0.18362-SP0
os_release:          10
py_command:          C:\Users\kaken\faceswap\faceswap.py convert -i C:/Users/kaken/Videos/Captures/mom.mp4 -o C:/Users/kaken/Desktop/momout -al C:/Users/kaken/Videos/Captures/original_state.json -m C:/Users/kaken/Videos/Captures/original_logs/b -c avg-color -M predicted -sc none -w opencv -osc 100 -l 0.4 -j 4 -t original -s -L INFO -gui
py_conda_version:    conda 4.8.2
py_implementation:   CPython
py_version:          3.7.6
py_virtual_env:      True
sys_cores:           8
sys_processor:       AMD64 Family 23 Model 24 Stepping 1, AuthenticAMD
sys_ram:             Total: 6091MB, Available: 2258MB, Used: 3832MB, Free: 2258MB

=============== Pip Packages ===============
absl-py==0.9.0
asn1crypto==1.3.0
astor==0.8.0
blinker==1.4
cachetools==3.1.1
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
Click==7.0
cloudpickle==1.3.0
cryptography==2.8
cycler==0.10.0
cytoolz==0.10.1
dask==2.10.1
decorator==4.4.1
enum34==1.1.6
fastcluster==1.1.26
ffmpy==0.2.2
gast==0.2.2
google-auth==1.11.2
google-auth-oauthlib==0.4.1
google-pasta==0.1.8
grpcio==1.27.2
h5py==2.9.0
idna==2.8
imageio==2.6.1
imageio-ffmpeg==0.4.0
joblib==0.14.1
Keras==2.2.4
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
kiwisolver==1.1.0
Markdown==3.1.1
matplotlib==3.1.3
mkl-fft==1.0.15
mkl-random==1.1.0
mkl-service==2.3.0
networkx==2.4
numpy==1.17.4
nvidia-ml-py3==7.352.1
oauthlib==3.1.0
olefile==0.46
opencv-python==4.1.2.30
opt-einsum==3.1.0
pathlib==1.0.1
Pillow==6.2.1
plaidml==0.6.4
plaidml-keras==0.6.4
protobuf==3.11.4
psutil==5.6.7
pyasn1==0.4.8
pyasn1-modules==0.2.7
pycparser==2.19
PyJWT==1.7.1
pyOpenSSL==19.1.0
pyparsing==2.4.6
pyreadline==2.1
PySocks==1.7.1
python-dateutil==2.8.1
pytz==2019.3
PyWavelets==1.1.1
pywin32==227
PyYAML==5.3
requests==2.22.0
requests-oauthlib==1.3.0
rsa==4.0
scikit-image==0.16.2
scikit-learn==0.22.1
scipy==1.4.1
six==1.14.0
tensorboard==2.1.0
tensorflow==1.15.0
tensorflow-estimator==1.15.1
termcolor==1.1.0
toolz==0.10.0
toposort==1.5
tornado==6.0.3
tqdm==4.42.1
urllib3==1.25.8
Werkzeug==0.16.1
win-inet-pton==1.1.0
wincertstore==0.2
wrapt==1.11.2

============== Conda Packages ==============
# packages in environment at C:\Users\kaken\MiniConda3\envs\faceswap:
#
# Name                    Version                   Build  Channel
_tflow_select             2.2.0                     eigen  
absl-py 0.9.0 py37_0
asn1crypto 1.3.0 py37_0
astor 0.8.0 py37_0
blas 1.0 mkl
blinker 1.4 py37_0
ca-certificates 2020.1.1 0
cachetools 3.1.1 py_0
certifi 2019.11.28 py37_0
cffi 1.14.0 py37h7a1dbc1_0
chardet 3.0.4 py37_1003
click 7.0 py37_0
cloudpickle 1.3.0 py_0
cryptography 2.8 py37h7a1dbc1_0
cycler 0.10.0 py37_0
cytoolz 0.10.1 py37he774522_0
dask-core 2.10.1 py_0
decorator 4.4.1 py_0
enum34 1.1.6 pypi_0 pypi fastcluster 1.1.26 py37he350917_0 conda-forge ffmpeg 4.2 h6538335_0 conda-forge ffmpy 0.2.2 pypi_0 pypi freetype 2.9.1 ha9979f8_1
gast 0.2.2 py37_0
git 2.23.0 h6bb4b03_0
google-auth 1.11.2 py_0
google-auth-oauthlib 0.4.1 py_2
google-pasta 0.1.8 py_0
grpcio 1.27.2 py37h351948d_0
h5py 2.9.0 py37h5e291fa_0
hdf5 1.10.4 h7ebc959_0
icc_rt 2019.0.0 h0cc432a_1
icu 58.2 ha66f8fd_1
idna 2.8 py37_0
imageio 2.6.1 py37_0
imageio-ffmpeg 0.4.0 py_0 conda-forge intel-openmp 2020.0 166
joblib 0.14.1 py_0
jpeg 9b hb83a4c4_2
keras 2.2.4 0
keras-applications 1.0.8 py_0
keras-base 2.2.4 py37_0
keras-preprocessing 1.1.0 py_1
kiwisolver 1.1.0 py37ha925a31_0
libpng 1.6.37 h2a8f88b_0
libprotobuf 3.11.4 h7bd577a_0
libtiff 4.1.0 h56a325e_0
markdown 3.1.1 py37_0
matplotlib 3.1.1 py37hc8f65d3_0
matplotlib-base 3.1.3 py37h64f37c6_0
mkl 2020.0 166
mkl-service 2.3.0 py37hb782905_0
mkl_fft 1.0.15 py37h14836fe_0
mkl_random 1.1.0 py37h675688f_0
networkx 2.4 py_0
numpy 1.17.4 py37h4320e6b_0
numpy-base 1.17.4 py37hc3f5095_0
nvidia-ml-py3 7.352.1 pypi_0 pypi oauthlib 3.1.0 py_0
olefile 0.46 py37_0
opencv-python 4.1.2.30 pypi_0 pypi openssl 1.1.1d he774522_4
opt_einsum 3.1.0 py_0
pathlib 1.0.1 py37_1
pillow 6.2.1 py37hdc69c19_0
pip 20.0.2 py37_1
plaidml 0.6.4 pypi_0 pypi plaidml-keras 0.6.4 pypi_0 pypi protobuf 3.11.4 py37h33f27b4_0
psutil 5.6.7 py37he774522_0
pyasn1 0.4.8 py_0
pyasn1-modules 0.2.7 py_0
pycparser 2.19 py37_0
pyjwt 1.7.1 py37_0
pyopenssl 19.1.0 py37_0
pyparsing 2.4.6 py_0
pyqt 5.9.2 py37h6538335_2
pyreadline 2.1 py37_1
pysocks 1.7.1 py37_0
python 3.7.6 h60c2a47_2
python-dateutil 2.8.1 py_0
pytz 2019.3 py_0
pywavelets 1.1.1 py37he774522_0
pywin32 227 py37he774522_1
pyyaml 5.3 py37he774522_0
qt 5.9.7 vc14h73c81de_0
requests 2.22.0 py37_1
requests-oauthlib 1.3.0 py_0
rsa 4.0 py_0
scikit-image 0.16.2 py37h47e9c7a_0
scikit-learn 0.22.1 py37h6288b17_0
scipy 1.4.1 py37h9439919_0
setuptools 45.2.0 py37_0
sip 4.19.8 py37h6538335_0
six 1.14.0 py37_0
sqlite 3.31.1 he774522_0
tensorboard 2.1.0 py3_0
tensorflow 1.15.0 eigen_py37h9f89a44_0
tensorflow-base 1.15.0 eigen_py37h07d2309_0
tensorflow-estimator 1.15.1 pyh2649769_0
termcolor 1.1.0 py37_1
tk 8.6.8 hfa6e2cd_0
toolz 0.10.0 py_0
toposort 1.5 py_3 conda-forge tornado 6.0.3 py37he774522_3
tqdm 4.42.1 py_0
urllib3 1.25.8 py37_0
vc 14.1 h0510ff6_4
vs2015_runtime 14.16.27012 hf0eaf9b_1
werkzeug 0.16.1 py_0
wheel 0.34.2 py37_0
win_inet_pton 1.1.0 py37_0
wincertstore 0.2 py37_0
wrapt 1.11.2 py37he774522_0
xz 5.2.4 h2fa13f4_4
yaml 0.1.7 hc54c509_2
zlib 1.2.11 h62dcd97_3
zstd 1.3.7 h508b16e_0 ================= Configs ================== --------- .faceswap --------- backend: amd --------- convert.ini --------- [color.color_transfer] clip: True preserve_paper: True [color.manual_balance] colorspace: HSV balance_1: 0.0 balance_2: 0.0 balance_3: 0.0 contrast: 0.0 brightness: 0.0 [color.match_hist] threshold: 99.0 [mask.box_blend] type: gaussian distance: 11.0 radius: 5.0 passes: 1 [mask.mask_blend] type: normalized kernel_size: 3 passes: 4 threshold: 4 erosion: 0.0 [scaling.sharpen] method: unsharp_mask amount: 150 radius: 0.3 threshold: 5.0 [writer.ffmpeg] container: mp4 codec: libx264 crf: 23 preset: medium tune: none profile: auto level: auto [writer.gif] fps: 25 loop: 0 palettesize: 256 subrectangles: False [writer.opencv] format: png draw_transparent: False jpg_quality: 75 png_compress_level: 3 [writer.pillow] format: png draw_transparent: False optimize: False gif_interlace: True jpg_quality: 75 png_compress_level: 3 tif_compression: tiff_deflate --------- extract.ini --------- [global] allow_growth: False [align.fan] batch-size: 12 [detect.cv2_dnn] confidence: 50 [detect.mtcnn] minsize: 20 threshold_1: 0.6 threshold_2: 0.7 threshold_3: 0.7 scalefactor: 0.709 batch-size: 8 [detect.s3fd] confidence: 70 batch-size: 4 [mask.unet_dfl] batch-size: 8 [mask.vgg_clear] batch-size: 6 [mask.vgg_obstructed] batch-size: 2 --------- gui.ini --------- [global] fullscreen: False tab: extract options_panel_width: 30 console_panel_height: 20 icon_size: 14 font: default font_size: 9 autosave_last_session: always timeout: 120 auto_load_model_stats: True --------- train.ini --------- [global] coverage: 68.75 mask_type: extended mask_blur_kernel: 3 mask_threshold: 4 learn_mask: False icnr_init: False conv_aware_init: False subpixel_upscaling: False reflect_padding: False penalized_mask_loss: True loss_function: mae learning_rate: 5e-05 [model.dfl_h128] lowmem: False [model.dfl_sae] input_size: 128 clipnorm: True architecture: df autoencoder_dims: 0 encoder_dims: 42 decoder_dims: 21 multiscale_decoder: False [model.dlight] features: best details: good output_size: 256 [model.original] lowmem: False [model.realface] input_size: 64 output_size: 128 dense_nodes: 1536 complexity_encoder: 128 complexity_decoder: 512 [model.unbalanced] input_size: 128 lowmem: False clipnorm: True nodes: 1024 complexity_encoder: 128 complexity_decoder_a: 384 complexity_decoder_b: 512 [model.villain] lowmem: False [trainer.original] preview_images: 14 zoom_amount: 5 rotation_range: 10 shift_range: 5 flip_chance: 50 color_lightness: 30 color_ab: 8 color_clahe_chance: 50 color_clahe_max_size: 4
User avatar
torzdf
Posts: 2651
Joined: Fri Jul 12, 2019 12:53 am
Answers: 159
Has thanked: 129 times
Been thanked: 622 times

Re: Conversion Issues

Post by torzdf »

You have passed in your model's state file as the alignments file.

It should be the alignments file for the video you want to convert.

My word is final

User avatar
acg90
Posts: 2
Joined: Tue Feb 25, 2020 8:24 am

Re: Conversion Issues

Post by acg90 »

torzdf wrote: Tue Feb 25, 2020 9:06 am

You have passed in your model's state file as the alignments file.

It should be the alignments file for the video you want to convert.

That is still confusing for me...OK

so what files should I put in for

input
Alignments
Ref
Model Dir

For input I have put the face images, the original video, the dataset images...nothing

Alignments I have put a file named OriginalState.fsa and .json I have even tried the logs with the A and B folders.

Model Dir I put the folder with the extracted (dataset) images, and I also tried the logs with the A and B.

User avatar
torzdf
Posts: 2651
Joined: Fri Jul 12, 2019 12:53 am
Answers: 159
Has thanked: 129 times
Been thanked: 622 times

Re: Conversion Issues

Post by torzdf »

  • Input: The source video that you want to swap the faces in
    You must have created an alignments file for this source video. See the extract guide (viewtopic.php?f=5&t=27)

  • Alignments: The alignments file that you have created for your source video. This tells Faceswap where the faces are in the frame. If you left the alignments file in the default location (i.e. with your source video) then you can leave this blank

  • Model Dir: The folder that contains the model you trained with. You set this during training. It will contain a load of .h5 files.

  • Ref: If your source is a video rather than a series of images, then leave this blank,

My word is final

User avatar
dreamsafterdeath
Posts: 1
Joined: Sun Mar 01, 2020 4:17 pm

Conversion problem

Post by dreamsafterdeath »

Hi all,

I cannot seem to convert my video.

What happens:

When I hit Convert, the convert.py starts running and it says it is counting frames. It counts around 2500. (It is strange because the video has around 80k frames). Then the swapping starts and the preview shows kind of the original pictures without swaps. Being more precise only around every 5th picture is swapped.

How I've got here.

I had an A video and a B video. I extracted faces from both. Then I copied a given amount of faces from both to different directories and I trained a model. The results are still not perfect but I wanted to see how it looks in a video.

After the failure, I immediately thought that my alignment does not contain everything. I've re-read everything in the guides and thought the problem is with my alignment files. So I regenerated the VIDEO A alignment file by exporting out everything again. The resulted alignment file is much bigger than the previous one, so I have given it another run. But unfortunately, the results are the same. I even deleted the old alignment files. I tried it both setting the path of the alignment file and not setting it.

I also tried to copy the new alignment file to another directory and I used the alignment tool to remove faces from it which are not in my training A face directory. The resulted alignment file is much smaller now than the original big for all the faces. Then I tried to continue the training. It worked. Then I tried to repeat the conversion with the "updated" model in hope of something has changed - but I get the same result.

Where should be the problem and how could I fix it?

Many Thanks!

User avatar
deephomage
Posts: 33
Joined: Fri Jul 12, 2019 6:09 pm
Answers: 1
Has thanked: 2 times
Been thanked: 8 times

Re: Conversion problem

Post by deephomage »

I would suggest that you use a 1 to 2-minute destination clip, not attempt to convert 80,000 frames.

If only the fifth frame of the destination clip is converted, it sounds like something went awry during the extraction process. You need to extract every face in the destination clip and remove the unwanted faces. If you manually align any of the extracted faces, you need to re-extract all the faces using the Extract option under the Alignments tab, so that the manually-aligned faces are included in the updated alignments.fsa.

User avatar
sethcoast
Posts: 4
Joined: Mon Oct 14, 2019 5:37 pm
Has thanked: 2 times

Re: Conversion problem

Post by sethcoast »

I'm having the same issue with "counting frames" being much less than my actual number of frames. Did you ever figure this problem out?

User avatar
torzdf
Posts: 2651
Joined: Fri Jul 12, 2019 12:53 am
Answers: 159
Has thanked: 129 times
Been thanked: 622 times

Re: Conversion problem

Post by torzdf »

Videos files come in many shapes and sizes. Some software encodes videos better than others. Some completely ignore the "rules".

For most players/editing software this doesn't matter. For Faceswap it is crucial as we need 100% frame accuracy.

If you are having this kind of issue, you should either re-encode the video, or look to extract the individual frames from the video and process from those.

My word is final

User avatar
Brabrah
Posts: 2
Joined: Thu Mar 12, 2020 3:15 pm
Has thanked: 2 times

Full Face not being replaced

Post by Brabrah »

So I'm struggling a little bit in conversion. My A face set is a person with a beard and the B face set is a person without. I'm training with 80% coverage right now. I'm pausing and running convert throughout the model to check progress, and it looks like the face isn't being fully replaced, leaving the beard below the chin of the B face after conversion, giving B a sort of Amish look. Do I need to increase coverage to 100%? is there a way to scale up B face to make it cover the beard better?

User avatar
bryanlyon
Site Admin
Posts: 793
Joined: Fri Jul 12, 2019 12:49 am
Answers: 44
Location: San Francisco
Has thanked: 4 times
Been thanked: 218 times
Contact:

Re: Full Face not being replaced

Post by bryanlyon »

See viewtopic.php?f=6&t=74 especially the section titled "Avoid beards that go outside the face area".

User avatar
Brabrah
Posts: 2
Joined: Thu Mar 12, 2020 3:15 pm
Has thanked: 2 times

Re: Full Face not being replaced

Post by Brabrah »

Thanks! I tried that link and it says I'm not authorized to read that forum. How do I get in?

User avatar
bryanlyon
Site Admin
Posts: 793
Joined: Fri Jul 12, 2019 12:49 am
Answers: 44
Location: San Francisco
Has thanked: 4 times
Been thanked: 218 times
Contact:

Re: Full Face not being replaced

Post by bryanlyon »

Link was broken, I've fixed it, try again.

Locked