4.6 KiB
Development and Testing
Contents
API Development
- TODO: testing
- TODO: lint/style
Style
- all logs must use
logger
from top of file- every file should have a
logger = getLogger(__name__)
or equivalent before any real code
- every file should have a
Models and Pipelines
Loading models and pipelines can be expensive. They should be converted and exported once, then cached per-process whenever reasonably possible.
Most pipeline stages will have a corresponding load function somewhere, like upscale_stable_diffusion
and load_stable_diffusion
. The load function should compare its parameters and reuse the existing pipeline when
that is possible without causing memory access errors. Most logging from the load function should be debug
level.
GUI Development
Run make ci
to build the bundle.
Updating Github Pages
Checkout the gh-pages
branch and run the copy-bundle.sh
script, assuming you have the project
checked out to a directory named onnx-web
.
You can also clone the GH pages branch into its own directory to avoid switching between them.
Testing
Pre-Release Test Plan
This is the test plan for manual pre-release testing and should exercise all of the major features.
Issues:
- TODO
Merges:
- TODO
Testing:
- txt2img
- 256x256 with SD v1.5
- should fail: neon blobs
- 512x512 with SD v1.5
- DEIS Multi
- should work
- DPM Multi
- should work
- Euler A
- should work
- DEIS Multi
- 512x512 with SD v2.1
- should work
- 768x768 with SD v2.1
- should work, given sufficient memory
- extra models
- 512x512 with Knollingcase
- should work
- 512x512 with OpenJourney
- should work
- 256x256 with OpenJourney
- should work
- 512x512 with Knollingcase
- 256x256 with SD v1.5
- img2img
- 256x256 input
- should fail: neon blobs
- 512x512 input
- should work
- 1024x768 input
- should work
- 256x256 input
- inpaint
- outpaint
- 0 all sides
- should work, run 1 tile
- 256 all sides
- should work, run 8 tiles
- 512 top and bottom, 0 left and right
- should work, run 3 tiles
- 512 left and right, 0 top and bottom
- should work, run 3 tiles
- 0 all sides
- outpaint
- upscale
- Real ESRGAN
- with CodeFormer
- should work
- with GFPGAN
- should work
- without face correction
- should work
- using x2 model and x4 scale
- should fail: tiles
- using x4 model and x2 scale
- should fail: tiles
- using v3 model and x2 scale
- should work
- using v3 model and x4 scale
- should work
- with CodeFormer
- Stable Diffusion
- using x2 scale
- should fail: tiles
- using x4 scale
- should work
- with CodeFormer
- should work
- with GFPGAN
- should work
- without face correction
- should work
- using x2 scale
- Real ESRGAN
- interactions
- generate a new image
- should request and then load an image from the server
- delete a pending image
- should remove a single image and leave the rest
- delete a finished image
- should remove a single image and leave the rest
- copy an image to img2img
- should switch to the img2img tab
- should populate the image source
- the generate button should be enabled
- copy an image to inpaint
- should switch to the inpaint tab
- should populate the image source
- the generate button should be enabled
- persist on refresh
- loading images
- switching tabs
- generate a new image
Release:
- check and fix lint
- update package versions and stage files
- run
commit-and-tag-version --sign --git-tag-fallback --commit-all --release-as=minor
to make VERSION - make sure packages and images have been built
- update GH pages bundle and default version
- post release on GH
- make follow up tickets
- close milestone and checklist
Repeat with and without LPW enabled. Feature combinations marked should work
must produce a valid image for the
prompt, within a reasonable margin of creative freedom. Feature combinations marked should fail
are known to produce
neon blobs, out of place tiles, and errors.
Known Issues
- images of 256x256 or smaller will produce neon blobs
- inpaint does not work with LPW