mirror of
https://github.com/vladmandic/automatic
synced 2026-08-27 07:31:01 +02:00
89e728c9d5
Signed-off-by: Vladimir Mandic <mandic00@live.com>
110 lines
3.0 KiB
PowerShell
Executable File
110 lines
3.0 KiB
PowerShell
Executable File
# --------------------------------------------------------------------------------------------------------------
|
|
# Do not make any changes to this file, change the variables in webui-user.ps1 instead and call this file
|
|
# --------------------------------------------------------------------------------------------------------------
|
|
|
|
function ShowStdOutStdErr {
|
|
Write-Output "exit code: $LASTEXITCODE"
|
|
|
|
if ((Get-Item tmp\stdout.txt).Length -ne 0) {
|
|
Write-Output "`nstdout:"
|
|
Get-Content tmp\stdout.txt
|
|
}
|
|
|
|
if ((Get-Item tmp\stderr.txt).Length -ne 0) {
|
|
Write-Error "`nstderr:"
|
|
Get-Content tmp\stderr.txt
|
|
}
|
|
|
|
Write-Output "`nLaunch Failed"
|
|
Pause
|
|
}
|
|
|
|
$PYTHON = if ($env:PYTHON) { $env:PYTHON } else { 'python' }
|
|
$VENV_DIR = if ($env:VENV_DIR) { $env:VENV_DIR } else { Join-Path $PSScriptRoot 'venv' }
|
|
|
|
$use_uv = $false
|
|
foreach ($arg in $args) {
|
|
if ($arg -eq '--uv') {
|
|
$use_uv = $true
|
|
break
|
|
}
|
|
}
|
|
|
|
New-Item -Path 'tmp' -ItemType Directory -ErrorAction SilentlyContinue
|
|
|
|
try {
|
|
& $PYTHON -c '' 2>tmp\stderr.txt | Out-File tmp\stdout.txt
|
|
} catch {
|
|
Write-Output 'Cannot launch python'
|
|
. ShowStdOutStdErr
|
|
|
|
exit
|
|
}
|
|
|
|
try {
|
|
& $PYTHON -m pip --help 2>tmp\stderr.txt | Out-File tmp\stdout.txt
|
|
} catch {
|
|
if (!$env:PIP_INSTALLER_LOCATION) {
|
|
. ShowStdOutStdErr
|
|
|
|
exit
|
|
}
|
|
|
|
& $PYTHON $env:PIP_INSTALLER_LOCATION 2>tmp\stderr.txt | Out-File tmp\stdout.txt
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Output 'Cannot install pip'
|
|
. ShowStdOutStdErr
|
|
exit
|
|
}
|
|
}
|
|
|
|
if ($VENV_DIR -ne '-' -and $env:SKIP_VENV -ne '1') {
|
|
if (Test-Path (Join-Path $VENV_DIR 'Scripts\Python.exe')) {
|
|
$PYTHON = Join-Path $VENV_DIR 'Scripts\Python.exe'
|
|
} else {
|
|
$PYTHON_FULLNAME = & $PYTHON -c 'import sys; print(sys.executable)'
|
|
|
|
Write-Output "Using python: $PYTHON_FULLNAME"
|
|
|
|
if ($use_uv) {
|
|
if (-not (Get-Command uv -ErrorAction SilentlyContinue)) {
|
|
Write-Output 'Warning: uv is not installed, falling back to python venv'
|
|
$use_uv = $false
|
|
}
|
|
}
|
|
|
|
if ($use_uv) {
|
|
Write-Output "Creating VENV: UV"
|
|
& uv venv $VENV_DIR 2>tmp\stderr.txt | Out-File tmp\stdout.txt
|
|
} else {
|
|
Write-Output "Creating VENV: VENV"
|
|
& $PYTHON_FULLNAME -m venv $VENV_DIR 2>tmp\stderr.txt | Out-File tmp\stdout.txt
|
|
}
|
|
|
|
if ($LASTEXITCODE -eq 0) {
|
|
$PYTHON = Join-Path $VENV_DIR 'Scripts\Python.exe'
|
|
} else {
|
|
Write-Output "Failed creating VENV: '$VENV_DIR'"
|
|
. ShowStdOutStdErr
|
|
|
|
exit
|
|
}
|
|
}
|
|
|
|
Write-Output "Using VENV: $VENV_DIR"
|
|
}
|
|
|
|
if ($env:ACCELERATE -eq 'True') {
|
|
$ACCELERATE = Join-Path $VENV_DIR 'Scripts\accelerate.exe'
|
|
|
|
if (Test-Path $ACCELERATE) {
|
|
Write-Output 'Using accelerate'
|
|
& $ACCELERATE launch --num_cpu_threads_per_process=6 launch.py $args
|
|
}
|
|
} else {
|
|
& $PYTHON launch.py $args
|
|
}
|
|
|
|
Pause
|