-
-
Notifications
You must be signed in to change notification settings - Fork 265
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add request_id in params and filename (#285) * animatediff_output.py filname add request_id * Update animatediff_ui.py AnimateDiffProcess add request_id param * allow request_id empty ,and remove from webui * move request_id at last in init method * remove request_id from webui --------- Co-authored-by: zhangruicheng <zhangruicheng@migu.cn> * fix device * request id * add test * fix test * fix test * fix test * cheaper test * cheaper test * readme * run one test at one time * readme * use ubuntu 20.04 --------- Co-authored-by: zhangrc <zrc_java@163.com> Co-authored-by: zhangruicheng <zhangruicheng@migu.cn>
- Loading branch information
1 parent
df584be
commit 59e1726
Showing
6 changed files
with
195 additions
and
6 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
name: Run AnimateDiff generation with Motion LoRA & Prompt Travel on CPU | ||
|
||
on: | ||
push: {} # Remove the branch restriction to trigger the workflow for any branch | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Checkout A1111 | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: 'AUTOMATIC1111/stable-diffusion-webui' | ||
path: 'stable-diffusion-webui' | ||
- name: Checkout ControlNet | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: 'Mikubill/sd-webui-controlnet' | ||
path: 'stable-diffusion-webui/extensions/sd-webui-controlnet' | ||
- name: Checkout AnimateDiff | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: 'continue-revolution/sd-webui-animatediff' | ||
path: 'stable-diffusion-webui/extensions/sd-webui-animatediff' | ||
- name: Set up Python 3.11.4 | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.11.4 | ||
cache: pip | ||
cache-dependency-path: | | ||
**/requirements*txt | ||
launch.py | ||
- name: Install test dependencies | ||
run: | | ||
pip install wait-for-it | ||
pip install -r requirements-test.txt | ||
working-directory: stable-diffusion-webui | ||
env: | ||
PIP_DISABLE_PIP_VERSION_CHECK: "1" | ||
PIP_PROGRESS_BAR: "off" | ||
- name: Setup environment | ||
run: python launch.py --skip-torch-cuda-test --exit | ||
working-directory: stable-diffusion-webui | ||
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: Cache AnimateDiff models | ||
uses: actions/cache@v3 | ||
with: | ||
path: stable-diffusion-webui/extensions/sd-webui-animatediff/model/ | ||
key: animatediff-models-v1 | ||
- name: Cache LoRA models | ||
uses: actions/cache@v3 | ||
with: | ||
path: stable-diffusion-webui/models/Lora | ||
key: lora-models-v1 | ||
- name: Download AnimateDiff model for testing | ||
run: | | ||
if [ ! -f "extensions/sd-webui-animatediff/model/mm_sd_v15_v2.ckpt" ]; then | ||
curl -Lo extensions/sd-webui-animatediff/model/mm_sd_v15_v2.ckpt https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt?download=true | ||
fi | ||
working-directory: stable-diffusion-webui | ||
- name: Download LoRA model for testing | ||
run: | | ||
if [ ! -d "models/Lora" ]; then | ||
mkdir models/Lora | ||
fi | ||
if [ ! -f "models/Lora/yoimiya.safetensors" ]; then | ||
curl -Lo models/Lora/yoimiya.safetensors https://civitai.com/api/download/models/48374?type=Model&format=SafeTensor | ||
fi | ||
if [ ! -f "models/Lora/v2_lora_TiltDown.ckpt" ]; then | ||
curl -Lo models/Lora/v2_lora_TiltDown.ckpt https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltDown.ckpt?download=true | ||
fi | ||
working-directory: stable-diffusion-webui | ||
- 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 | ||
--use-cpu all | ||
--api-server-stop | ||
2>&1 | tee output.txt & | ||
working-directory: stable-diffusion-webui | ||
- name: Run tests | ||
run: | | ||
wait-for-it --service 127.0.0.1:7860 -t 600 | ||
python -m pytest -vv --junitxml=test/results.xml --cov ./extensions/sd-webui-animatediff --cov-report=xml --verify-base-url ./extensions/sd-webui-animatediff/tests | ||
working-directory: stable-diffusion-webui | ||
- name: Kill test server | ||
if: always() | ||
run: curl -vv -XPOST http://127.0.0.1:7860/sdapi/v1/server-stop && sleep 10 | ||
- name: Show coverage | ||
run: | | ||
python -m coverage combine .coverage* | ||
python -m coverage report -i | ||
python -m coverage html -i | ||
working-directory: stable-diffusion-webui | ||
- name: Upload main app output | ||
uses: actions/upload-artifact@v3 | ||
if: always() | ||
with: | ||
name: output | ||
path: output.txt | ||
- name: Upload coverage HTML | ||
uses: actions/upload-artifact@v3 | ||
if: always() | ||
with: | ||
name: htmlcov | ||
path: htmlcov | ||
|
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
|
||
import pytest | ||
import requests | ||
|
||
|
||
@pytest.fixture() | ||
def url_txt2img(base_url): | ||
return f"{base_url}/sdapi/v1/txt2img" | ||
|
||
|
||
@pytest.fixture() | ||
def error_txt2img_request(): | ||
return { | ||
"prompt": '1girl, yoimiya (genshin impact), origen, line, comet, wink, Masterpiece, BestQuality. UltraDetailed, <lora:yoimiya:0.8>, <lora:v2_lora_TiltDown:0.8>\n0: closed mouth\n8: open mouth,', | ||
"negative_prompt": "(sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality:2.0), (low quality:2.0), (blurry:2.0), horror, geometry, bad_prompt_v2, (bad hands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), crown braid, ((2girl)), (deformed fingers:1.2), (long fingers:1.2),succubus wings,horn,succubus horn,succubus hairstyle, (bad-artist-anime), bad-artist, bad hand, grayscale, skin spots, acnes, skin blemishes", | ||
"batch_size": 1, | ||
"steps": 1, | ||
"cfg_scale": 7, | ||
"alwayson_scripts": { | ||
'AnimateDiff': { | ||
'args': [{ | ||
'enable': True, | ||
'batch_size': 1, | ||
'video_length': 2, | ||
}] | ||
} | ||
} | ||
} | ||
|
||
|
||
@pytest.fixture() | ||
def correct_txt2img_request(): | ||
return { | ||
"prompt": '1girl, yoimiya (genshin impact), origen, line, comet, wink, Masterpiece, BestQuality. UltraDetailed, <lora:yoimiya:0.8>, <lora:v2_lora_TiltDown:0.8>\n0: closed mouth\n1: open mouth,', | ||
"negative_prompt": "(sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality:2.0), (low quality:2.0), (blurry:2.0), horror, geometry, bad_prompt_v2, (bad hands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), crown braid, ((2girl)), (deformed fingers:1.2), (long fingers:1.2),succubus wings,horn,succubus horn,succubus hairstyle, (bad-artist-anime), bad-artist, bad hand, grayscale, skin spots, acnes, skin blemishes", | ||
"batch_size": 1, | ||
"steps": 1, | ||
"cfg_scale": 7, | ||
"alwayson_scripts": { | ||
'AnimateDiff': { | ||
'args': [{ | ||
'enable': True, | ||
'batch_size': 1, | ||
'video_length': 2, | ||
}] | ||
} | ||
} | ||
} | ||
|
||
|
||
def test_txt2img_simple_performed(url_txt2img, error_txt2img_request, correct_txt2img_request): | ||
''' | ||
This test checks the following: | ||
- simple t2v generation | ||
- prompt travel | ||
- infinite context generator | ||
- motion lora | ||
- error recovery | ||
''' | ||
assert requests.post(url_txt2img, json=error_txt2img_request).status_code == 500 | ||
response = requests.post(url_txt2img, json=correct_txt2img_request) | ||
assert response.status_code == 200 | ||
assert isinstance(response.json()['images'][0], str) |