name: "Windows Release cu118" on: workflow_dispatch: # push: # branches: # - master jobs: build_dependencies: env: # you need at least cuda 5.0 for some of the stuff compiled here. TORCH_CUDA_ARCH_LIST: "5.0+PTX 6.0 6.1 7.0 7.5 8.0 8.6 8.9" FORCE_CUDA: 1 MAX_JOBS: 1 # will crash otherwise DISTUTILS_USE_SDK: 1 # otherwise distutils will complain on windows about multiple versions of msvc XFORMERS_BUILD_TYPE: "Release" runs-on: windows-latest steps: - name: Cache Built Dependencies uses: actions/cache@v3 id: cache-cu118_python_stuff with: path: cu118_python_deps.tar key: ${{ runner.os }}-build-cu118 - if: ${{ steps.cache-cu118_python_stuff.cache-hit != 'true' }} uses: actions/checkout@v3 - if: ${{ steps.cache-cu118_python_stuff.cache-hit != 'true' }} uses: actions/setup-python@v4 with: python-version: '3.10.9' - if: ${{ steps.cache-cu118_python_stuff.cache-hit != 'true' }} uses: comfyanonymous/cuda-toolkit@test id: cuda-toolkit with: cuda: '11.8.0' # copied from xformers github - name: Setup MSVC uses: ilammy/msvc-dev-cmd@v1 - name: Configure Pagefile # windows runners will OOM with many CUDA architectures # we cheat here with a page file uses: al-cheb/configure-pagefile-action@v1.3 with: minimum-size: 2GB # really unfortunate: https://github.com/ilammy/msvc-dev-cmd#name-conflicts-with-shell-bash - name: Remove link.exe shell: bash run: rm /usr/bin/link - if: ${{ steps.cache-cu118_python_stuff.cache-hit != 'true' }} shell: bash run: | python -m pip wheel --no-cache-dir torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 -r requirements.txt pygit2 -w ./temp_wheel_dir python -m pip install --no-cache-dir ./temp_wheel_dir/* echo installed basic git clone --recurse-submodules https://github.com/facebookresearch/xformers.git cd xformers python -m pip install --no-cache-dir wheel setuptools twine echo building xformers python setup.py bdist_wheel -d ../temp_wheel_dir/ cd .. rm -rf xformers ls -lah temp_wheel_dir mv temp_wheel_dir cu118_python_deps tar cf cu118_python_deps.tar cu118_python_deps - uses: actions/upload-artifact@v3 with: name: cu118_python_deps path: cu118_python_deps.tar package_comfyui: needs: build_dependencies permissions: contents: "write" packages: "write" pull-requests: "read" runs-on: windows-latest steps: - uses: actions/download-artifact@v3 with: name: cu118_python_deps - shell: bash run: | mv cu118_python_deps.tar ../ cd .. tar xf cu118_python_deps.tar pwd ls - uses: actions/checkout@v3 with: fetch-depth: 0 - shell: bash run: | cd .. cp -r ComfyUI ComfyUI_copy curl https://www.python.org/ftp/python/3.10.9/python-3.10.9-embed-amd64.zip -o python_embeded.zip unzip python_embeded.zip -d python_embeded cd python_embeded echo 'import site' >> ./python310._pth curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ./python.exe get-pip.py ./python.exe -s -m pip install ../cu118_python_deps/* sed -i '1i../ComfyUI' ./python310._pth cd .. mkdir ComfyUI_windows_portable mv python_embeded ComfyUI_windows_portable mv ComfyUI_copy ComfyUI_windows_portable/ComfyUI cd ComfyUI_windows_portable mkdir update cp -r ComfyUI/.ci/update_windows/* ./update/ cp -r ComfyUI/.ci/update_windows_cu118/* ./update/ cp -r ComfyUI/.ci/windows_base_files/* ./ cd .. "C:\Program Files\7-Zip\7z.exe" a -t7z -m0=lzma -mx=8 -mfb=64 -md=32m -ms=on ComfyUI_windows_portable.7z ComfyUI_windows_portable mv ComfyUI_windows_portable.7z ComfyUI/ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z cd ComfyUI_windows_portable python_embeded/python.exe -s ComfyUI/main.py --quick-test-for-ci --cpu ls - name: Upload binaries to release uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z tag: "latest" overwrite: true