Lincoln Stein
887576d217
add directory scanning for loras, controlnets and textual_inversions
2023-06-08 23:11:53 -04:00
Lincoln Stein
6652f3405b
merge with main
2023-06-08 21:08:43 -04:00
Lincoln Stein
3d13167d32
Merge branch 'main' into lstein/fix-logger-reconfiguration
2023-06-08 13:41:24 -07:00
Lincoln Stein
f2bb507ebb
allow logger to be reconfigured after startup
2023-06-08 09:23:11 -04:00
Lincoln Stein
2a6d11e645
create databases directory on startup
2023-06-08 07:17:54 -04:00
Lincoln Stein
01f46d3c7d
Merge branch 'main' into lstein/fix-logger-reconfiguration
2023-06-07 19:50:44 -07:00
blessedcoolant
68405910ba
Upgrade to Diffusers 0.17.0
2023-06-08 04:42:52 +12:00
Lincoln Stein
ae9d0c6c1b
fix logger behavior so that it is initialized after command line parsed
2023-06-06 23:19:10 -04:00
Lincoln Stein
04f9757f8d
prevent crash when trying to calculate size of missing safety_checker
...
- Also fixed up order in which logger is created in invokeai-web
so that handlers are installed after command-line options are
parsed (and not before!)
2023-06-06 22:57:49 -04:00
Lincoln Stein
1f9e1eb964
merge with main
2023-06-06 22:18:41 -04:00
Lincoln Stein
90333c0074
merge with main
2023-06-05 22:03:44 -04:00
Lincoln Stein
9e31b1f387
Merge branch 'main' into lstein/config-management-fixes
2023-06-04 18:17:43 -04:00
Lincoln Stein
5f6f38074d
merge with main
2023-06-04 13:59:31 -04:00
blessedcoolant
fb06f5b892
Merge branch 'main' into feat_compel_longprompts_and_concat
2023-06-05 04:34:39 +12:00
Damian Stewart
cdcfda164d
enable long prompts, upgrade compel to enable .and() (concatenating prompts)
2023-06-04 15:30:54 +02:00
psychedelicious
6bbb5f061a
feat(nodes): update controlnet names/descriptions
2023-06-04 22:34:58 +10:00
psychedelicious
d6a959b000
feat(nodes): tidy controlnet processor nodes & improve descriptions
2023-06-04 22:34:58 +10:00
Lincoln Stein
31e97ead2a
move invokeai.db to ~/invokeai/databases
...
- The invokeai.db database file has now been moved into
`INVOKEAIROOT/databases`. Using plural here for possible
future with more than one database file.
- Removed a few dangling debug messages that appeared during
testing.
- Rebuilt frontend to test web.
2023-06-03 20:25:34 -04:00
Lincoln Stein
0b49995659
merge with main
2023-06-03 20:06:27 -04:00
Lincoln Stein
713fb061e8
Merge branch 'main' into release/make-web-dist-startable
2023-06-02 23:19:33 -04:00
Lincoln Stein
ff63433591
Merge branch 'main' into lstein/config-management-fixes
2023-06-02 22:56:43 -04:00
Lincoln Stein
31281d7181
Merge branch 'main' into lstein/logging-improvements
2023-06-02 22:56:13 -04:00
Lincoln Stein
98773b20ac
merge with main
2023-06-01 18:09:49 -04:00
Sergey Borisov
b47786e846
First working TI draft
2023-05-31 02:12:27 +03:00
Lincoln Stein
1632ac6b9f
add controlnet model downloading
2023-05-30 13:49:43 -04:00
psychedelicious
a9a2bd90c2
fix(nodes): set min and max for l2l strength
2023-05-30 09:06:13 -04:00
psychedelicious
47ca71a7eb
fix(nodes): set cfg_scale min to 1 in latents
2023-05-30 09:06:13 -04:00
Lincoln Stein
c9ee42450e
added controlnet models to frontend; backend needs to be done
2023-05-30 00:38:37 -04:00
Lincoln Stein
10fe31c2a1
Merge branch 'main' into lstein/config-management-fixes
2023-05-29 21:03:03 -04:00
Sergey Borisov
420a76ecdd
Add lora loader node
2023-05-30 02:12:33 +03:00
Sergey Borisov
79de9047b5
First working lora implementation
2023-05-30 01:11:00 +03:00
Lincoln Stein
dc54cbb1fc
Merge branch 'main' into release/make-web-dist-startable
2023-05-29 14:16:10 -04:00
psychedelicious
bbb4e8f5ef
feat(nodes): add resize image and scale image nodes
2023-05-29 09:07:46 -04:00
psychedelicious
3e3dd39ae4
fix(nodes): fix images service update() for is_intermediate
2023-05-28 20:19:56 -04:00
psychedelicious
f31e62afad
feat(nodes): make list images route use offset pagination
...
Because we dynamically insert images into the DB and UI's images state, `page`/`per_page` pagination makes loading the images awkward.
Using `offset`/`limit` pagination lets us query for images with an offset equal to the number of images already loaded (which match the query parameters).
The result is that we always get the correct next page of images when loading more.
2023-05-28 20:19:56 -04:00
psychedelicious
08a14ee6d5
fix(nodes): fix conflicts with controlnet
2023-05-28 20:19:56 -04:00
psychedelicious
160267c71a
feat(nodes): refactor image types
...
- Remove `ImageType` entirely, it is confusing
- Create `ResourceOrigin`, may be `internal` or `external`
- Revamp `ImageCategory`, may be `general`, `mask`, `control`, `user`, `other`. Expect to add more as time goes on
- Update images `list` route to accept `include_categories` OR `exclude_categories` query parameters to afford finer-grained querying. All services are updated to accomodate this change.
The new setup should account for our types of images, including the combinations we couldn't really handle until now:
- Canvas init and masks
- Canvas when saved-to-gallery or merged
2023-05-28 20:19:56 -04:00
psychedelicious
fd47e70c92
feat(nodes): use higher precision timestamps in db
2023-05-28 20:19:56 -04:00
psychedelicious
9317b42e5f
feat(nodes, ui): wip image types
2023-05-28 20:19:56 -04:00
psychedelicious
3ea5e78322
fix(nodes): fix list images route param descriptions
2023-05-28 20:19:56 -04:00
psychedelicious
ee0225f4ba
fix(nodes): handle intermediates during images.get_many()
2023-05-28 20:19:56 -04:00
psychedelicious
33a0af4637
feat(nodes): add nameservice
...
Currenly only used to make names for images, but when latents, conditioning, etc are managed in DB, will do the same for them.
Intended to eventually support custom naming schemes.
2023-05-28 20:19:56 -04:00
Lincoln Stein
d37b08a7dd
Merge branch 'main' into release/make-web-dist-startable
2023-05-28 19:46:09 -04:00
user1
9a796364da
Fixed controlnet preprocessors and controlnet handling in TextToLatents to work with revised Image services.
2023-05-26 21:44:00 -04:00
user1
d9b1e4a98c
Added nodes for float params: ParamFloatInvocation and FloatCollectionOutput. Also added FloatOutput.
2023-05-26 21:44:00 -04:00
user1
a4dec8c1d6
Fixed bug where MediapipFaceProcessorInvocation was ignoring max_faces and min_confidence params.
2023-05-26 21:44:00 -04:00
user1
8960ceb98b
Added Mediapipe image processor for use as ControlNet preprocessor.
...
Also hacked in ability to specify HF subfolder when loading ControlNet models from string.
2023-05-26 21:44:00 -04:00
psychedelicious
be79d088c0
fix(nodes): controlnet input accepts list or single controlnet
2023-05-26 21:44:00 -04:00
psychedelicious
009407ea3f
fix(ui): fix node ui type hints
2023-05-26 21:44:00 -04:00
user1
324e9eb74b
Extended node-based ControlNet support to LatentsToLatentsInvocation.
2023-05-26 21:44:00 -04:00
user1
56cff40362
Cleaning up after ControlNet refactor in TextToLatentsInvocation
2023-05-26 21:44:00 -04:00
user1
2ba40c5e52
Refactored most of controlnet code into its own method to declutter TextToLatents.invoke(), and make upcoming integration with LatentsToLatents easier.
2023-05-26 21:44:00 -04:00
user1
3ab147204c
Fix to work with current stable release of controlnet_aux (v0.0.3). Turned of pre-processor params that were added post v0.0.3. Also change defaults for shuffle.
2023-05-26 21:44:00 -04:00
user1
e4c89cba9c
Switched CotrolNet node modelname input from free text to default list of popular ControlNet model names.
2023-05-26 21:44:00 -04:00
user1
322ea84c4e
Commented out ZoeDetector. Will re-instate once there's a controlnet-aux release that supports it.
2023-05-26 21:44:00 -04:00
user1
f2b41c60ff
Cleaning up prior to submitting ControlNet PR. Mostly turning off diagnostic printing. Also fixed error when there is no controlnet input.
2023-05-26 21:44:00 -04:00
user1
754acec92f
Added support for specifying which step iteration to start using
...
each ControlNet, and which step to end using each controlnet (specified as fraction of total steps)
2023-05-26 21:44:00 -04:00
user1
11fc7e40a5
Refactored ControNet support to consolidate multiple parameters into data struct. Also redid how multiple controlnets are handled.
2023-05-26 21:44:00 -04:00
user1
d15bb88eb2
Removed last bits of dtype and and device hardwiring from controlnet section
2023-05-26 21:44:00 -04:00
user1
70ba36eefc
Cleaning up mistakes after rebase.
2023-05-26 21:44:00 -04:00
user1
7e70391c2b
Cleaning up TextToLatent arg testing
2023-05-26 21:44:00 -04:00
user1
e2a94be336
Added resizing of controlnet image based on noise latent. Fixes a tensor mismatch issue.
2023-05-26 21:44:00 -04:00
user1
63a86eefb4
Refactored controlnet nodes: split out controlnet stuff into separate node, stripped controlnet stuff form image processing/analysis nodes.
2023-05-26 21:44:00 -04:00
user1
b0727b9d47
Prep for splitting pre-processor and controlnet nodes
2023-05-26 21:44:00 -04:00
user1
d96e727dd5
Added more preprocessor nodes for:
...
MidasDepth
ZoeDepth
MLSD
NormalBae
Pidi
LineartAnime
ContentShuffle
Removed pil_output options, ControlNet preprocessors should always output as PIL. Removed diagnostics and other general cleanup.
2023-05-26 21:44:00 -04:00
user1
fe480886dc
changes to base class for controlnet nodes
2023-05-26 21:44:00 -04:00
user1
8031d1827b
Refactored controlnet node to output ControlField that bundles control info.
2023-05-26 21:44:00 -04:00
user1
b5acdb322d
Switching to ControlField for output from controlnet nodes.
2023-05-26 21:44:00 -04:00
user1
a4d1fe8819
Initial port of controlnet node support from generator-based TextToImageInvocation node to latent-based TextToLatentsInvocation node
2023-05-26 21:44:00 -04:00
user1
10b7a58887
Added first controlnet preprocessor node for canny edge detection.
2023-05-26 21:44:00 -04:00
user1
aaa093bef1
Fixed use of ControlNet control_weight parameter
2023-05-26 21:44:00 -04:00
user1
bb96543d66
Added support for using multiple control nets. Unfortunately this breaks direct usage of Control node output port ==> TextToLatent control input port -- passing through a Collect node is now required. Working on fixing this...
2023-05-26 21:44:00 -04:00
user1
a2a2cfa765
Added resizing of controlnet image based on noise latent. Fixes a tensor mismatch issue.
2023-05-26 21:44:00 -04:00
user1
18e6a2b410
Refactored controlnet nodes: split out controlnet stuff into separate node, stripped controlnet stuff form image processing/analysis nodes.
2023-05-26 21:44:00 -04:00
user1
db27263bc2
Prep for splitting pre-processor and controlnet nodes
2023-05-26 21:44:00 -04:00
user1
0e027ec3ef
Added more preprocessor nodes for:
...
MidasDepth
ZoeDepth
MLSD
NormalBae
Pidi
LineartAnime
ContentShuffle
Removed pil_output options, ControlNet preprocessors should always output as PIL. Removed diagnostics and other general cleanup.
2023-05-26 21:44:00 -04:00
user1
5acbbeecaa
Added HED, LineArt, and OpenPose ControlNet nodes
2023-05-26 21:44:00 -04:00
user1
6ef2168b67
changes to base class for controlnet nodes
2023-05-26 21:44:00 -04:00
user1
6d958a214c
Refactored ControlNet nodes so they subclass from PreprocessedControlInvocation, and only need to override run_processor(image) (instead of reimplementing invoke())
2023-05-26 21:44:00 -04:00
user1
4ae4bf4ff9
Resolving conflicts in rebase to origin/main
2023-05-26 21:44:00 -04:00
user1
fdef53b2de
Switching to ControlField for output from controlnet nodes.
2023-05-26 21:44:00 -04:00
user1
11bd038b9d
Added first controlnet preprocessor node for canny edge detection.
2023-05-26 21:44:00 -04:00
user1
c4277b0662
Moved to controlnet_aux v0.0.4, reinstated Zoe controlnet preprocessor. Also in pyproject.toml had to specify downgrade of timm to 0.6.13 _after_ controlnet-aux installs timm >= 0.9.2, because timm >0.6.13 breaks Zoe preprocessor.
2023-05-26 21:44:00 -04:00
psychedelicious
020f3ccf07
fix(nodes): controlnet input accepts list or single controlnet
2023-05-26 21:44:00 -04:00
psychedelicious
7467fa5e57
fix(ui): fix node ui type hints
2023-05-26 21:44:00 -04:00
user1
dcebd71381
Extended node-based ControlNet support to LatentsToLatentsInvocation.
2023-05-26 21:44:00 -04:00
user1
d855a65e73
Cleaning up after ControlNet refactor in TextToLatentsInvocation
2023-05-26 21:44:00 -04:00
user1
a9007c7e0f
Refactored most of controlnet code into its own method to declutter TextToLatents.invoke(), and make upcoming integration with LatentsToLatents easier.
2023-05-26 21:44:00 -04:00
user1
af60304f97
Fix to work with current stable release of controlnet_aux (v0.0.3). Turned of pre-processor params that were added post v0.0.3. Also change defaults for shuffle.
2023-05-26 21:44:00 -04:00
user1
6de241eead
Switched CotrolNet node modelname input from free text to default list of popular ControlNet model names.
2023-05-26 21:44:00 -04:00
user1
51032dc0b2
Commented out ZoeDetector. Will re-instate once there's a controlnet-aux release that supports it.
2023-05-26 21:44:00 -04:00
user1
297931f5d9
Cleaning up prior to submitting ControlNet PR. Mostly turning off diagnostic printing. Also fixed error when there is no controlnet input.
2023-05-26 21:44:00 -04:00
user1
f613c073c1
Added support for specifying which step iteration to start using
...
each ControlNet, and which step to end using each controlnet (specified as fraction of total steps)
2023-05-26 21:44:00 -04:00
user1
63d248622c
Refactored ControNet support to consolidate multiple parameters into data struct. Also redid how multiple controlnets are handled.
2023-05-26 21:44:00 -04:00
user1
48485fe92f
Removed last bits of dtype and and device hardwiring from controlnet section
2023-05-26 21:44:00 -04:00
user1
07726af703
Cleaning up mistakes after rebase.
2023-05-26 21:44:00 -04:00
user1
ad1004b485
Cleaning up TextToLatent arg testing
2023-05-26 21:44:00 -04:00
user1
0096fb2790
Added resizing of controlnet image based on noise latent. Fixes a tensor mismatch issue.
2023-05-26 21:44:00 -04:00
user1
9c8c2e49d6
Refactored controlnet nodes: split out controlnet stuff into separate node, stripped controlnet stuff form image processing/analysis nodes.
2023-05-26 21:44:00 -04:00
user1
2005a96847
Prep for splitting pre-processor and controlnet nodes
2023-05-26 21:44:00 -04:00
user1
00a8d60c1b
Added more preprocessor nodes for:
...
MidasDepth
ZoeDepth
MLSD
NormalBae
Pidi
LineartAnime
ContentShuffle
Removed pil_output options, ControlNet preprocessors should always output as PIL. Removed diagnostics and other general cleanup.
2023-05-26 21:44:00 -04:00
user1
3aa182390a
changes to base class for controlnet nodes
2023-05-26 21:44:00 -04:00
user1
e44f1d6d4e
Refactored controlnet node to output ControlField that bundles control info.
2023-05-26 21:44:00 -04:00
user1
dfdf8e2ead
Switching to ControlField for output from controlnet nodes.
2023-05-26 21:44:00 -04:00
user1
3a645c4e80
Initial port of controlnet node support from generator-based TextToImageInvocation node to latent-based TextToLatentsInvocation node
2023-05-26 21:44:00 -04:00
user1
113129daf9
Added first controlnet preprocessor node for canny edge detection.
2023-05-26 21:44:00 -04:00
user1
714ad6dbb8
Fixed use of ControlNet control_weight parameter
2023-05-26 21:44:00 -04:00
user1
c0863fa20f
Added support for using multiple control nets. Unfortunately this breaks direct usage of Control node output port ==> TextToLatent control input port -- passing through a Collect node is now required. Working on fixing this...
2023-05-26 21:44:00 -04:00
user1
5d5cdc7716
Added resizing of controlnet image based on noise latent. Fixes a tensor mismatch issue.
2023-05-26 21:44:00 -04:00
user1
93cd818f6a
Refactored controlnet nodes: split out controlnet stuff into separate node, stripped controlnet stuff form image processing/analysis nodes.
2023-05-26 21:44:00 -04:00
user1
598a628790
Prep for splitting pre-processor and controlnet nodes
2023-05-26 21:44:00 -04:00
user1
f3666eda63
Added more preprocessor nodes for:
...
MidasDepth
ZoeDepth
MLSD
NormalBae
Pidi
LineartAnime
ContentShuffle
Removed pil_output options, ControlNet preprocessors should always output as PIL. Removed diagnostics and other general cleanup.
2023-05-26 21:44:00 -04:00
user1
754017b59e
Added an additional "raw_processed_image" output port to controlnets, mainly so could route ImageField to a ShowImage node
2023-05-26 21:44:00 -04:00
user1
21251ce12c
Added HED, LineArt, and OpenPose ControlNet nodes
2023-05-26 21:44:00 -04:00
user1
dc12fa6cd6
changes to base class for controlnet nodes
2023-05-26 21:44:00 -04:00
user1
f2f4c37f19
Refactored ControlNet nodes so they subclass from PreprocessedControlInvocation, and only need to override run_processor(image) (instead of reimplementing invoke())
2023-05-26 21:44:00 -04:00
user1
0864fca641
Resolving conflicts in rebase to origin/main
2023-05-26 21:44:00 -04:00
user1
5e4c0217c7
Switching to ControlField for output from controlnet nodes.
2023-05-26 21:44:00 -04:00
user1
78cd106c23
Initial port of controlnet node support from generator-based TextToImageInvocation node to latent-based TextToLatentsInvocation node
2023-05-26 21:44:00 -04:00
user1
6ed0efa938
Added first controlnet preprocessor node for canny edge detection.
2023-05-26 21:44:00 -04:00
user1
ca0669c337
Resolving rebase conflict
2023-05-26 21:44:00 -04:00
Lincoln Stein
5c0f0d1808
Merge branch 'main' into lstein/logging-improvements
2023-05-26 08:57:17 -04:00
Lincoln Stein
951900a86a
Merge branch 'main' into lstein/config-management-fixes
2023-05-26 08:56:41 -04:00
Lincoln Stein
f50293920e
correct typo in tiled_vae field definition
2023-05-25 23:29:16 -04:00
Lincoln Stein
1e2db3a17f
hook tiled_decode up to configuration
2023-05-25 23:28:15 -04:00
Lincoln Stein
497a885c85
Merge branch 'main' into release/make-web-dist-startable
2023-05-25 22:49:18 -04:00
Lincoln Stein
5f8f51436a
merge with main; fix conflicts
2023-05-25 22:40:45 -04:00
psychedelicious
33e13820fc
feat(nodes): remove meta
node field; use individual is_intermediate
field instead
...
as suggested by @Kyle0654
2023-05-25 22:17:14 -04:00
psychedelicious
291e9cf14b
fix(nodes): add is_intermediate
to all image-outputting nodes
2023-05-25 22:17:14 -04:00
psychedelicious
d2c8a53c55
feat(nodes): change intermediates handling
...
- `ImageType` is now restricted to `results` and `uploads`.
- Add a reserved `meta` field to nodes to hold the `is_intermediate` boolean. We can extend it in the future to support other node `meta`.
- Add a `is_intermediate` column to the `images` table to hold this. (When `latents`, `conditioning` etc are added to the DB, they will also have this column.)
- All nodes default to `*not* intermediate`. Nodes must explicitly be marked `intermediate` for their outputs to be `intermediate`.
- When building a graph, you can set `node.meta.is_intermediate=True` and it will be handled as an intermediate.
- Add a new `update()` method to the `ImageService`, and a route to call it. Updates have a strict model, currently only `session_id` and `image_category` may be updated.
- Add a new `update()` method to the `ImageRecordStorageService` to update the image record using the model.
2023-05-25 22:17:14 -04:00
Lincoln Stein
46cab81d6f
fix missing web_dir
2023-05-25 22:01:48 -04:00
Lincoln Stein
dd157bce85
Merge branch 'main' into release/make-web-dist-startable
2023-05-25 21:52:05 -04:00
Lincoln Stein
2f25dd7d0d
Merge branch 'main' into lstein/config-management-fixes
2023-05-25 21:10:12 -04:00
Lincoln Stein
e56965ad76
documentation tweaks; fixed initialization in a couple more places
2023-05-25 21:10:00 -04:00
Lincoln Stein
2273b3a8c8
fix potential race condition in config system
2023-05-25 20:41:26 -04:00
Kent Keirsey
05fb0ac2b2
Update latent.py
2023-05-26 10:27:33 +10:00
Kent Keirsey
d4acd49ee3
Update generate.py
2023-05-26 10:27:33 +10:00
Lincoln Stein
9110838fe4
Merge branch 'main' into release/make-web-dist-startable
2023-05-25 19:06:09 -04:00
Lincoln Stein
34f567abd4
Merge branch 'main' into lstein/logging-improvements
2023-05-25 08:48:47 -04:00
Lincoln Stein
b87f3043ae
add logging configuration
2023-05-24 23:57:15 -04:00
psychedelicious
3829ffbe66
fix(tests): add --use_memory_db
flag; use it in tests
2023-05-25 12:12:31 +10:00
psychedelicious
ad619ae880
fix(tests): log db_location
2023-05-25 12:12:31 +10:00
psychedelicious
d22ebe08be
fix(tests): log db_location
2023-05-25 12:12:31 +10:00
psychedelicious
ee0c6ad86e
fix(cli): fix invocation services for cli
2023-05-25 12:12:31 +10:00
psychedelicious
3000436121
chore(nodes): remove unused imports
2023-05-25 12:12:31 +10:00
psychedelicious
37cdd91f5d
fix(nodes): use forward declarations for InvocationServices
...
Also use `TYPE_CHECKING` to get IDE hints.
2023-05-25 12:12:31 +10:00
psychedelicious
ff6b345d45
fix(nodes): rebase fixes
2023-05-24 11:30:47 -04:00
psychedelicious
1fb307abf4
feat(nodes): restore canvas functionality (non-latents)
2023-05-24 11:30:47 -04:00
psychedelicious
ad39680feb
feat(nodes): wip inpainting nodes prep
2023-05-24 11:30:47 -04:00
psychedelicious
1e0ae8404c
feat(nodes): comment out seamless
...
this will be a model config feature when model manager is ready
2023-05-24 11:30:47 -04:00
psychedelicious
460d555a3d
feat(nodes): add image mul, channel, convert nodes
...
also make img node names consistent
2023-05-24 11:30:47 -04:00
psychedelicious
66ad04fcfc
feat(nodes): add mask image category
2023-05-24 11:30:47 -04:00
psychedelicious
d2c223de8f
feat(nodes): move fully* to new images service
...
* except i haven't rebuilt inpaint in latents
2023-05-24 11:30:47 -04:00
psychedelicious
dd16f788ed
fix(nodes): fix RangeOfSizeInvocation off-by-one error
2023-05-24 11:30:47 -04:00
psychedelicious
b25c1af018
feat(nodes): add RangeOfSizeInvocation
...
The `RangeInvocation` is a simple wrapper around `range()`, but you must provide `stop > start`.
`RangeOfSizeInvocation` replaces the `stop` parameter with `size`, so that you can just provide the `start` and `step` and get a range of `size` length.
2023-05-24 11:30:47 -04:00
psychedelicious
8f393b64b8
feat(nodes): add seed validator
...
If `seed>SEED_MAX`, we can still continue if we parse the seed as `seed % SEED_MAX`.
2023-05-24 11:30:47 -04:00
psychedelicious
55b3193629
fix(nodes): add RangeInvocation validator
...
`stop` must be greater than `start`.
2023-05-24 11:30:47 -04:00
psychedelicious
23d9d58c08
fix(nodes): fix bugs with serving images
...
When returning a `FileResponse`, we must provide a valid path, else an exception is raised outside the route handler.
Add the `validate_path` method back to the service so we can validate paths before returning the file.
I don't like this but apparently this is just how `starlette` and `fastapi` works with `FileResponse`.
2023-05-24 11:30:47 -04:00
psychedelicious
035425ef24
feat(nodes): address feedback
...
- Address database feedback:
- Remove all the extraneous tables. Only an `images` table now:
- `image_type` and `image_category` are unrestricted strings. When creating images, the provided values are checked to ensure they are a valid type and category.
- Add `updated_at` and `deleted_at` columns. `deleted_at` is currently unused.
- Use SQLite's built-in timestamp features to populate these. Add a trigger to update `updated_at` when the row is updated. Currently no way to update a row.
- Rename the `id` column in `images` to `image_name`
- Rename `ImageCategory.IMAGE` to `ImageCategory.GENERAL`
- Move all exceptions outside their base classes to make them more portable.
- Add `width` and `height` columns to the database. These store the actual dimensions of the image file, whereas the metadata's `width` and `height` refer to the respective generation parameters and are nullable.
- Make `deserialize_image_record` take a `dict` instead of `sqlite3.Row`
- Improve comments throughout
- Tidy up unused code/files and some minor organisation
2023-05-24 11:30:47 -04:00
psychedelicious
021e5a2aa3
feat(nodes): improve metadata service comments
2023-05-24 11:30:47 -04:00
psychedelicious
c31ff364ab
fix(nodes): tidy images service
2023-05-24 11:30:47 -04:00
psychedelicious
f310a39381
feat(nodes): finalize image routes
2023-05-24 11:30:47 -04:00
psychedelicious
5a7e611e0a
fix(nodes): fix image url
2023-05-24 11:30:47 -04:00
psychedelicious
5de3c41d19
feat(nodes): add metadata handling
2023-05-24 11:30:47 -04:00
psychedelicious
b9375186a5
feat(nodes): consolidate image routers
2023-05-24 11:30:47 -04:00
psychedelicious
11bd932cba
feat(nodes): revert invocation_complete url hack
2023-05-24 11:30:47 -04:00
psychedelicious
60d25f105f
fix(nodes): restore metadata traverser
2023-05-24 11:30:47 -04:00
psychedelicious
734b653a5f
fix(nodes): add base images router
2023-05-24 11:30:47 -04:00
psychedelicious
52c9e6ec91
feat(nodes): organise/tidy
2023-05-24 11:30:47 -04:00
psychedelicious
c0f132e41a
hack(nodes): hack to get image urls in the invocation complete event
2023-05-24 11:30:47 -04:00
psychedelicious
cc1160a43a
feat(nodes): streamline urlservice
2023-05-24 11:30:47 -04:00
psychedelicious
adde8450bc
fix(nodes): remove bad import
2023-05-24 11:30:47 -04:00
psychedelicious
5bf9891553
feat(nodes): it works
2023-05-24 11:30:47 -04:00
psychedelicious
22c34c343a
feat(nodes): fix types for InvocationServices
2023-05-24 11:30:47 -04:00
psychedelicious
f7804f6126
feat(nodes): add logger to images service
2023-05-24 11:30:47 -04:00
psychedelicious
d14b02e93f
feat(logger): fix logger type issues
2023-05-24 11:30:47 -04:00
psychedelicious
1b75d899ae
feat(nodes): wip image storage implementation
2023-05-24 11:30:47 -04:00
psychedelicious
d4aa79acd7
fix(nodes): use save
instead of set
...
`set` is a python builtin
2023-05-24 11:30:47 -04:00
psychedelicious
33d199c007
feat(nodes): image records router
2023-05-24 11:30:47 -04:00
psychedelicious
9c89d3452c
feat(nodes): add high-level images service
...
feat(nodes): add ResultsServiceABC & SqliteResultsService
**Doesn't actually work bc of circular imports. Can't even test it.**
- add a base class for ResultsService and SQLite implementation
- use `graph_execution_manager` `on_changed` callback to keep `results` table in sync
fix(nodes): fix results service bugs
chore(ui): regen api
fix(ui): fix type guards
feat(nodes): add `result_type` to results table, fix types
fix(nodes): do not shadow `list` builtin
feat(nodes): add results router
It doesn't work due to circular imports still
fix(nodes): Result class should use outputs classes, not fields
feat(ui): crude results router
fix(ui): send to canvas in currentimagebuttons not working
feat(nodes): add core metadata builder
feat(nodes): add design doc
feat(nodes): wip latents db stuff
feat(nodes): images_db_service and resources router
feat(nodes): wip images db & router
feat(nodes): update image related names
feat(nodes): update urlservice
feat(nodes): add high-level images service
2023-05-24 11:30:47 -04:00
Sergey Borisov
2533209326
Rewrite cache to weak references
2023-05-23 03:48:22 +03:00
Lincoln Stein
d2dc1ed26f
make InvokeAI package installable
...
This commit makes InvokeAI 3.0 to be installable via PyPi.org and the
installer script.
Main changes.
1. Move static web pages into `invokeai/frontend/web` and modify the
API to look for them there. This allows pip to copy the files into the
distribution directory so that user no longer has to be in repo root
to launch.
2. Update invoke.sh and invoke.bat to launch the new web application
properly. This also changes the wording for launching the CLI from
"generate images" to "explore the InvokeAI node system," since I would
not recommend using the CLI to generate images routinely.
3. Fix a bug in the checkpoint converter script that was identified
during testing.
4. Better error reporting when checkpoint converter fails.
5. Rebuild front end.
2023-05-22 17:51:47 -04:00
Lincoln Stein
d4fb16825e
move static into invokeai.frontend.web directory for dist install
2023-05-22 16:48:17 -04:00
Lincoln Stein
bdf33f13b3
fix bad merge in compel
2023-05-18 18:08:45 -04:00
Lincoln Stein
27241cdde1
port more globals changes over
2023-05-18 17:17:45 -04:00
Lincoln Stein
d96175d127
resolve some undefined symbols in model_cache
2023-05-18 14:31:47 -04:00
Lincoln Stein
7ea995149e
fixes to env parsing, textual inversion & help text
...
- Make environment variable settings case InSenSiTive:
INVOKEAI_MAX_LOADED_MODELS and InvokeAI_Max_Loaded_Models
environment variables will both set `max_loaded_models`
- Updated realesrgan to use new config system.
- Updated textual_inversion_training to use new config system.
- Discovered a race condition when InvokeAIAppConfig is created
at module load time, which makes it impossible to customize
or replace the help message produced with --help on the command
line. To fix this, moved all instances of get_invokeai_config()
from module load time to object initialization time. Makes code
cleaner, too.
- Added `--from_file` argument to `invokeai-node-cli` and changed
github action to match. CI tests will hopefully work now.
2023-05-18 10:48:23 -04:00
Eugene
20ca9e1fc1
config: move 'CORS' settings to 'Web Server' in the docstring to match the actual category
2023-05-17 19:45:51 -04:00
Eugene
8a8b09a953
api_app: rename web_config to app_config for consistency
2023-05-17 19:42:13 -04:00
Eugene
9e4e386c9b
web and formatting fixes
...
- remove non-existent import InvokeAIWebConfig
- fix workflow file formatting
- clean up whitespace
2023-05-17 19:12:03 -04:00
Lincoln Stein
eca1e449a8
Merge branch 'lstein/global-configuration' of github.com:invoke-ai/InvokeAI into lstein/global-configuration
2023-05-17 15:23:21 -04:00
Lincoln Stein
ffaadb9d05
reorder options in help text
2023-05-17 15:22:58 -04:00
Lincoln Stein
8adff96e29
Merge branch 'main' into lstein/global-configuration
2023-05-17 14:37:09 -04:00
Lincoln Stein
7593dc19d6
complete several steps needed to make 3.0 installable
...
- invokeai-configure updated to work with new config system
- migrate invokeai.init to invokeai.yaml during configure
- replace legacy invokeai with invokeai-node-cli
- add ability to run an invocation directly from invokeai-node-cli command line
- update CI tests to work with new invokeai syntax
2023-05-17 14:13:27 -04:00
Lincoln Stein
b7c5a39685
make invokeai.yaml more hierarchical; fix list configuration bug
2023-05-17 12:19:19 -04:00
Lincoln Stein
eadfd239a8
update config script to work with new config system
2023-05-17 00:18:19 -04:00
Lincoln Stein
8d75e50435
partial port of invokeai-configure
2023-05-16 01:50:01 -04:00
psychedelicious
6ab84741a0
fix(nodes): make ModelsList an enum-keyed dict
...
The `ModelsList` OpenAPI schema is generated as being keyed by plain strings. This means that API consumers do not know the shape of the dict. It _should_ be keyed by the `SDModelType` enum.
Unfortunately, `fastapi` does not actually handle this correctly yet; it still generates the schema with plain string keys.
Adding this anyways though in hopes that it will be resolved upstream and we can get the correct schema. Until then, I'll implement the (simple but annoying) logic on the frontend.
https://github.com/pydantic/pydantic/issues/4393
2023-05-16 15:02:58 +10:00
Lincoln Stein
eea0d6f7bc
default to no filter in list_models()
2023-05-15 23:52:29 -04:00
psychedelicious
1d9c115225
feat(nodes): add low and high to RandomIntInvocation
2023-05-16 13:50:52 +10:00
Lincoln Stein
4fe94a9315
list_models() now returns a dict of {type,{name: info}}
2023-05-15 23:44:08 -04:00
Lincoln Stein
426f4eaf7e
adjusted regression tests to work with new SDModelTypes
2023-05-13 22:29:33 -04:00
Eugene Brodsky
2623941d91
Merge branch 'main' into lstein/bugfix/compel
2023-05-13 22:23:59 -04:00
Lincoln Stein
baf5451fa0
Merge branch 'main' into lstein/new-model-manager
2023-05-13 22:01:34 -04:00
Lincoln Stein
1103ab2844
merge with main
2023-05-13 21:35:19 -04:00
Lincoln Stein
11b2076b46
implement change to web_config suggested by ebr
2023-05-13 21:33:19 -04:00
Sergey Borisov
039fa73269
Change SDModelType enum to string, fixes(model unload negative locks count, scheduler load error, saftensors convert, wrong logic in del_model, wrong parse metadata in web)
2023-05-14 03:06:26 +03:00
Lincoln Stein
b23c9f1da5
get Tuple type hint syntax right
2023-05-13 14:59:21 -04:00
Lincoln Stein
5e8e3cf464
correct typos in model_manager_service
2023-05-13 14:55:59 -04:00
Lincoln Stein
72967bf118
convert add_model(), del_model(), list_models() etc to use bifurcated names
2023-05-13 14:44:44 -04:00
Sergey Borisov
bc96727cbe
Rewrite latent nodes to new model manager
2023-05-13 16:08:03 +03:00
Sergey Borisov
3b2a054f7a
Add model loader node; unet, clip, vae fields; change compel node to clip field
2023-05-13 04:37:20 +03:00
Eugene Brodsky
63db3fc22f
reduce queue check interval to 0.5s
2023-05-12 17:54:26 -04:00
Eugene
ad0bb3f61a
fix: queue error should not crash InvocationProcessor
...
1. if retrieving an item from the queue raises an exception, the
InvocationProcessor thread crashes, but the API continues running in
a non-functional state. This fixes the issue
2. when there are no items in the queue, sleep 1 second before checking
again.
3. Also ensures the thread isn't crashed if an exception is raised from
invoker, and emits the error event
Intentionally using base Exceptions because for now we don't know which
specific exception to expect.
Fixes (sort of)? #3222
2023-05-12 17:54:26 -04:00
Sergey Borisov
4492044d29
Redo compel node to separate model loading
2023-05-12 23:09:33 +03:00
Sergey Borisov
5431dd5f50
Fix event args
2023-05-12 23:08:03 +03:00
Sergey Borisov
79fecba274
Fix model manager initialization in web ui
2023-05-12 23:05:08 +03:00
psychedelicious
e5b7dd63e9
fix(nodes): temporarily disable librarygraphs
...
- Do not retrieve graph from DB until we resolve the issue of changing node schemas causing application to fail to start up due to invalid graphs
2023-05-12 22:33:49 +10:00
Eugene Brodsky
af060188bd
Merge branch 'main' into lstein/bugfix/compel
2023-05-12 08:22:18 -04:00
Lincoln Stein
2ef79b8bf3
fix bug in persistent model scheme
2023-05-12 00:14:56 -04:00
blessedcoolant
9c1e65f3a3
Merge branch 'main' into feat/nodes/add-randomintinvocation
2023-05-12 15:56:41 +12:00
psychedelicious
ebec200ba6
Remove unused import
2023-05-12 13:56:02 +10:00
Lincoln Stein
11ecf438f5
latents.py converted to use model manager service; events emitted
2023-05-11 23:33:24 -04:00
blessedcoolant
0acb8ed85d
Merge branch 'main' into feat/nodes/add-w-h-latentsoutput
2023-05-12 15:23:29 +12:00
blessedcoolant
8c1c9cd702
Merge branch 'main' into feat/nodes/add-randomintinvocation
2023-05-12 15:21:49 +12:00
blessedcoolant
af95cef7f9
Merge branch 'main' into fix/nodes/fix-imageoutput-optionals
2023-05-12 15:08:19 +12:00
Lincoln Stein
df5b968954
model manager now running as a service
2023-05-11 21:24:29 -04:00
Sergey Borisov
27dc07d95a
Set zero eta by default(fix ddim scheduler error)
2023-05-11 18:49:27 +03:00
blessedcoolant
f7dc171c4f
Rename default schedulers across the app
2023-05-12 03:44:20 +12:00
blessedcoolant
8a836247c8
Add DPMPP Single, Euler Karras and DPMPP2 Multi Karras Schedulers
2023-05-12 02:23:33 +12:00
blessedcoolant
9a383e456d
Codesplit SCHEDULER_MAP for reusage
2023-05-12 00:40:03 +12:00
blessedcoolant
c1e7460d39
Merge branch 'main' into unipc-sched
2023-05-12 00:11:09 +12:00
blessedcoolant
3ffff023b2
Add missing key to scheduler_map
...
It was breaking coz the sampler was not being reset. So needs a key on each. Will simplify this later.
2023-05-12 00:08:50 +12:00
psychedelicious
6cf308004a
fix(nodes): remove Optionals on ImageOutputs
2023-05-11 20:54:57 +10:00
blessedcoolant
d1029138d2
Default to DDIM if scheduler is missing
2023-05-11 22:54:35 +12:00
blessedcoolant
06b5800d28
Add UniPC Scheduler
2023-05-11 22:43:18 +12:00
psychedelicious
483f2ccb56
feat(nodes): add RandomIntInvocation
...
just outputs a single random int
2023-05-11 20:33:32 +10:00
psychedelicious
93ced0bec6
feat(nodes): add w/h to latents outputs
...
This reduces the number of nodes needed when working with latents (ie fewer plain integer value nodes)
Also correct a few mistakes in the fields
2023-05-11 20:32:55 +10:00
psychedelicious
4333852c37
fix(nodes): fix missing context
arg in LatentsToLatents
2023-05-11 19:28:42 +10:00
Eugene Brodsky
3baa230077
Merge branch 'main' into lstein/bugfix/compel
2023-05-11 00:50:45 -04:00
Lincoln Stein
8ad8c5c67a
resolve conflicts with main
2023-05-11 00:19:20 -04:00
Lincoln Stein
590942edd7
Merge branch 'main' into lstein/new-model-manager
2023-05-11 00:16:03 -04:00
Lincoln Stein
4627910c5d
added a wrapper model_manager_service and model events
2023-05-11 00:09:19 -04:00
psychedelicious
f488b1a7f2
fix(nodes): fix usage of Optional
2023-05-11 11:55:51 +10:00
psychedelicious
34f3a0f0e3
feat(nodes): improve default model choosing output
2023-05-11 11:55:51 +10:00
psychedelicious
d0bac1675e
fix(nodes): fix ImageOutput Config
2023-05-11 11:55:51 +10:00
psychedelicious
4e56c962f4
fix(nodes): fix infill docstrings
2023-05-11 11:55:51 +10:00
psychedelicious
4ef0e43759
fix(nodes): remove dataURL invocation
2023-05-11 11:55:51 +10:00
psychedelicious
a7786d5ff2
fix(nodes): restore seamless to TextToLatents
2023-05-11 11:55:51 +10:00
psychedelicious
6c1de975d9
feat(nodes): add infill nodes
2023-05-11 11:55:51 +10:00