deepfakes / faceswap

Deepfakes Software For All

Home Page:https://www.faceswap.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Question] How isolated is the installer

CrHasher opened this issue · comments

Because I do some research regarding Image Quality Assessments and similar, I have CUDA Toolkit 12.2 installed. I read that its recommended to remove any CUDA installed before installing faceswap (probably for compatibility reasons).

My question is what is exactly installed when running the installer other than the scripts themselves? Is CUDA installed or the recommendation to uninstall CUDA is only because my version might be used instead of the expected version compatible with faceswap?

Most importantly how isolated is the faceswap install? Can I be sure that if I uninstall it nothing is left behind?

Sorry for hitting you with so many questions but I usually care a lot about what I install on my PC.

To the initial question 'How isolated is the installer?' the answer is 'very'

My general approach is that no application should take more permissions than they require. For that reason, if you run the installer in either Linux or macOS, then you will notice that at no point are you asked for the root password, yet everything works successfully.

This isn't so true of Windows, because Windows is Windows. Whilst the Windows installer also does not install anything system wide, an Admin confirmation window will still pop when running the installer (I was going to attempt to remove this, but I will soon be pushing WSL2 builds for Windows which do require admin access to manage WSL2... there is no way around that).

The installers, regardless of OS do the same thing:

  • Install MiniConda3 (locally in userdata folder)
  • Setup a MiniConda3 environment (because of above, this can only be local)
  • Install all requirements (including Cuda) into the local environment.

Whilst faceswap itself keeps everything contained in the faceswap folder and MiniConda3 keeps everything contained in the MiniConda3 folder, the libs we rely on will have their own caching mechanism (matplotlib, keras, tensorflow etc. etc.). We can have no control over this. However, they will be stored somewhere in the user folder, as the application simply does not have privileges above user level.

As an aside, you should look into using Conda to manage you Cuda installs. It makes using multiple Cuda versions very simple (just create a new virtual environment for different Cuda versions) and, again, you do not need to elevate Cuda's permissions beyond what it requires.

The reason we recommend removing global Cuda is that it can conflict. Whilst I set as many mechanisms as I can not to break out of the environment we create, it can happen because, after all Admin > User in terms privileges. So it is possible that global Cuda can override the locally installed Cuda

Thank you very much this explains everything I wanted to know. This also means I will keep faceswap installed for as long as I use it no reverting back to a clean state (aka. backup) as I did before.

Have a nice day!