mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
d1a2c4cd8c
* Implements rudimentary api * Fixes blocking in API * Adds UI to monorepo > src/frontend/ * Updates frontend/README * Reverts conda env name to `ldm` * Fixes environment yamls * CORS config for testing * Fixes LogViewer position * API WID * Adds actions to image viewer * Increases vite chunkSizeWarningLimit to 1500 * Implements init image * Implements state persistence in localStorage * Improve progress data handling * Final build * Fixes mimetypes error on windows * Adds error logging * Fixes bugged img2img strength component * Adds sourcemaps to dev build * Fixes missing key * Changes connection status indicator to text * Adds ability to serve other hosts than localhost * Adding Flask API server * Removes source maps from config * Fixes prop transfer * Add missing packages and add CORS support * Adding API doc * Remove defaults from openapi doc * Adds basic error handling for server config query * Mostly working socket.io implementation. * Fixes bug preventing mask upload * Fixes bug with sampler name not written to metadata * UI Overhaul, numerous fixes Co-authored-by: Kyle Schouviller <kyle0654@hotmail.com> Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
86 lines
2.1 KiB
Markdown
86 lines
2.1 KiB
Markdown
# Stable Diffusion Web UI
|
|
|
|
Demo at https://peaceful-otter-7a427f.netlify.app/ (not connected to back end)
|
|
|
|
much of this readme is just notes for myself during dev work
|
|
|
|
numpy rand: 0 to 4294967295
|
|
|
|
## Test and Build
|
|
|
|
from `frontend/`:
|
|
|
|
- `yarn dev` runs `tsc-watch`, which runs `vite build` on successful `tsc` transpilation
|
|
|
|
from `.`:
|
|
|
|
- `python backend/server.py` serves both frontend and backend at http://localhost:9090
|
|
|
|
## API
|
|
|
|
`backend/server.py` serves the UI and provides a [socket.io](https://github.com/socketio/socket.io) API via [flask-socketio](https://github.com/miguelgrinberg/flask-socketio).
|
|
|
|
### Server Listeners
|
|
|
|
The server listens for these socket.io events:
|
|
|
|
`cancel`
|
|
|
|
- Cancels in-progress image generation
|
|
- Returns ack only
|
|
|
|
`generateImage`
|
|
|
|
- Accepts object of image parameters
|
|
- Generates an image
|
|
- Returns ack only (image generation function sends progress and result via separate events)
|
|
|
|
`deleteImage`
|
|
|
|
- Accepts file path to image
|
|
- Deletes image
|
|
- Returns ack only
|
|
|
|
`deleteAllImages` WIP
|
|
|
|
- Deletes all images in `outputs/`
|
|
- Returns ack only
|
|
|
|
`requestAllImages`
|
|
|
|
- Returns array of all images in `outputs/`
|
|
|
|
`requestCapabilities` WIP
|
|
|
|
- Returns capabilities of server (torch device, GFPGAN and ESRGAN availability, ???)
|
|
|
|
`sendImage` WIP
|
|
|
|
- Accepts a File and attributes
|
|
- Saves image
|
|
- Used to save init images which are not generated images
|
|
|
|
### Server Emitters
|
|
|
|
`progress`
|
|
|
|
- Emitted during each step in generation
|
|
- Sends a number from 0 to 1 representing percentage of steps completed
|
|
|
|
`result` WIP
|
|
|
|
- Emitted when an image generation has completed
|
|
- Sends a object:
|
|
|
|
```
|
|
{
|
|
url: relative_file_path,
|
|
metadata: image_metadata_object
|
|
}
|
|
```
|
|
|
|
## TODO
|
|
|
|
- Search repo for "TODO"
|
|
- My one gripe with Chakra: no way to disable all animations right now and drop the dependence on `framer-motion`. I would prefer to save the ~30kb on bundle and have zero animations. This is on the Chakra roadmap. See https://github.com/chakra-ui/chakra-ui/pull/6368 for last discussion on this. Need to check in on this issue periodically.
|