@echo off del "%temp%\dmx_install.ps1" 2>nul :: Generate the PowerShell script dynamically to avoid encoding issues echo $TargetDir = "$env:USERPROFILE\AppData\Local\Comfy-Desktop\ComfyUI-Installs\ComfyUI\ComfyUI\custom_nodes" > "%temp%\dmx_install.ps1" echo $RepoUrl = "https://github.com/mch000534/ComfyUI-DMXAPI/archive/refs/heads/main.zip" >> "%temp%\dmx_install.ps1" echo $NodeName = "ComfyUI-DMXAPI" >> "%temp%\dmx_install.ps1" echo $ExtractedFolderName = "ComfyUI-DMXAPI-main" >> "%temp%\dmx_install.ps1" echo $TempZipPath = "$env:TEMP\ComfyUI-DMXAPI-main.zip" >> "%temp%\dmx_install.ps1" echo $ComfyPython = "$env:USERPROFILE\AppData\Local\Comfy-Desktop\python\python.exe" >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo Write-Host "==========================================" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host " Auto-Install ComfyUI-DMXAPI (No Git)" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host " Target: $TargetDir" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host "==========================================" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host "" >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo if (-not (Test-Path $TargetDir)) { New-Item -ItemType Directory -Path $TargetDir -Force ^| Out-Null } >> "%temp%\dmx_install.ps1" echo Set-Location $TargetDir >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo if (Test-Path $NodeName) { >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Folder '$NodeName' already exists." -ForegroundColor Yellow >> "%temp%\dmx_install.ps1" echo $choice = Read-Host "Choose action: 1. Re-download ^& Replace (Update) 2. Cancel (Enter 1/2)" >> "%temp%\dmx_install.ps1" echo if ($choice -eq '1') { >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Removing old folder for clean re-install..." -ForegroundColor Yellow >> "%temp%\dmx_install.ps1" echo Remove-Item -Recurse -Force $NodeName >> "%temp%\dmx_install.ps1" echo } else { >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Installation cancelled." >> "%temp%\dmx_install.ps1" echo exit >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Downloading repository (ZIP)..." -ForegroundColor Green >> "%temp%\dmx_install.ps1" echo try { >> "%temp%\dmx_install.ps1" echo Invoke-WebRequest -Uri $RepoUrl -OutFile $TempZipPath -UseBasicParsing >> "%temp%\dmx_install.ps1" echo } catch { >> "%temp%\dmx_install.ps1" echo Write-Host "[ERROR] Download failed! $_" -ForegroundColor Red >> "%temp%\dmx_install.ps1" echo exit 1 >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Extracting repository..." -ForegroundColor Green >> "%temp%\dmx_install.ps1" echo try { >> "%temp%\dmx_install.ps1" echo Expand-Archive -Path $TempZipPath -DestinationPath $TargetDir -Force >> "%temp%\dmx_install.ps1" echo } catch { >> "%temp%\dmx_install.ps1" echo Write-Host "[ERROR] Extraction failed! $_" -ForegroundColor Red >> "%temp%\dmx_install.ps1" echo exit 1 >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Cleaning up temporary files..." -ForegroundColor Green >> "%temp%\dmx_install.ps1" echo Remove-Item -Force $TempZipPath -ErrorAction SilentlyContinue >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo if (Test-Path "$TargetDir\$ExtractedFolderName") { >> "%temp%\dmx_install.ps1" echo Rename-Item -Path "$TargetDir\$ExtractedFolderName" -NewName $NodeName >> "%temp%\dmx_install.ps1" echo } else { >> "%temp%\dmx_install.ps1" echo Write-Host "[ERROR] Extracted folder not found!" -ForegroundColor Red >> "%temp%\dmx_install.ps1" echo exit 1 >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo Set-Location "$TargetDir\$NodeName" >> "%temp%\dmx_install.ps1" echo if (Test-Path "requirements.txt") { >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] Installing Python dependencies..." -ForegroundColor Green >> "%temp%\dmx_install.ps1" echo if (Test-Path $ComfyPython) { >> "%temp%\dmx_install.ps1" echo ^& $ComfyPython -m pip install -r requirements.txt >> "%temp%\dmx_install.ps1" echo } else { >> "%temp%\dmx_install.ps1" echo Write-Host "[WARNING] ComfyUI Python not found at expected path, falling back to system pip." -ForegroundColor Yellow >> "%temp%\dmx_install.ps1" echo ^& python -m pip install -r requirements.txt >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo } else { >> "%temp%\dmx_install.ps1" echo Write-Host "[INFO] No requirements.txt found, skipping dependencies." -ForegroundColor Yellow >> "%temp%\dmx_install.ps1" echo } >> "%temp%\dmx_install.ps1" echo. >> "%temp%\dmx_install.ps1" echo Write-Host "==========================================" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host " Installation Complete!" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host " Please restart ComfyUI." -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo Write-Host "==========================================" -ForegroundColor Cyan >> "%temp%\dmx_install.ps1" echo pause >> "%temp%\dmx_install.ps1" :: Execute the generated PowerShell script powershell -NoProfile -ExecutionPolicy Bypass -File "%temp%\dmx_install.ps1"