31 lines
2.4 KiB
PowerShell
31 lines
2.4 KiB
PowerShell
param([string]$Root = $(if ($env:UPSCALE_ROOT) { $env:UPSCALE_ROOT } else { Join-Path (Split-Path $PSScriptRoot) '../AIGen-Upscale' }))
|
|
$ErrorActionPreference = 'Stop'
|
|
$ProgressPreference = 'SilentlyContinue'
|
|
$Root = [IO.Path]::GetFullPath($Root)
|
|
New-Item -ItemType Directory -Force -Path $Root | Out-Null
|
|
function Install-Package($Name, $Url, $Executable) {
|
|
$Destination = Join-Path $Root $Name
|
|
$Ready = Test-Path (Join-Path $Destination $Executable)
|
|
if ($Name -eq 'esrgan') { $Ready = $Ready -and (Test-Path (Join-Path $Destination 'models/realesrgan-x4plus.bin')) -and (Test-Path (Join-Path $Destination 'models/realesrgan-x4plus.param')) }
|
|
if ($Name -eq 'rife') { $Ready = $Ready -and (Test-Path (Join-Path $Destination 'rife-v4*/flownet.bin')) -and (Test-Path (Join-Path $Destination 'rife-v4*/flownet.param')) }
|
|
if ($Name -eq 'ffmpeg') { $Ready = $Ready -and (Test-Path (Join-Path $Destination 'ffprobe.exe')) }
|
|
if ($Ready) { return }
|
|
$Zip = Join-Path $Root "$Name.zip"
|
|
Write-Output "Downloading $Name tools and weights..."
|
|
Invoke-WebRequest -UseBasicParsing -Uri $Url -OutFile $Zip -TimeoutSec 1800
|
|
$Unpack = Join-Path $Root "$Name-unpack"
|
|
New-Item -ItemType Directory -Force -Path $Unpack | Out-Null
|
|
Expand-Archive -LiteralPath $Zip -DestinationPath $Unpack -Force
|
|
$Exe = Get-ChildItem -LiteralPath $Unpack -Recurse -Filter $Executable | Select-Object -First 1
|
|
if (!$Exe) { throw "Package is missing $Executable" }
|
|
New-Item -ItemType Directory -Force -Path $Destination | Out-Null
|
|
Copy-Item -Path (Join-Path $Exe.DirectoryName '*') -Destination $Destination -Recurse -Force
|
|
}
|
|
Install-Package 'esrgan' 'https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesrgan-ncnn-vulkan-20220424-windows.zip' 'realesrgan-ncnn-vulkan.exe'
|
|
Install-Package 'rife' 'https://github.com/nihui/rife-ncnn-vulkan/releases/download/20221029/rife-ncnn-vulkan-20221029-windows.zip' 'rife-ncnn-vulkan.exe'
|
|
Install-Package 'ffmpeg' 'https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip' 'ffmpeg.exe'
|
|
if (!(Test-Path (Join-Path $Root 'ffmpeg/ffprobe.exe'))) { throw 'FFprobe is missing.' }
|
|
if (!(Test-Path (Join-Path $Root 'esrgan/models/realesrgan-x4plus.bin'))) { throw 'Real-ESRGAN weights are missing.' }
|
|
if (!(Get-ChildItem -LiteralPath (Join-Path $Root 'rife') -Directory -Filter 'rife-v4*')) { throw 'RIFE v4 weights are missing.' }
|
|
Write-Output "Local upscale tools and models ready: $Root"
|