From 549a5ef5688f0896b153f71b617ef9c5b3df64d1 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 01:44:23 +0000 Subject: [PATCH 01/40] Add Launch & Update Bat --- Launch_WanGP.bat | 4 ++++ Update.bat | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 Launch_WanGP.bat create mode 100644 Update.bat diff --git a/Launch_WanGP.bat b/Launch_WanGP.bat new file mode 100644 index 000000000..7d29648c2 --- /dev/null +++ b/Launch_WanGP.bat @@ -0,0 +1,4 @@ +cd Wan2GP +..\python_embedded\python.exe -s wgp.py --open-browser +pause + diff --git a/Update.bat b/Update.bat new file mode 100644 index 000000000..fd2d49d81 --- /dev/null +++ b/Update.bat @@ -0,0 +1,4 @@ +cd Wan2GP +git pull +..\python_embedded\python.exe -m pip install -r requirements.txt +pause From 3fb8ed83302c5d67cb583852f678e9fc33463274 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 07:16:20 +0530 Subject: [PATCH 02/40] Create build-wangp-portable.yml --- workflows/build-wangp-portable.yml | 118 +++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 workflows/build-wangp-portable.yml diff --git a/workflows/build-wangp-portable.yml b/workflows/build-wangp-portable.yml new file mode 100644 index 000000000..d463bc8e7 --- /dev/null +++ b/workflows/build-wangp-portable.yml @@ -0,0 +1,118 @@ +name: Build WanGP Portable + +on: + workflow_dispatch: + +jobs: + build-portable: + runs-on: windows-latest + env: + PYTHON_VERSION: 3.10.9 + TORCH_INDEX: https://download.pytorch.org/whl/test/cu128 + + steps: + # Checkout repo + - uses: actions/checkout@v4 + with: + ref: portable-release + + - name: Clone another repo + run: git clone https://github.com/deepbeepmeep/Wan2GP.git + + # 🔹 Extract version from wgp.py (Windows compatible) + - name: Read version from wgp.py + id: get_version + shell: pwsh + run: | + $content = Get-Content wgp.py -Raw + if ($content -match 'WanGP_version\s*=\s*"([^"]+)"') { + $version = $matches[1] + Write-Host "Found version: $version" + echo "version=$version" >> $env:GITHUB_OUTPUT + } else { + Write-Host "⚠️ WanGP_version not found in wgp.py" + echo "version=unknown" >> $env:GITHUB_OUTPUT + } + + # Download Python Embedded + - name: Download Python Embedded + run: | + curl -L -o python-embed.zip https://www.python.org/ftp/python/${{ env.PYTHON_VERSION }}/python-${{ env.PYTHON_VERSION }}-embed-amd64.zip + mkdir python_embedded + tar -xf python-embed.zip -C python_embedded + + # Uncomment import site and add site-packages path + (Get-Content python_embedded\python310._pth) -replace '# import site','import site' | Set-Content python_embedded\python310._pth + Add-Content python_embedded\python310._pth "Lib\site-packages" + + # Create folders for packages + mkdir python_embedded\Lib\site-packages + + # Install pip directly into Lib\site-packages + - name: Install pip + run: | + curl -L -o get-pip.py https://bootstrap.pypa.io/get-pip.py + python_embedded\python.exe get-pip.py + python_embedded\python.exe -m pip --version + + # Install core dependencies (Torch, SageAttention) + - name: Install Torch and SageAttention + run: | + python_embedded\python.exe -m pip install --upgrade pip + python_embedded\python.exe -m pip install torch==2.8.0 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} + python_embedded\python.exe -m pip install triton-windows + python_embedded\python.exe -m pip install https://github.com/woct0rdho/SageAttention/releases/download/v2.2.0-windows.post2/sageattention-2.2.0+cu128torch2.8.0.post2-cp39-abi3-win_amd64.whl + + # Install FilterPy + - name: Install FilterPy + run: | + python_embedded\python.exe -m pip install https://www.piwheels.org/simple/filterpy/filterpy-1.4.5-py3-none-any.whl + + # Install remaining requirements + - name: Install requirements + run: | + python_embedded\python.exe -m pip install --upgrade -r Wan2GP/requirements.txt + + - name: Prepare portable folder and package + shell: pwsh + run: | + mkdir WanGP-Portable + Copy-Item Launch_WanGP.bat WanGP-Portable\ + Copy-Item Update.bat WanGP-Portable\ + robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL + if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } + robocopy Wan2GP WanGP-Portable\Wan2GP /E /COPYALL + if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } + 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + # Create version-based tag + - name: Create tag + id: tag + shell: pwsh + env: + VERSION: ${{ steps.get_version.outputs.version }} + run: | + $new_tag = "v$env:VERSION" + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git fetch --tags + if (git tag -l $new_tag) { + Write-Host "Tag $new_tag already exists, skipping creation." + } else { + git tag $new_tag + git push origin $new_tag + } + echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT + + + - name: Create or Update Release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ steps.tag.outputs.new_tag }} + files: WanGP-Portable.7z.* + overwrite: true + fail_on_unmatched_files: false + generate_release_notes: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 5ea17cd2f61dd11f63481e93ee1df9989d7039a7 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 07:19:14 +0530 Subject: [PATCH 03/40] Rename workflows/build-wangp-portable.yml to .github/workflows/build-wangp-portable.yml --- {workflows => .github/workflows}/build-wangp-portable.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {workflows => .github/workflows}/build-wangp-portable.yml (100%) diff --git a/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml similarity index 100% rename from workflows/build-wangp-portable.yml rename to .github/workflows/build-wangp-portable.yml From fa2efc1fed22ad93d6a25f203c6da2d60fce49cd Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 07:29:19 +0530 Subject: [PATCH 04/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index d463bc8e7..8fc9b08e5 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -14,17 +14,22 @@ jobs: # Checkout repo - uses: actions/checkout@v4 with: - ref: portable-release + ref: main + + - name: Copy repo into Wan2GP folder (keep bat files in root) + shell: pwsh + run: | + mkdir Wan2GP + Get-ChildItem -Force | Where-Object { $_.Name -notin @("Launch_WanGP.bat","Update.bat","Wan2GP") } | ForEach-Object { + Copy-Item $_.FullName -Destination Wan2GP -Recurse -Force + } - - name: Clone another repo - run: git clone https://github.com/deepbeepmeep/Wan2GP.git - # 🔹 Extract version from wgp.py (Windows compatible) - name: Read version from wgp.py id: get_version shell: pwsh run: | - $content = Get-Content wgp.py -Raw + $content = Get-Content Wan2gp\wgp.py -Raw if ($content -match 'WanGP_version\s*=\s*"([^"]+)"') { $version = $matches[1] Write-Host "Found version: $version" From 9178f583237544be4e56c53ed93f0b3257713919 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 08:42:16 +0530 Subject: [PATCH 05/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 32 ++++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 8fc9b08e5..0ab767b60 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -11,7 +11,7 @@ jobs: TORCH_INDEX: https://download.pytorch.org/whl/test/cu128 steps: - # Checkout repo + # Checkout repo - uses: actions/checkout@v4 with: ref: main @@ -24,7 +24,7 @@ jobs: Copy-Item $_.FullName -Destination Wan2GP -Recurse -Force } - # 🔹 Extract version from wgp.py (Windows compatible) + # Extract version from wgp.py (Windows compatible) - name: Read version from wgp.py id: get_version shell: pwsh @@ -39,7 +39,7 @@ jobs: echo "version=unknown" >> $env:GITHUB_OUTPUT } - # Download Python Embedded + # Download Python Embedded - name: Download Python Embedded run: | curl -L -o python-embed.zip https://www.python.org/ftp/python/${{ env.PYTHON_VERSION }}/python-${{ env.PYTHON_VERSION }}-embed-amd64.zip @@ -53,14 +53,14 @@ jobs: # Create folders for packages mkdir python_embedded\Lib\site-packages - # Install pip directly into Lib\site-packages + # Install pip directly into Lib\site-packages - name: Install pip run: | curl -L -o get-pip.py https://bootstrap.pypa.io/get-pip.py python_embedded\python.exe get-pip.py python_embedded\python.exe -m pip --version - # Install core dependencies (Torch, SageAttention) + # Install core dependencies (Torch, SageAttention) - name: Install Torch and SageAttention run: | python_embedded\python.exe -m pip install --upgrade pip @@ -68,16 +68,17 @@ jobs: python_embedded\python.exe -m pip install triton-windows python_embedded\python.exe -m pip install https://github.com/woct0rdho/SageAttention/releases/download/v2.2.0-windows.post2/sageattention-2.2.0+cu128torch2.8.0.post2-cp39-abi3-win_amd64.whl - # Install FilterPy + # Install FilterPy - name: Install FilterPy run: | python_embedded\python.exe -m pip install https://www.piwheels.org/simple/filterpy/filterpy-1.4.5-py3-none-any.whl - # Install remaining requirements + # Install remaining requirements - name: Install requirements run: | python_embedded\python.exe -m pip install --upgrade -r Wan2GP/requirements.txt + # Prepare portable folder and 7z package - name: Prepare portable folder and package shell: pwsh run: | @@ -91,7 +92,7 @@ jobs: 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - # Create version-based tag + # Create version-based tag - name: Create tag id: tag shell: pwsh @@ -110,14 +111,27 @@ jobs: } echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT + # Read Change Log + - name: Read CHANGELOG.md + id: changelog + shell: pwsh + run: | + if (Test-Path "docs/CHANGELOG.md") { + $changelog = Get-Content docs/CHANGELOG.md -Raw + # Escape for GitHub Actions output + $changelog = $changelog -replace '%','%25' -replace '\n','%0A' -replace '\r','' + echo "body=$changelog" >> $env:GITHUB_OUTPUT + } else { + echo "body=No changelog found." >> $env:GITHUB_OUTPUT + } - name: Create or Update Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.new_tag }} files: WanGP-Portable.7z.* + body: ${{ steps.changelog.outputs.body }} overwrite: true fail_on_unmatched_files: false - generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From c240cb0780e10b8771de7f5d4fb02097017a7f74 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 08:53:45 +0530 Subject: [PATCH 06/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 0ab767b60..fdfb22eaa 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -111,26 +111,12 @@ jobs: } echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT - # Read Change Log - - name: Read CHANGELOG.md - id: changelog - shell: pwsh - run: | - if (Test-Path "docs/CHANGELOG.md") { - $changelog = Get-Content docs/CHANGELOG.md -Raw - # Escape for GitHub Actions output - $changelog = $changelog -replace '%','%25' -replace '\n','%0A' -replace '\r','' - echo "body=$changelog" >> $env:GITHUB_OUTPUT - } else { - echo "body=No changelog found." >> $env:GITHUB_OUTPUT - } - - name: Create or Update Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.new_tag }} files: WanGP-Portable.7z.* - body: ${{ steps.changelog.outputs.body }} + body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" overwrite: true fail_on_unmatched_files: false env: From a7b1ad3402dfe911858e6c2a5178bef16fa2baf1 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 09:38:17 +0530 Subject: [PATCH 07/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index fdfb22eaa..fe0a6217a 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -117,7 +117,6 @@ jobs: tag_name: ${{ steps.tag.outputs.new_tag }} files: WanGP-Portable.7z.* body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" - overwrite: true fail_on_unmatched_files: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 1a4956590a11bf3e071ec40ab185562a4e7b4538 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:19:46 +0530 Subject: [PATCH 08/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index fe0a6217a..eca9b4383 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -61,13 +61,11 @@ jobs: python_embedded\python.exe -m pip --version # Install core dependencies (Torch, SageAttention) - - name: Install Torch and SageAttention + - name: Install Torch run: | python_embedded\python.exe -m pip install --upgrade pip python_embedded\python.exe -m pip install torch==2.8.0 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} - python_embedded\python.exe -m pip install triton-windows - python_embedded\python.exe -m pip install https://github.com/woct0rdho/SageAttention/releases/download/v2.2.0-windows.post2/sageattention-2.2.0+cu128torch2.8.0.post2-cp39-abi3-win_amd64.whl - + # Install FilterPy - name: Install FilterPy run: | From 20c4c4315de9d518f10103e2e4e86b1cce12d45d Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:22:23 +0530 Subject: [PATCH 09/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index eca9b4383..c691fca5d 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -8,7 +8,7 @@ jobs: runs-on: windows-latest env: PYTHON_VERSION: 3.10.9 - TORCH_INDEX: https://download.pytorch.org/whl/test/cu128 + TORCH_INDEX: https://download.pytorch.org/whl/cu128 steps: # Checkout repo From 427f341f79512fc9814940957de2aecd6f7e1a32 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:16:07 +0530 Subject: [PATCH 10/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index c691fca5d..88acf5ec9 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -75,7 +75,35 @@ jobs: - name: Install requirements run: | python_embedded\python.exe -m pip install --upgrade -r Wan2GP/requirements.txt + + - name: Use clean public git config + shell: pwsh + run: | + $gitConfigPath = "Wan2GP\.git\config" + if (Test-Path $gitConfigPath) { + Set-Content $gitConfigPath @" +[core] +repositoryformatversion = 0 +filemode = false +bare = false +logallrefupdates = true +ignorecase = true +[remote "origin"] +url = https://github.com/deepbeepmeep/Wan2GP.git +fetch = +refs/heads/*:refs/remotes/origin/* + +[branch "main"] +remote = origin +merge = refs/heads/main +[gc] +auto = 0 +"@ + Write-Host "Replaced .git/config with clean public version" + } else { + Write-Host "No .git/config found in Wan2GP, skipping" + } + # Prepare portable folder and 7z package - name: Prepare portable folder and package shell: pwsh From 95638fde2074182f53eb1e3819c2011441650045 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:19:07 +0530 Subject: [PATCH 11/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 88acf5ec9..6ecff3e8e 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -81,7 +81,7 @@ jobs: run: | $gitConfigPath = "Wan2GP\.git\config" if (Test-Path $gitConfigPath) { - Set-Content $gitConfigPath @" + Set-Content $gitConfigPath @' [core] repositoryformatversion = 0 filemode = false @@ -98,7 +98,7 @@ remote = origin merge = refs/heads/main [gc] auto = 0 -"@ + '@ Write-Host "Replaced .git/config with clean public version" } else { Write-Host "No .git/config found in Wan2GP, skipping" From fbc248771b63b18825e683fd8f560b89b43d3eb3 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:24:17 +0530 Subject: [PATCH 12/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 6ecff3e8e..2d34cd55e 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -81,7 +81,7 @@ jobs: run: | $gitConfigPath = "Wan2GP\.git\config" if (Test-Path $gitConfigPath) { - Set-Content $gitConfigPath @' + $configContent = @' [core] repositoryformatversion = 0 filemode = false @@ -98,11 +98,12 @@ remote = origin merge = refs/heads/main [gc] auto = 0 - '@ - Write-Host "Replaced .git/config with clean public version" - } else { - Write-Host "No .git/config found in Wan2GP, skipping" - } +'@ + Set-Content -Path $gitConfigPath -Value $configContent -Encoding UTF8 + Write-Host "Replaced .git/config with clean public version" + } else { + Write-Host "No .git/config found in Wan2GP, skipping" + } # Prepare portable folder and 7z package - name: Prepare portable folder and package From fa997d241881348bcf427cddc1ddd01a9c36a4dd Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:27:56 +0530 Subject: [PATCH 13/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 2d34cd55e..6eaba84c5 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -19,10 +19,10 @@ jobs: - name: Copy repo into Wan2GP folder (keep bat files in root) shell: pwsh run: | - mkdir Wan2GP - Get-ChildItem -Force | Where-Object { $_.Name -notin @("Launch_WanGP.bat","Update.bat","Wan2GP") } | ForEach-Object { + mkdir Wan2GP + Get-ChildItem -Force | Where-Object { $_.Name -notin @("Launch_WanGP.bat","Update.bat","Wan2GP") } | ForEach-Object { Copy-Item $_.FullName -Destination Wan2GP -Recurse -Force - } + } # Extract version from wgp.py (Windows compatible) - name: Read version from wgp.py @@ -64,7 +64,7 @@ jobs: - name: Install Torch run: | python_embedded\python.exe -m pip install --upgrade pip - python_embedded\python.exe -m pip install torch==2.8.0 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} + python_embedded\python.exe -m pip install torch==2.8.0 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} # Install FilterPy - name: Install FilterPy @@ -76,11 +76,12 @@ jobs: run: | python_embedded\python.exe -m pip install --upgrade -r Wan2GP/requirements.txt + # ✅ FIXED INDENTATION BLOCK HERE - name: Use clean public git config shell: pwsh run: | - $gitConfigPath = "Wan2GP\.git\config" - if (Test-Path $gitConfigPath) { + $gitConfigPath = "Wan2GP\.git\config" + if (Test-Path $gitConfigPath) { $configContent = @' [core] repositoryformatversion = 0 @@ -99,10 +100,10 @@ merge = refs/heads/main [gc] auto = 0 '@ - Set-Content -Path $gitConfigPath -Value $configContent -Encoding UTF8 - Write-Host "Replaced .git/config with clean public version" + Set-Content -Path $gitConfigPath -Value $configContent -Encoding UTF8 + Write-Host "Replaced .git/config with clean public version" } else { - Write-Host "No .git/config found in Wan2GP, skipping" + Write-Host "No .git/config found in Wan2GP, skipping" } # Prepare portable folder and 7z package From 1fd443dad63d6223445de62a672294ab5808479e Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:29:04 +0530 Subject: [PATCH 14/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 6eaba84c5..600f4bfff 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -82,7 +82,7 @@ jobs: run: | $gitConfigPath = "Wan2GP\.git\config" if (Test-Path $gitConfigPath) { - $configContent = @' + $configContent = @" [core] repositoryformatversion = 0 filemode = false @@ -99,7 +99,7 @@ remote = origin merge = refs/heads/main [gc] auto = 0 -'@ +"@ Set-Content -Path $gitConfigPath -Value $configContent -Encoding UTF8 Write-Host "Replaced .git/config with clean public version" } else { From 2126583ca2c4c8fea521f8165e7e13c7d82c9ed2 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:30:39 +0530 Subject: [PATCH 15/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 600f4bfff..159565fe2 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -76,13 +76,12 @@ jobs: run: | python_embedded\python.exe -m pip install --upgrade -r Wan2GP/requirements.txt - # ✅ FIXED INDENTATION BLOCK HERE - name: Use clean public git config shell: pwsh run: | $gitConfigPath = "Wan2GP\.git\config" if (Test-Path $gitConfigPath) { - $configContent = @" + @" [core] repositoryformatversion = 0 filemode = false @@ -97,15 +96,15 @@ fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin merge = refs/heads/main + [gc] auto = 0 -"@ - Set-Content -Path $gitConfigPath -Value $configContent -Encoding UTF8 +"@ | Out-File -FilePath $gitConfigPath -Encoding UTF8 -Force Write-Host "Replaced .git/config with clean public version" } else { Write-Host "No .git/config found in Wan2GP, skipping" } - + # Prepare portable folder and 7z package - name: Prepare portable folder and package shell: pwsh From 1dcbfc4893ff779324ed97944a7e841660e50df9 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:32:34 +0530 Subject: [PATCH 16/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 159565fe2..4d117e15c 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -81,30 +81,30 @@ jobs: run: | $gitConfigPath = "Wan2GP\.git\config" if (Test-Path $gitConfigPath) { - @" -[core] -repositoryformatversion = 0 -filemode = false -bare = false -logallrefupdates = true -ignorecase = true - -[remote "origin"] -url = https://github.com/deepbeepmeep/Wan2GP.git -fetch = +refs/heads/*:refs/remotes/origin/* - -[branch "main"] -remote = origin -merge = refs/heads/main - -[gc] -auto = 0 -"@ | Out-File -FilePath $gitConfigPath -Encoding UTF8 -Force + $config = @() + $config += "[core]" + $config += "repositoryformatversion = 0" + $config += "filemode = false" + $config += "bare = false" + $config += "logallrefupdates = true" + $config += "ignorecase = true" + $config += "" + $config += "[remote \"origin\"]" + $config += "url = https://github.com/deepbeepmeep/Wan2GP.git" + $config += "fetch = +refs/heads/*:refs/remotes/origin/*" + $config += "" + $config += "[branch \"main\"]" + $config += "remote = origin" + $config += "merge = refs/heads/main" + $config += "" + $config += "[gc]" + $config += "auto = 0" + $config | Out-File -FilePath $gitConfigPath -Encoding UTF8 -Force Write-Host "Replaced .git/config with clean public version" } else { Write-Host "No .git/config found in Wan2GP, skipping" } - + # Prepare portable folder and 7z package - name: Prepare portable folder and package shell: pwsh From 5582b4450e2e8dc147d7b3cc5b9e2fafd154b5ce Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:46:30 +0530 Subject: [PATCH 17/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 4d117e15c..6304598ac 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -89,11 +89,11 @@ jobs: $config += "logallrefupdates = true" $config += "ignorecase = true" $config += "" - $config += "[remote \"origin\"]" + $config += '[remote "origin"]' $config += "url = https://github.com/deepbeepmeep/Wan2GP.git" $config += "fetch = +refs/heads/*:refs/remotes/origin/*" $config += "" - $config += "[branch \"main\"]" + $config += '[branch "main"]' $config += "remote = origin" $config += "merge = refs/heads/main" $config += "" From a872d0292123ce68b2770fe4d644fc1fbecd5912 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:26:40 +0530 Subject: [PATCH 18/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 49 ++++------------------ 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 6304598ac..92187aa5f 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -16,20 +16,21 @@ jobs: with: ref: main - - name: Copy repo into Wan2GP folder (keep bat files in root) + # Clone Wan2GP source publicly to include inside portable + - name: Clone Wan2GP source shell: pwsh run: | - mkdir Wan2GP - Get-ChildItem -Force | Where-Object { $_.Name -notin @("Launch_WanGP.bat","Update.bat","Wan2GP") } | ForEach-Object { - Copy-Item $_.FullName -Destination Wan2GP -Recurse -Force - } + mkdir WanGP-Portable + if (Test-Path Wan2GP) { Remove-Item -Recurse -Force Wan2GP } + git clone https://github.com/deepbeepmeep/Wan2GP.git WanGP-Portable\Wan2GP + Write-Host "✅ Cloned Wan2GP repository into portable workspace." # Extract version from wgp.py (Windows compatible) - name: Read version from wgp.py id: get_version shell: pwsh run: | - $content = Get-Content Wan2gp\wgp.py -Raw + $content = Get-Content WanGP-Portable\Wan2GP\wgp.py -Raw if ($content -match 'WanGP_version\s*=\s*"([^"]+)"') { $version = $matches[1] Write-Host "Found version: $version" @@ -74,48 +75,16 @@ jobs: # Install remaining requirements - name: Install requirements run: | - python_embedded\python.exe -m pip install --upgrade -r Wan2GP/requirements.txt + python_embedded\python.exe -m pip install --upgrade -r WanGP-Portable\Wan2GP\requirements.txt - - name: Use clean public git config - shell: pwsh - run: | - $gitConfigPath = "Wan2GP\.git\config" - if (Test-Path $gitConfigPath) { - $config = @() - $config += "[core]" - $config += "repositoryformatversion = 0" - $config += "filemode = false" - $config += "bare = false" - $config += "logallrefupdates = true" - $config += "ignorecase = true" - $config += "" - $config += '[remote "origin"]' - $config += "url = https://github.com/deepbeepmeep/Wan2GP.git" - $config += "fetch = +refs/heads/*:refs/remotes/origin/*" - $config += "" - $config += '[branch "main"]' - $config += "remote = origin" - $config += "merge = refs/heads/main" - $config += "" - $config += "[gc]" - $config += "auto = 0" - $config | Out-File -FilePath $gitConfigPath -Encoding UTF8 -Force - Write-Host "Replaced .git/config with clean public version" - } else { - Write-Host "No .git/config found in Wan2GP, skipping" - } - # Prepare portable folder and 7z package - name: Prepare portable folder and package shell: pwsh - run: | - mkdir WanGP-Portable + run: | Copy-Item Launch_WanGP.bat WanGP-Portable\ Copy-Item Update.bat WanGP-Portable\ robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } - robocopy Wan2GP WanGP-Portable\Wan2GP /E /COPYALL - if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } From 82fcb42c3b47cbed6ff99565e9347842025180d2 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Tue, 28 Oct 2025 07:17:56 +0530 Subject: [PATCH 19/40] Update build-wangp-portable.yml --- .github/workflows/build-wangp-portable.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 92187aa5f..8c54e60e8 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -81,8 +81,20 @@ jobs: - name: Prepare portable folder and package shell: pwsh run: | - Copy-Item Launch_WanGP.bat WanGP-Portable\ - Copy-Item Update.bat WanGP-Portable\ + # Prefer Wan2GP's .bat files, fallback to mine root-level ones + $batFiles = @("Launch_WanGP.bat", "Update.bat") + foreach ($file in $batFiles) { + $wan2gpPath = "WanGP-Portable\Wan2GP\$file" + if (Test-Path $wan2gpPath) { + Copy-Item $wan2gpPath WanGP-Portable\ + Write-Host "✅ Copied $file from Wan2GP source." + } elseif (Test-Path $file) { + Copy-Item $file WanGP-Portable\ + Write-Host "✅ Copied fallback $file from root." + } else { + Write-Host "⚠️ $file not found anywhere, skipping." + } + } robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" From 924f3d2608d6f02310ce081fe107490bf67d9531 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Wed, 29 Oct 2025 21:29:31 +0530 Subject: [PATCH 20/40] Change Torch Version --- .github/workflows/build-wangp-portable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable.yml b/.github/workflows/build-wangp-portable.yml index 8c54e60e8..22f3f49da 100644 --- a/.github/workflows/build-wangp-portable.yml +++ b/.github/workflows/build-wangp-portable.yml @@ -65,7 +65,7 @@ jobs: - name: Install Torch run: | python_embedded\python.exe -m pip install --upgrade pip - python_embedded\python.exe -m pip install torch==2.8.0 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} + python_embedded\python.exe -m pip install torch==2.7.1 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} # Install FilterPy - name: Install FilterPy From f114c6d34b2ef75c330c94ecc8aeda1230bea656 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Sat, 24 Jan 2026 09:33:19 +0530 Subject: [PATCH 21/40] Add Sage Build --- .../workflows/build-wangp-portable_sage.yml | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 .github/workflows/build-wangp-portable_sage.yml diff --git a/.github/workflows/build-wangp-portable_sage.yml b/.github/workflows/build-wangp-portable_sage.yml new file mode 100644 index 000000000..a4fa2bb21 --- /dev/null +++ b/.github/workflows/build-wangp-portable_sage.yml @@ -0,0 +1,161 @@ +name: Build WanGP Portable + +on: + workflow_dispatch: + +jobs: + build-portable: + runs-on: windows-latest + env: + PYTHON_VERSION: 3.10.9 + TORCH_INDEX: https://download.pytorch.org/whl/cu128 + + steps: + # Checkout repo + - uses: actions/checkout@v4 + with: + ref: main + + # Clone Wan2GP source publicly to include inside portable + - name: Clone Wan2GP source + shell: pwsh + run: | + mkdir WanGP-Portable + if (Test-Path Wan2GP) { Remove-Item -Recurse -Force Wan2GP } + git clone https://github.com/deepbeepmeep/Wan2GP.git WanGP-Portable\Wan2GP + Write-Host "✅ Cloned Wan2GP repository into portable workspace." + + # Extract version from wgp.py (Windows compatible) + - name: Read version from wgp.py + id: get_version + shell: pwsh + run: | + $content = Get-Content WanGP-Portable\Wan2GP\wgp.py -Raw + if ($content -match 'WanGP_version\s*=\s*"([^"]+)"') { + $version = $matches[1] + Write-Host "Found version: $version" + echo "version=$version" >> $env:GITHUB_OUTPUT + } else { + Write-Host "⚠️ WanGP_version not found in wgp.py" + echo "version=unknown" >> $env:GITHUB_OUTPUT + } + + # Download Python Embedded + - name: Download Python Embedded + run: | + curl -L -o python-embed.zip https://www.python.org/ftp/python/${{ env.PYTHON_VERSION }}/python-${{ env.PYTHON_VERSION }}-embed-amd64.zip + mkdir python_embedded + tar -xf python-embed.zip -C python_embedded + + # Uncomment import site and add site-packages path + (Get-Content python_embedded\python310._pth) -replace '# import site','import site' | Set-Content python_embedded\python310._pth + Add-Content python_embedded\python310._pth "Lib\site-packages" + + # Create folders for packages + mkdir python_embedded\Lib\site-packages + + # Clone python3 headers/libs and merge into embedded Python + - name: Add Include and Libs to Embedded Python + shell: pwsh + run: | + git clone https://github.com/axiomgraph/python3.git python3-src + + if (Test-Path python3-src\Include) { + Copy-Item python3-src\Include python_embedded\Include -Recurse -Force + Write-Host "✅ Copied Include folder." + } else { + Write-Host "⚠️ Include folder not found in python3 repo." + } + + if (Test-Path python3-src\Libs) { + Copy-Item python3-src\Libs python_embedded\Libs -Recurse -Force + Write-Host "✅ Copied Libs folder." + } else { + Write-Host "⚠️ Libs folder not found in python3 repo." + } + + # Install pip directly into Lib\site-packages + - name: Install pip + run: | + curl -L -o get-pip.py https://bootstrap.pypa.io/get-pip.py + python_embedded\python.exe get-pip.py + python_embedded\python.exe -m pip --version + + # Install core dependencies (Torch, SageAttention) + - name: Install Torch + run: | + python_embedded\python.exe -m pip install --upgrade pip + python_embedded\python.exe -m pip install torch==2.7.1 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} + + # Install Triton for Windows (required for SageAttention) + - name: Install triton-windows + run: | + python_embedded\python.exe -m pip install triton-windows + + # Install SageAttention (CUDA 12.8, Torch 2.7.1, Python 3.10) + - name: Install SageAttention + run: | + python_embedded\python.exe -m pip install https://github.com/woct0rdho/SageAttention/releases/download/v2.2.0-windows/sageattention-2.2.0+cu128torch2.7.1-cp310-cp310-win_amd64.whl + + + # Install FilterPy + - name: Install FilterPy + run: | + python_embedded\python.exe -m pip install https://www.piwheels.org/simple/filterpy/filterpy-1.4.5-py3-none-any.whl + + # Install remaining requirements + - name: Install requirements + run: | + python_embedded\python.exe -m pip install --upgrade -r WanGP-Portable\Wan2GP\requirements.txt + + # Prepare portable folder and 7z package + - name: Prepare portable folder and package + shell: pwsh + run: | + # Prefer Wan2GP's .bat files, fallback to mine root-level ones + $batFiles = @("Launch_WanGP.bat", "Update.bat") + foreach ($file in $batFiles) { + $wan2gpPath = "WanGP-Portable\Wan2GP\$file" + if (Test-Path $wan2gpPath) { + Copy-Item $wan2gpPath WanGP-Portable\ + Write-Host "✅ Copied $file from Wan2GP source." + } elseif (Test-Path $file) { + Copy-Item $file WanGP-Portable\ + Write-Host "✅ Copied fallback $file from root." + } else { + Write-Host "⚠️ $file not found anywhere, skipping." + } + } + robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL + if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } + 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + # Create version-based tag + - name: Create tag + id: tag + shell: pwsh + env: + VERSION: ${{ steps.get_version.outputs.version }} + run: | + $new_tag = "v$env:VERSION" + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git fetch --tags + if (git tag -l $new_tag) { + Write-Host "Tag $new_tag already exists, skipping creation." + } else { + git tag $new_tag + git push origin $new_tag + } + echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT + + - name: Create or Update Release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ steps.tag.outputs.new_tag }} + files: WanGP-Portable.7z.* + body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" + fail_on_unmatched_files: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 22309dd28fa08c7ead741433ef9b069effe78b42 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Wed, 28 Jan 2026 14:18:43 +0530 Subject: [PATCH 22/40] Rename workflow to Build WanGP Portable Sage Attention --- .github/workflows/build-wangp-portable_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_sage.yml b/.github/workflows/build-wangp-portable_sage.yml index a4fa2bb21..6b8f8901a 100644 --- a/.github/workflows/build-wangp-portable_sage.yml +++ b/.github/workflows/build-wangp-portable_sage.yml @@ -1,4 +1,4 @@ -name: Build WanGP Portable +name: Build WanGP Portable Sage Attention on: workflow_dispatch: From c827b2626fde7f17d0148018af0eb5ffcf520989 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Tue, 3 Feb 2026 07:46:50 +0530 Subject: [PATCH 23/40] Add New Python --- .../build-wangp-portable_python311_sage.yml | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 .github/workflows/build-wangp-portable_python311_sage.yml diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml new file mode 100644 index 000000000..861e239ee --- /dev/null +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -0,0 +1,160 @@ +name: Build WanGP Portable Sage Attention + +on: + workflow_dispatch: + +jobs: + build-portable: + runs-on: windows-latest + env: + PYTHON_VERSION: 3.11.9 + TORCH_INDEX: https://download.pytorch.org/whl/cu130 + + steps: + # Checkout repo + - uses: actions/checkout@v4 + with: + ref: main + + # Clone Wan2GP source publicly to include inside portable + - name: Clone Wan2GP source + shell: pwsh + run: | + mkdir WanGP-Portable + if (Test-Path Wan2GP) { Remove-Item -Recurse -Force Wan2GP } + git clone https://github.com/deepbeepmeep/Wan2GP.git WanGP-Portable\Wan2GP + Write-Host "✅ Cloned Wan2GP repository into portable workspace." + + # Extract version from wgp.py (Windows compatible) + - name: Read version from wgp.py + id: get_version + shell: pwsh + run: | + $content = Get-Content WanGP-Portable\Wan2GP\wgp.py -Raw + if ($content -match 'WanGP_version\s*=\s*"([^"]+)"') { + $version = $matches[1] + Write-Host "Found version: $version" + echo "version=$version" >> $env:GITHUB_OUTPUT + } else { + Write-Host "⚠️ WanGP_version not found in wgp.py" + echo "version=unknown" >> $env:GITHUB_OUTPUT + } + + # Download Python Embedded + - name: Download Python Embedded + run: | + curl -L -o python-embed.zip https://www.python.org/ftp/python/${{ env.PYTHON_VERSION }}/python-${{ env.PYTHON_VERSION }}-embed-amd64.zip + mkdir python_embedded + tar -xf python-embed.zip -C python_embedded + + # Uncomment import site and add site-packages path + (Get-Content python_embedded\python311._pth) -replace '# import site','import site' | Set-Content python_embedded\python311._pth + Add-Content python_embedded\python311._pth "Lib\site-packages" + + # Create folders for packages + mkdir python_embedded\Lib\site-packages + + # Clone python3 headers/libs and merge into embedded Python + - name: Add Include and Libs to Embedded Python + shell: pwsh + run: | + git clone https://github.com/axiomgraph/python311 python3-src + + if (Test-Path python3-src\Include) { + Copy-Item python3-src\Include python_embedded\Include -Recurse -Force + Write-Host "✅ Copied Include folder." + } else { + Write-Host "⚠️ Include folder not found in python3 repo." + } + + if (Test-Path python3-src\Libs) { + Copy-Item python3-src\Libs python_embedded\Libs -Recurse -Force + Write-Host "✅ Copied Libs folder." + } else { + Write-Host "⚠️ Libs folder not found in python3 repo." + } + + # Install pip directly into Lib\site-packages + - name: Install pip + run: | + curl -L -o get-pip.py https://bootstrap.pypa.io/get-pip.py + python_embedded\python.exe get-pip.py + python_embedded\python.exe -m pip --version + + # Install core dependencies (Torch, SageAttention) + - name: Install Torch + run: | + python_embedded\python.exe -m pip install --upgrade pip + python_embedded\python.exe -m pip install torch==2.10.0 torchvision torchaudio --index-url ${{ env.TORCH_INDEX }} + + # Install Triton for Windows (required for SageAttention) + - name: Install triton-windows + run: | + python_embedded\python.exe -m pip install triton-windows + + # Install SageAttention + - name: Install SageAttention + run: | + python_embedded\python.exe -m pip install https://github.com/woct0rdho/SageAttention/releases/download/v2.2.0-windows.post4/sageattention-2.2.0+cu130torch2.9.0andhigher.post4-cp39-abi3-win_amd64.whl + + # Install FilterPy + - name: Install FilterPy + run: | + python_embedded\python.exe -m pip install https://www.piwheels.org/simple/filterpy/filterpy-1.4.5-py3-none-any.whl + + # Install remaining requirements + - name: Install requirements + run: | + python_embedded\python.exe -m pip install --upgrade -r WanGP-Portable\Wan2GP\requirements.txt + + # Prepare portable folder and 7z package + - name: Prepare portable folder and package + shell: pwsh + run: | + # Prefer Wan2GP's .bat files, fallback to mine root-level ones + $batFiles = @("Launch_WanGP.bat", "Update.bat") + foreach ($file in $batFiles) { + $wan2gpPath = "WanGP-Portable\Wan2GP\$file" + if (Test-Path $wan2gpPath) { + Copy-Item $wan2gpPath WanGP-Portable\ + Write-Host "✅ Copied $file from Wan2GP source." + } elseif (Test-Path $file) { + Copy-Item $file WanGP-Portable\ + Write-Host "✅ Copied fallback $file from root." + } else { + Write-Host "⚠️ $file not found anywhere, skipping." + } + } + robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL + if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } + 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable_Python311_Cu13_Sage.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + # Create version-based tag + - name: Create tag + id: tag + shell: pwsh + env: + VERSION: ${{ steps.get_version.outputs.version }} + run: | + $new_tag = "v$env:VERSION" + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git fetch --tags + if (git tag -l $new_tag) { + Write-Host "Tag $new_tag already exists, skipping creation." + } else { + git tag $new_tag + git push origin $new_tag + } + echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT + + - name: Create or Update Release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ steps.tag.outputs.new_tag }} + files: WanGP-Portable_Python311_Cu13_Sage.7z.* + body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" + fail_on_unmatched_files: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 7812f4d39dea033adabd338c1e7d59a0596e73d9 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Tue, 3 Feb 2026 07:47:33 +0530 Subject: [PATCH 24/40] Rename workflow to include Python 3.11 --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 861e239ee..3fddb7c3d 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -1,4 +1,4 @@ -name: Build WanGP Portable Sage Attention +name: Build WanGP Portable Python 3.11 Sage Attention on: workflow_dispatch: From 132638b05e30b761c6e621b0c80fedbb4f893676 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Wed, 4 Feb 2026 12:43:34 +0530 Subject: [PATCH 25/40] Rename output archive to WanGP-Portable_python310_sage.7z --- .github/workflows/build-wangp-portable_sage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable_sage.yml b/.github/workflows/build-wangp-portable_sage.yml index 6b8f8901a..25205e11c 100644 --- a/.github/workflows/build-wangp-portable_sage.yml +++ b/.github/workflows/build-wangp-portable_sage.yml @@ -128,7 +128,7 @@ jobs: } robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } - 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" + 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable_python310_sage.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } # Create version-based tag @@ -154,7 +154,7 @@ jobs: uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.new_tag }} - files: WanGP-Portable.7z.* + files: WanGP-Portable_python310_sage.7z.* body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" fail_on_unmatched_files: false env: From 00da3c30bffc3dd19682b2cc653c4bb06a39b4c6 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Fri, 6 Feb 2026 09:06:38 +0530 Subject: [PATCH 26/40] Fix release file pattern in workflow YAML --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 3fddb7c3d..b0007c5b4 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -153,7 +153,7 @@ jobs: uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.new_tag }} - files: WanGP-Portable_Python311_Cu13_Sage.7z.* + files: WanGP-Portable_Python311_Cu13_Sage.7z body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" fail_on_unmatched_files: false env: From cf9782dc28e5cc51eda86c2a5fd32c3002a20a23 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:30:37 +0530 Subject: [PATCH 27/40] Add debug step to list files before release Added debug step to list files in the workspace. --- .../workflows/build-wangp-portable_python311_sage.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index b0007c5b4..2488d7054 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -127,7 +127,7 @@ jobs: } robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } - 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable_Python311_Cu13_Sage.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" + 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on "WanGP-Portable_Python311_Cu13_Sage.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } # Create version-based tag @@ -148,6 +148,15 @@ jobs: git push origin $new_tag } echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT + - name: Debug list files + shell: pwsh + run: | + Write-Host "Current directory:" + Get-Location + Write-Host "Files in root:" + Get-ChildItem + Write-Host "Search entire workspace:" + Get-ChildItem -Recurse -Filter *.7z - name: Create or Update Release uses: softprops/action-gh-release@v1 From 9de65d9aa52d2c2361f518eb0395ad60626cfd24 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:31:58 +0530 Subject: [PATCH 28/40] Fix indentation in build workflow YAML --- .github/workflows/build-wangp-portable_python311_sage.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 2488d7054..422fe0d2a 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -11,10 +11,10 @@ jobs: TORCH_INDEX: https://download.pytorch.org/whl/cu130 steps: - # Checkout repo - - uses: actions/checkout@v4 - with: - ref: main + # Checkout repo + - uses: actions/checkout@v4 + with: + ref: main # Clone Wan2GP source publicly to include inside portable - name: Clone Wan2GP source From 5615ffbd6a80f3ee34a612762e81faba9e5c60de Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:33:23 +0530 Subject: [PATCH 29/40] Refactor checkout step in build workflow --- .../workflows/build-wangp-portable_python311_sage.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 422fe0d2a..3d55a37f3 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -9,13 +9,11 @@ jobs: env: PYTHON_VERSION: 3.11.9 TORCH_INDEX: https://download.pytorch.org/whl/cu130 - steps: - # Checkout repo - - uses: actions/checkout@v4 - with: - ref: main - + - uses: actions/checkout@v4 + with: + ref: main + # Clone Wan2GP source publicly to include inside portable - name: Clone Wan2GP source shell: pwsh From c36cd03fa6f5cabbd9999240559c82fb528e84a6 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:35:10 +0530 Subject: [PATCH 30/40] Fix indentation in GitHub Actions workflow file --- .github/workflows/build-wangp-portable_python311_sage.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 3d55a37f3..474b2fa46 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -7,9 +7,9 @@ jobs: build-portable: runs-on: windows-latest env: - PYTHON_VERSION: 3.11.9 - TORCH_INDEX: https://download.pytorch.org/whl/cu130 - steps: + PYTHON_VERSION: 3.11.9 + TORCH_INDEX: https://download.pytorch.org/whl/cu130 + steps: - uses: actions/checkout@v4 with: ref: main From 9a0af6f18145337aff52403551d75c44cc270e28 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:35:53 +0530 Subject: [PATCH 31/40] Fix indentation in GitHub Actions YAML file --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 474b2fa46..509516860 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -9,7 +9,7 @@ jobs: env: PYTHON_VERSION: 3.11.9 TORCH_INDEX: https://download.pytorch.org/whl/cu130 - steps: + steps: - uses: actions/checkout@v4 with: ref: main From baf61ee7636ae2afd82981283e0e3ebec8456112 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:37:55 +0530 Subject: [PATCH 32/40] Fix indentation in GitHub Actions workflow --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 509516860..454e2b986 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -9,7 +9,7 @@ jobs: env: PYTHON_VERSION: 3.11.9 TORCH_INDEX: https://download.pytorch.org/whl/cu130 - steps: + steps: - uses: actions/checkout@v4 with: ref: main From f692f5268dd8c4ed2be6ba2e93d5dfd5649b69d6 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:40:43 +0530 Subject: [PATCH 33/40] Update environment variables in build workflow --- .github/workflows/build-wangp-portable_python311_sage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 454e2b986..352eacac1 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -7,8 +7,8 @@ jobs: build-portable: runs-on: windows-latest env: - PYTHON_VERSION: 3.11.9 - TORCH_INDEX: https://download.pytorch.org/whl/cu130 + PYTHON_VERSION: 3.11.9 + TORCH_INDEX: https://download.pytorch.org/whl/cu130 steps: - uses: actions/checkout@v4 with: From 3dec5e0ba60637b318308dd114f8545b3a3d0312 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:41:45 +0530 Subject: [PATCH 34/40] Quote PYTHON_VERSION in workflow YAML --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 352eacac1..63b0960fb 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -7,7 +7,7 @@ jobs: build-portable: runs-on: windows-latest env: - PYTHON_VERSION: 3.11.9 + PYTHON_VERSION: "3.11.9" TORCH_INDEX: https://download.pytorch.org/whl/cu130 steps: - uses: actions/checkout@v4 From d906addfda1b829b70dc829c4941f969ad40334c Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:43:04 +0530 Subject: [PATCH 35/40] Fix YAML syntax for workflow dispatch event --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 63b0960fb..dc79bfca5 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -1,6 +1,6 @@ name: Build WanGP Portable Python 3.11 Sage Attention -on: +'on': workflow_dispatch: jobs: From e2449440573fb66ea6d3d368dbf3a2e827707802 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:43:58 +0530 Subject: [PATCH 36/40] Fix indentation in build workflow YAML file --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index dc79bfca5..ab3835bc0 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -9,7 +9,7 @@ jobs: env: PYTHON_VERSION: "3.11.9" TORCH_INDEX: https://download.pytorch.org/whl/cu130 - steps: + steps: - uses: actions/checkout@v4 with: ref: main From 96aee4f69a8e3983611c9db23219e22d565649c2 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:45:07 +0530 Subject: [PATCH 37/40] Fix indentation in build workflow YAML file --- .github/workflows/build-wangp-portable_python311_sage.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index ab3835bc0..fca9e853e 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -9,7 +9,8 @@ jobs: env: PYTHON_VERSION: "3.11.9" TORCH_INDEX: https://download.pytorch.org/whl/cu130 - steps: + + steps: - uses: actions/checkout@v4 with: ref: main From cb90e374c790a2282add7f6b9049641654888d94 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:46:04 +0530 Subject: [PATCH 38/40] Fix indentation for Debug list files step --- .github/workflows/build-wangp-portable_python311_sage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index fca9e853e..958a9015a 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -147,7 +147,7 @@ jobs: git push origin $new_tag } echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT - - name: Debug list files + - name: Debug list files shell: pwsh run: | Write-Host "Current directory:" From fb349ecfaf843b866e5bb70a6882d15f3ce54026 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:46:48 +0530 Subject: [PATCH 39/40] Fix indentation and formatting in workflow YAML --- .github/workflows/build-wangp-portable_python311_sage.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 958a9015a..2f48edd75 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -147,9 +147,10 @@ jobs: git push origin $new_tag } echo "new_tag=$new_tag" >> $env:GITHUB_OUTPUT + - name: Debug list files - shell: pwsh - run: | + shell: pwsh + run: | Write-Host "Current directory:" Get-Location Write-Host "Files in root:" From 01a860de683ad4b9f89a18d8a01b21e48ea29321 Mon Sep 17 00:00:00 2001 From: AxiomGraph <68183694+axiomgraph@users.noreply.github.com> Date: Mon, 18 May 2026 08:17:20 +0530 Subject: [PATCH 40/40] Update compression and release file handling in workflow --- .github/workflows/build-wangp-portable_python311_sage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wangp-portable_python311_sage.yml b/.github/workflows/build-wangp-portable_python311_sage.yml index 2f48edd75..9b71a9f44 100644 --- a/.github/workflows/build-wangp-portable_python311_sage.yml +++ b/.github/workflows/build-wangp-portable_python311_sage.yml @@ -126,7 +126,7 @@ jobs: } robocopy python_embedded WanGP-Portable\python_embedded /E /COPYALL if ($LASTEXITCODE -ge 8) { exit $LASTEXITCODE } - 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on "WanGP-Portable_Python311_Cu13_Sage.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" + 7z a -t7z -m0=lzma2 -mx=9 -md=512m -mfb=273 -ms=on -v2000m "WanGP-Portable_Python311_Cu13_Sage.7z" "WanGP-Portable\*" -xr!"__pycache__" -xr!"*.pyc" -xr!".gitignore" if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } # Create version-based tag @@ -162,7 +162,7 @@ jobs: uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.new_tag }} - files: WanGP-Portable_Python311_Cu13_Sage.7z + files: WanGP-Portable_Python311_Cu13_Sage.7z.* body: "For details, see the [README](https://github.com/deepbeepmeep/Wan2GP/blob/main/README.md)" fail_on_unmatched_files: false env: