Extraction workflow, script data_src util add landmarks debug images and manual_output_debug_fix
Expected behavior
I expect that I could generate debug images in a way that it will be useful for manual_output_debug_fix. It is not clear to me why normal extraction creates debug folder while creating debug images is not using same approach.
Actual behavior
4) data_src faceset extract.bat creates debug directory on the same level as aligned directory 4.2) data_src util add landmarks debug images.bat creates images in aligned folder with a debug prefix, which seems to be not usable with manual_output_debug_fix
Steps to reproduce
run 4.2) data_src util add landmarks debug images.bat use modified 5) data_dst faceset MANUAL RE-EXTRACT DELETED ALIGNED_DEBUG.bat for src data
Other relevant information
Windows DeepFaceLab_NVIDIA_RTX3000_series_build_09_06_2021
Additional note
Regarding extraction in general, readme says faceswap stayed in the past. Well there are a few things which were nice: I recall some GUI tool, probably related to faceswap, which was used for easy extracted alignments management. It is similar to manual extraction editor, though it had nice options to jump to next missing alignment or find alignments with multiple faces and so on (without sorting)
I am not an expert, but I think it would be convenient to have single folder with frames which I could simply reuse to generate alignments whenever necessary (only for the new frames):
- extract alignment from frames, only for the ones missing in alignments
- delete weird, wrongly extracted alignments
- extract manually missing alignments (as clearly they failed for the first time hence alignment removal)
if the result is fine:
- do faces processing, remove aligned which are not useful
- remove frames or somehow mark them as not useful to avoid extracting again useless data
Looks like now:
- I need to generate debug folder, while I think it is probably possible to do it on flight in GUI (probably faceswap did this), if I clearly see that alignment is wrong right away I dont need to fiddle with debug, but for current use I would have to delete debug anyway
- if I didnt create debugs and I would like to create them, the existing script will create files in aligned directory which are not used for manual extraction fix
- I cannot automatically generate alignments for missing files. Continue seems to continue from n-th index (-128 actually, not sure why, -1 would work also it seems), instead of looking for missing files. Right now when new frames are added to source, it is messy. For small data sets, it simply wants to create alignments again.
I am not sure whether it is a part of design, but coulndt we change this in Extractor.py:
input_image_paths = input_image_paths[ [ Path(x).stem for x in input_image_paths ].index ( Path(output_images_paths[-128]).stem.split('_')[0] ) : ]
to input_image_paths = input_image_paths[ [ Path(x).stem for x in input_image_paths ].index ( Path(output_images_paths[-1]).stem.split('_')[0] ) : ]
or actually use: DeletedFilesSearcherSubprocessor to only re-extract missing faces automatically in case you added some source files
I think that would simplify growing data sets and having multiple source files
Then user could do, possibly under option:
- add new files to frames, and generate only the new alignments automatically, regardless of frames count
- remove alignments which seem to be wrong, and do manual fix only for the missing alignments (not even debug, as preview of alignments could be created on flight in editor)
Update for the last part: seems like MVE addresses some of the issues mentioned above, so if MVE + DFL is expected to be the future then this topic might be less important
You are describing the intended design, not a bug. Your personal preference for how it should work is not the same as unexpected behavior.
If you're unhappy with the design, you are free to make a contribution to the code, or to donate hundreds, if not thousands, of hours of your own time writing, debugging, and publishing an open source program which behaves exactly as you wish it would.
"do better or stfu" is not really any response dude. chill
Did you ever find the answer? If so, would you mind sharing it and closing this issue?