diff --git a/.github/workflows/release-part-2.yml b/.github/workflows/release-part-2.yml
index b89d28bc08..a2de1924e4 100644
--- a/.github/workflows/release-part-2.yml
+++ b/.github/workflows/release-part-2.yml
@@ -7,6 +7,12 @@ on:
     branches:
       - main
 
+  workflow_dispatch:
+    inputs:
+      version:
+        required: true
+        type: string
+
 env:
   GITHUB_TOKEN: ${{ secrets.AUTORELEASE_BOT_PAT }}
 
@@ -29,7 +35,7 @@ jobs:
 
   publish_release:
     # run this job if a PR was merged from an autorelease branch into main
-    if: startsWith(github.head_ref, 'autorelease') && github.event.pull_request.merged == true
+    if: ${{ ! github.head_ref || (startsWith(github.head_ref, 'autorelease') && github.event.pull_request.merged == true) }}
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
@@ -38,8 +44,13 @@ jobs:
         run: pip install twine
 
       - name: Extract version from autorelease branch name
+        if: ${{ github.head_ref }}
         run: echo "VERSION=$(echo ${{ github.head_ref }} | cut -c 13-)" >> $GITHUB_ENV
 
+      - name: Get version from manual trigger input
+        if: ${{ ! github.head_ref }}
+        run: echo "VERSION=${{ inputs.version }}" >> $GITHUB_ENV
+
       - name: Find actions run for the $VERSION tag
         run: |
           echo "RUN_ID=$( \
@@ -50,50 +61,50 @@ jobs:
               --json databaseId \
               --jq .[].databaseId)" >> $GITHUB_ENV
 
-      - name: Download release artifacts
-        run: |
-          mkdir artifacts
-          # this will download a folder containing each artifact
-          gh run download $RUN_ID --dir artifacts --pattern "Wheel for *"
-          # move the artifacts out of the folders
-          mv artifacts/*/* artifacts
-          rm -rf artifacts/Wheel*
-          # verify that all 6 wheels are there
-          if [ `find artifacts/* | wc -l` -ne 6 ]; then exit 1; fi
-
-          # download each artifact separately so that the command will fail if any is missing
-          for artifact in Workbench-Windows-binary \
-                          Workbench-macOS-binary \
-                          InVEST-sample-data \
-                          InVEST-user-guide \
-                          "Source distribution"
-          do
-            gh run download $RUN_ID --dir artifacts --name "$artifact"
-          done
-
-      - name: Create Github release
-        run: |
-          # Copy the history notes for this version into the release message
-          echo "This release includes the following fixes and features:" > notes.rst
-          echo "" >> notes.rst
-          sed -n "/$VERSION/,/^$/p" HISTORY.rst | tail -n +3 >> notes.rst
-          gh release create $VERSION \
-            --verify-tag \
-            --title $VERSION \
-            --notes-file notes.rst \
-            artifacts/*
-
-      - name: Create a PyPI release
-        # this is the only step that can't be rolled back
-        run: |
-          twine upload \
-            --username="__token__" \
-            --password=${{ secrets.PYPI_NATCAP_INVEST_TOKEN }} \
-            artifacts/natcap.invest*
+      # - name: Download release artifacts
+      #   run: |
+      #     mkdir artifacts
+      #     # this will download a folder containing each artifact
+      #     gh run download $RUN_ID --dir artifacts --pattern "Wheel for *"
+      #     # move the artifacts out of the folders
+      #     mv artifacts/*/* artifacts
+      #     rm -rf artifacts/Wheel*
+      #     # verify that all 6 wheels are there
+      #     if [ `find artifacts/* | wc -l` -ne 6 ]; then exit 1; fi
 
-      - name: Roll back on failure
-        if: failure()
-        uses: ./.github/actions/rollback_release
-        with:
-          VERSION: ${{ env.VERSION }}
-          GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
+      #     # download each artifact separately so that the command will fail if any is missing
+      #     for artifact in Workbench-Windows-binary \
+      #                     Workbench-macOS-binary \
+      #                     InVEST-sample-data \
+      #                     InVEST-user-guide \
+      #                     "Source distribution"
+      #     do
+      #       gh run download $RUN_ID --dir artifacts --name "$artifact"
+      #     done
+
+      # - name: Create Github release
+      #   run: |
+      #     # Copy the history notes for this version into the release message
+      #     echo "This release includes the following fixes and features:" > notes.rst
+      #     echo "" >> notes.rst
+      #     sed -n "/$VERSION/,/^$/p" HISTORY.rst | tail -n +3 >> notes.rst
+      #     gh release create $VERSION \
+      #       --verify-tag \
+      #       --title $VERSION \
+      #       --notes-file notes.rst \
+      #       artifacts/*
+
+      # - name: Create a PyPI release
+      #   # this is the only step that can't be rolled back
+      #   run: |
+      #     twine upload \
+      #       --username="__token__" \
+      #       --password=${{ secrets.PYPI_NATCAP_INVEST_TOKEN }} \
+      #       artifacts/natcap.invest*
+
+      # - name: Roll back on failure
+      #   if: failure()
+      #   uses: ./.github/actions/rollback_release
+      #   with:
+      #     VERSION: ${{ env.VERSION }}
+      #     GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}