Spaces:
Build error
Build error
| !include MUI2.nsh | |
| !include nsDialogs.nsh | |
| !include LogicLib.nsh | |
| RequestExecutionLevel user | |
| ManifestDPIAware true | |
| Name 'FaceFusion 3.0.0' | |
| OutFile 'FaceFusion_3.0.0.exe' | |
| !define MUI_ICON 'facefusion.ico' | |
| !insertmacro MUI_PAGE_DIRECTORY | |
| Page custom InstallPage PostInstallPage | |
| !insertmacro MUI_PAGE_INSTFILES | |
| !insertmacro MUI_LANGUAGE English | |
| Var UseDefault | |
| Var UseCuda | |
| Var UseDirectMl | |
| Var UseOpenVino | |
| Function .onInit | |
| StrCpy $INSTDIR 'C:\FaceFusion' | |
| FunctionEnd | |
| Function InstallPage | |
| nsDialogs::Create 1018 | |
| !insertmacro MUI_HEADER_TEXT 'Choose Your Accelerator' 'Choose your accelerator based on the graphics card.' | |
| ${NSD_CreateRadioButton} 0 40u 100% 10u 'Default' | |
| Pop $UseDefault | |
| ${NSD_CreateRadioButton} 0 55u 100% 10u 'CUDA (NVIDIA)' | |
| Pop $UseCuda | |
| ${NSD_CreateRadioButton} 0 70u 100% 10u 'DirectML (AMD, Intel, NVIDIA)' | |
| Pop $UseDirectMl | |
| ${NSD_CreateRadioButton} 0 85u 100% 10u 'OpenVINO (Intel)' | |
| Pop $UseOpenVino | |
| ${NSD_Check} $UseDefault | |
| nsDialogs::Show | |
| FunctionEnd | |
| Function PostInstallPage | |
| ${NSD_GetState} $UseDefault $UseDefault | |
| ${NSD_GetState} $UseCuda $UseCuda | |
| ${NSD_GetState} $UseDirectMl $UseDirectMl | |
| ${NSD_GetState} $UseOpenVino $UseOpenVino | |
| FunctionEnd | |
| Function Destroy | |
| ${If} ${Silent} | |
| Quit | |
| ${Else} | |
| Abort | |
| ${EndIf} | |
| FunctionEnd | |
| Section 'Prepare Your Platform' | |
| DetailPrint 'Install GIT' | |
| inetc::get 'https://github.com/git-for-windows/git/releases/download/v2.46.0.windows.1/Git-2.46.0-64-bit.exe' '$TEMP\Git.exe' | |
| ExecWait '$TEMP\Git.exe /CURRENTUSER /VERYSILENT /DIR=$LOCALAPPDATA\Programs\Git' $0 | |
| Delete '$TEMP\Git.exe' | |
| ${If} $0 > 0 | |
| DetailPrint 'Git installation aborted with error code $0' | |
| Call Destroy | |
| ${EndIf} | |
| DetailPrint 'Uninstall Conda' | |
| ExecWait '$LOCALAPPDATA\Programs\Miniconda3\Uninstall-Miniconda3.exe /S _?=$LOCALAPPDATA\Programs\Miniconda3' | |
| RMDir /r '$LOCALAPPDATA\Programs\Miniconda3' | |
| DetailPrint 'Install Conda' | |
| inetc::get 'https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Windows-x86_64.exe' '$TEMP\Miniconda3.exe' | |
| ExecWait '$TEMP\Miniconda3.exe /InstallationType=JustMe /AddToPath=1 /S /D=$LOCALAPPDATA\Programs\Miniconda3' $1 | |
| Delete '$TEMP\Miniconda3.exe' | |
| ${If} $1 > 0 | |
| DetailPrint 'Conda installation aborted with error code $1' | |
| Call Destroy | |
| ${EndIf} | |
| SectionEnd | |
| Section 'Download Your Copy' | |
| SetOutPath $INSTDIR | |
| DetailPrint 'Download Your Copy' | |
| RMDir /r $INSTDIR | |
| nsExec::Exec '$LOCALAPPDATA\Programs\Git\cmd\git.exe config http.sslVerify false' | |
| nsExec::Exec '$LOCALAPPDATA\Programs\Git\cmd\git.exe clone https://github.com/facefusion/facefusion --branch 3.0.0 .' | |
| SectionEnd | |
| Section 'Prepare Your Environment' | |
| DetailPrint 'Prepare Your Environment' | |
| nsExec::Exec '$LOCALAPPDATA\Programs\Miniconda3\Scripts\conda.exe init --all' | |
| nsExec::Exec '$LOCALAPPDATA\Programs\Miniconda3\Scripts\conda.exe create --name facefusion python=3.10 --yes' | |
| SectionEnd | |
| Section 'Create Install Batch' | |
| SetOutPath $INSTDIR | |
| FileOpen $0 install-ffmpeg.bat w | |
| FileOpen $1 install-accelerator.bat w | |
| FileOpen $2 install-application.bat w | |
| FileWrite $0 '@echo off && conda activate facefusion && conda install conda-forge::ffmpeg=7.0.2 --yes' | |
| ${If} $UseCuda == 1 | |
| FileWrite $1 '@echo off && conda activate facefusion && conda install conda-forge::cuda-runtime=12.4.1 cudnn=8.9.2.26 conda-forge::gputil=1.4.0 conda-forge::zlib-wapi --yes' | |
| FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime cuda-12.4' | |
| ${ElseIf} $UseDirectMl == 1 | |
| FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime directml' | |
| ${ElseIf} $UseOpenVino == 1 | |
| FileWrite $1 '@echo off && conda activate facefusion && conda install conda-forge::openvino=2024.2.0 --yes' | |
| FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime openvino' | |
| ${Else} | |
| FileWrite $2 '@echo off && conda activate facefusion && python install.py --onnxruntime default' | |
| ${EndIf} | |
| FileClose $0 | |
| FileClose $1 | |
| FileClose $2 | |
| SectionEnd | |
| Section 'Install Your FFmpeg' | |
| SetOutPath $INSTDIR | |
| DetailPrint 'Install Your FFmpeg' | |
| nsExec::ExecToLog 'install-ffmpeg.bat' | |
| SectionEnd | |
| Section 'Install Your Accelerator' | |
| SetOutPath $INSTDIR | |
| DetailPrint 'Install Your Accelerator' | |
| nsExec::ExecToLog 'install-accelerator.bat' | |
| SectionEnd | |
| Section 'Install The Application' | |
| SetOutPath $INSTDIR | |
| DetailPrint 'Install The Application' | |
| nsExec::ExecToLog 'install-application.bat' | |
| SectionEnd | |
| Section 'Create Run Batch' | |
| SetOutPath $INSTDIR | |
| FileOpen $0 facefusion.bat w | |
| FileWrite $0 '@echo off && conda activate facefusion && python facefusion.py %*' | |
| FileClose $0 | |
| SectionEnd | |
| Section 'Register The Application' | |
| DetailPrint 'Register The Application' | |
| CreateDirectory $SMPROGRAMS\FaceFusion | |
| CreateShortcut '$SMPROGRAMS\FaceFusion\FaceFusion.lnk' $INSTDIR\run.bat '--open-browser' $INSTDIR\.install\facefusion.ico | |
| CreateShortcut '$SMPROGRAMS\FaceFusion\FaceFusion Benchmark.lnk' $INSTDIR\run.bat '--ui-layouts benchmark --open-browser' $INSTDIR\.install\facefusion.ico | |
| CreateShortcut '$SMPROGRAMS\FaceFusion\FaceFusion Webcam.lnk' $INSTDIR\run.bat '--ui-layouts webcam --open-browser' $INSTDIR\.install\facefusion.ico | |
| CreateShortcut $DESKTOP\FaceFusion.lnk $INSTDIR\run.bat '--open-browser' $INSTDIR\.install\facefusion.ico | |
| WriteUninstaller $INSTDIR\Uninstall.exe | |
| WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion DisplayName 'FaceFusion' | |
| WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion DisplayVersion '3.0.0' | |
| WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion Publisher 'Henry Ruhs' | |
| WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion InstallLocation $INSTDIR | |
| WriteRegStr HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion UninstallString $INSTDIR\uninstall.exe | |
| SectionEnd | |
| Section 'Uninstall' | |
| nsExec::Exec '$LOCALAPPDATA\Programs\Miniconda3\Scripts\conda.exe env remove --name facefusion --yes' | |
| Delete $DESKTOP\FaceFusion.lnk | |
| RMDir /r $SMPROGRAMS\FaceFusion | |
| RMDir /r $INSTDIR | |
| DeleteRegKey HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FaceFusion | |
| SectionEnd | |