55 lines
1.8 KiB
PowerShell
55 lines
1.8 KiB
PowerShell
param(
|
|
[string]$SdScriptsRepo = "https://github.com/kohya-ss/sd-scripts.git",
|
|
[string]$BackendDir = "",
|
|
[string]$Python = "python",
|
|
[switch]$SkipTorch
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$PluginDir = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
|
if ([string]::IsNullOrWhiteSpace($BackendDir)) {
|
|
$BackendDir = Join-Path $PluginDir "backend\sd-scripts"
|
|
}
|
|
|
|
$BackendDir = [System.IO.Path]::GetFullPath($BackendDir)
|
|
$VenvDir = Join-Path $BackendDir ".venv"
|
|
$VenvPython = Join-Path $VenvDir "Scripts\python.exe"
|
|
|
|
Write-Host "AnimaForge Windows backend setup"
|
|
Write-Host "Backend: $BackendDir"
|
|
|
|
if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
|
|
throw "git was not found. Install Git for Windows first."
|
|
}
|
|
|
|
if (-not (Test-Path $BackendDir)) {
|
|
New-Item -ItemType Directory -Force -Path (Split-Path -Parent $BackendDir) | Out-Null
|
|
git clone $SdScriptsRepo $BackendDir
|
|
} else {
|
|
Write-Host "sd-scripts backend already exists. Pulling latest changes..."
|
|
git -C $BackendDir pull --ff-only
|
|
}
|
|
|
|
if (-not (Test-Path $VenvPython)) {
|
|
Write-Host "Creating backend virtual environment..."
|
|
& $Python -m venv $VenvDir
|
|
}
|
|
|
|
Write-Host "Upgrading pip..."
|
|
& $VenvPython -m pip install --upgrade pip setuptools wheel
|
|
|
|
if (-not $SkipTorch) {
|
|
Write-Host "Installing PyTorch CUDA 12.1 wheels. Edit this script if your CUDA/PyTorch requirement is different."
|
|
& $VenvPython -m pip install --index-url https://download.pytorch.org/whl/cu121 torch torchvision
|
|
}
|
|
|
|
Write-Host "Installing sd-scripts requirements..."
|
|
& $VenvPython -m pip install -r (Join-Path $BackendDir "requirements.txt")
|
|
& $VenvPython -m pip install -e $BackendDir
|
|
|
|
Write-Host ""
|
|
Write-Host "Backend setup complete."
|
|
Write-Host "Training Python: $VenvPython"
|
|
Write-Host "Set ANIMAFORGE_BACKEND_DIR only if you move the backend somewhere else."
|