Merge remote-tracking branch 'reforge/main' into reforge #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
- push | |
- pull_request | |
env: | |
FORGE_CQ_TEST: "True" | |
jobs: | |
test: | |
name: tests on CPU | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.10.6 | |
cache: pip | |
cache-dependency-path: | | |
**/requirements*txt | |
launch.py | |
- name: Cache models | |
id: cache-models | |
uses: actions/cache@v4 | |
with: | |
path: models | |
key: "2023-12-30" | |
- name: Install test dependencies | |
run: pip install wait-for-it -r requirements-test.txt | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: "1" | |
PIP_PROGRESS_BAR: "off" | |
- name: Setup environment | |
run: python launch.py --skip-torch-cuda-test --exit | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: "1" | |
PIP_PROGRESS_BAR: "off" | |
TORCH_INDEX_URL: https://download.pytorch.org/whl/cpu | |
WEBUI_LAUNCH_LIVE_OUTPUT: "1" | |
PYTHONUNBUFFERED: "1" | |
- name: Print installed packages | |
run: pip freeze | |
- name: Download models | |
run: | | |
declare -a urls=( | |
"https://huggingface.co/lllyasviel/fav_models/resolve/main/fav/realisticVisionV51_v51VAE.safetensors" | |
) | |
for url in "${urls[@]}"; do | |
filename="models/Stable-diffusion/${url##*/}" # Extracts the last part of the URL | |
if [ ! -f "$filename" ]; then | |
curl -Lo "$filename" "$url" | |
fi | |
done | |
# - name: Download ControlNet models | |
# run: | | |
# declare -a urls=( | |
# "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth" | |
# ) | |
# for url in "${urls[@]}"; do | |
# filename="models/ControlNet/${url##*/}" # Extracts the last part of the URL | |
# if [ ! -f "$filename" ]; then | |
# curl -Lo "$filename" "$url" | |
# fi | |
# done | |
- name: Start test server | |
run: > | |
python -m coverage run | |
--data-file=.coverage.server | |
launch.py | |
--skip-prepare-environment | |
--skip-torch-cuda-test | |
--test-server | |
--do-not-download-clip | |
--no-half | |
--disable-opt-split-attention | |
--always-cpu | |
--api-server-stop | |
--ckpt models/Stable-diffusion/realisticVisionV51_v51VAE.safetensors | |
2>&1 | tee output.txt & | |
- name: Run tests | |
run: | | |
wait-for-it --service 127.0.0.1:7860 -t 20 | |
python -m pytest -vv --junitxml=test/results.xml --cov . --cov-report=xml --verify-base-url test | |
# TODO(huchenlei): Enable ControlNet tests. Currently it is too slow to run these tests on CPU with | |
# real SD model. We need to find a way to load empty SD model. | |
# - name: Run ControlNet tests | |
# run: > | |
# python -m pytest | |
# --junitxml=test/results.xml | |
# --cov ./extensions-builtin/sd_forge_controlnet | |
# --cov-report=xml | |
# --verify-base-url | |
# ./extensions-builtin/sd_forge_controlnet/tests | |
- name: Kill test server | |
if: always() | |
run: curl -vv -XPOST http://127.0.0.1:7860/sdapi/v1/server-stop && sleep 10 | |
- name: Upload main app output | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: output | |
path: output.txt |