2023-02-04 23:16:36 +00:00
# Development and Testing
## Contents
- [Development and Testing ](#development-and-testing )
- [Contents ](#contents )
2023-02-06 23:13:37 +00:00
- [API Development ](#api-development )
- [Style ](#style )
- [Models and Pipelines ](#models-and-pipelines )
- [GUI Development ](#gui-development )
- [Updating Github Pages ](#updating-github-pages )
2023-02-04 23:16:36 +00:00
- [Testing ](#testing )
- [Pre-Release Test Plan ](#pre-release-test-plan )
2023-02-05 23:40:23 +00:00
- [Known Issues ](#known-issues )
2023-02-04 23:16:36 +00:00
2023-02-06 23:13:37 +00:00
## API Development
2023-02-04 23:16:36 +00:00
- TODO: testing
- TODO: lint/style
2023-02-06 23:13:37 +00:00
### Style
- all logs must use `logger` from top of file
- every file should have a `logger = getLogger(__name__)` or equivalent before any real code
### 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
2023-02-04 23:16:36 +00:00
Run `make ci` to build the bundle.
2023-02-06 23:13:37 +00:00
### Updating Github Pages
2023-02-04 23:16:36 +00:00
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.
2023-02-14 05:09:34 +00:00
Issues:
- TODO
Merges:
- TODO
Testing:
2023-02-04 23:16:36 +00:00
- txt2img
- 256x256 with SD v1.5
2023-02-06 03:50:48 +00:00
- [ ] should fail: neon blobs
2023-02-04 23:16:36 +00:00
- 512x512 with SD v1.5
2023-02-14 05:09:34 +00:00
- DEIS Multi
- [ ] should work
2023-02-04 23:16:36 +00:00
- DPM Multi
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- Euler A
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-14 05:09:34 +00:00
- 512x512 with SD v2.1
- [ ] should work
2023-02-04 23:16:36 +00:00
- 768x768 with SD v2.1
2023-02-06 03:50:48 +00:00
- [ ] should work, given sufficient memory
2023-02-06 00:12:48 +00:00
- extra models
2023-02-14 05:09:34 +00:00
- 512x512 with Knollingcase
- [ ] should work
- 512x512 with OpenJourney
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-14 05:09:34 +00:00
- 256x256 with OpenJourney
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- img2img
- 256x256 input
2023-02-14 05:09:34 +00:00
- [ ] should fail: neon blobs
2023-02-04 23:16:36 +00:00
- 512x512 input
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- 1024x768 input
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- inpaint
- outpaint
2023-02-06 00:12:48 +00:00
- 0 all sides
2023-02-14 05:09:34 +00:00
- [ ] should work, run 1 tile
2023-02-04 23:16:36 +00:00
- 256 all sides
2023-02-14 05:09:34 +00:00
- [ ] should work, run 8 tiles
2023-02-04 23:16:36 +00:00
- 512 top and bottom, 0 left and right
2023-02-14 05:09:34 +00:00
- [ ] should work, run 3 tiles
2023-02-04 23:16:36 +00:00
- 512 left and right, 0 top and bottom
2023-02-14 05:09:34 +00:00
- [ ] should work, run 3 tiles
2023-02-04 23:16:36 +00:00
- upscale
- Real ESRGAN
2023-02-06 00:12:48 +00:00
- with CodeFormer
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-06 00:12:48 +00:00
- with GFPGAN
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- without face correction
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-06 00:12:48 +00:00
- using x2 model and x4 scale
2023-02-06 03:50:48 +00:00
- [ ] should fail: tiles
2023-02-06 00:12:48 +00:00
- using x4 model and x2 scale
2023-02-06 03:50:48 +00:00
- [ ] should fail: tiles
2023-02-06 00:12:48 +00:00
- using v3 model and x2 scale
2023-02-14 05:09:34 +00:00
- [ ] should work
2023-02-06 00:12:48 +00:00
- using v3 model and x4 scale
2023-02-14 05:09:34 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- Stable Diffusion
2023-02-06 00:12:48 +00:00
- using x2 scale
2023-02-06 03:50:48 +00:00
- [ ] should fail: tiles
2023-02-06 00:12:48 +00:00
- using x4 scale
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-06 00:12:48 +00:00
- with CodeFormer
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-06 00:12:48 +00:00
- with GFPGAN
2023-02-14 05:09:34 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- without face correction
2023-02-06 03:50:48 +00:00
- [ ] should work
2023-02-04 23:16:36 +00:00
- interactions
2023-02-06 00:12:48 +00:00
- generate a new image
2023-02-06 03:50:48 +00:00
- [ ] should request and then load an image from the server
2023-02-06 00:12:48 +00:00
- delete a pending image
2023-02-06 03:50:48 +00:00
- [ ] should remove a single image and leave the rest
2023-02-06 00:12:48 +00:00
- delete a finished image
2023-02-06 03:50:48 +00:00
- [ ] should remove a single image and leave the rest
2023-02-06 00:12:48 +00:00
- copy an image to img2img
2023-02-06 03:50:48 +00:00
- [ ] should switch to the img2img tab
- [ ] should populate the image source
- [ ] the generate button should be enabled
2023-02-06 00:12:48 +00:00
- copy an image to inpaint
2023-02-06 03:50:48 +00:00
- [ ] should switch to the inpaint tab
- [ ] should populate the image source
- [ ] the generate button should be enabled
2023-02-14 05:09:34 +00:00
- persist on refresh
- [ ] loading images
- [ ] switching tabs
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
2023-02-06 00:12:48 +00:00
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.
2023-02-05 23:40:23 +00:00
### Known Issues
2023-02-06 00:12:48 +00:00
- images of 256x256 or smaller will produce neon blobs
2023-02-05 23:40:23 +00:00
- inpaint does not work with LPW