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
1e2db3a17f
hook tiled_decode up to configuration
2023-05-25 23:28:15 -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
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
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
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
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
5de3c41d19
feat(nodes): add metadata handling
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
d4aa79acd7
fix(nodes): use save
instead of set
...
`set` is a python builtin
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
Lincoln Stein
bdf33f13b3
fix bad merge in compel
2023-05-18 18:08:45 -04:00
Lincoln Stein
d96175d127
resolve some undefined symbols in model_cache
2023-05-18 14:31:47 -04:00
Lincoln Stein
8adff96e29
Merge branch 'main' into lstein/global-configuration
2023-05-17 14:37:09 -04:00
psychedelicious
1d9c115225
feat(nodes): add low and high to RandomIntInvocation
2023-05-16 13:50:52 +10:00
Lincoln Stein
426f4eaf7e
adjusted regression tests to work with new SDModelTypes
2023-05-13 22:29:33 -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
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
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
Sergey Borisov
4492044d29
Redo compel node to separate model loading
2023-05-12 23:09:33 +03: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
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
psychedelicious
a1079e455a
feat(nodes): cleanup unused params, seed generation
2023-05-11 11:55:51 +10:00
psychedelicious
da4eacdffe
feat(nodes): add InfillInvocation
2023-05-11 11:55:51 +10:00
psychedelicious
6102e560ba
feat(nodes): add LatentsToImage node (VAE encode)
2023-05-11 11:55:51 +10:00
psychedelicious
206e6b1730
feat(nodes): wip inpaint node
2023-05-11 11:55:51 +10:00
psychedelicious
357cee2849
fix(nodes): fix cfg scale min value
2023-05-11 11:55:51 +10:00
psychedelicious
e0b9b5cc6c
feat(nodes): add dataURL to image node
2023-05-11 11:55:51 +10:00
Lincoln Stein
aca4770481
fixed compel.py as requested
2023-05-10 21:40:44 -04:00
Lincoln Stein
fa6a580452
merge with main
2023-05-10 00:03:32 -04:00
Lincoln Stein
4649920074
adjust t2i to work with new model structure
2023-05-07 19:06:49 -04:00
Lincoln Stein
42d938fda5
remove debugging statement
2023-05-06 23:54:11 -04:00
Lincoln Stein
25ce47c44f
remove reference to globals in compel.py
2023-05-06 22:49:35 -04:00
Lincoln Stein
a8cfa3565c
Merge branch 'lstein/new-model-manager' of github.com:invoke-ai/InvokeAI into lstein/new-model-manager
2023-05-06 08:14:15 -04:00
Lincoln Stein
e0214a32bc
mostly ported to new manager API; needs testing
2023-05-06 00:44:12 -04:00
StAlKeR7779
a80fe05e23
Rename compel node
2023-05-05 21:30:16 +03:00
StAlKeR7779
58d7833c5c
Review changes
2023-05-05 21:09:29 +03:00
StAlKeR7779
5012f61599
Separate conditionings back to positive and negative
2023-05-05 15:47:51 +03:00
blessedcoolant
85c33823c3
Merge branch 'main' into feat/compel_node
2023-05-05 14:41:45 +12:00
psychedelicious
e04ada1319
Merge branch 'main' into patch-1
2023-05-05 10:38:45 +10:00
StAlKeR7779
81ec476f3a
Revert seed field addition
2023-05-04 21:50:40 +03:00
StAlKeR7779
7d221e2518
Combine conditioning to one field(better fits for multiple type conditioning like perp-neg)
2023-05-04 20:14:22 +03:00
StAlKeR7779
56d3cbead0
Merge branch 'main' into feat/compel_node
2023-05-04 00:28:33 +03:00
Lincoln Stein
4687ad4ed6
Merge branch 'main' into enhance/invokeai-logs
2023-05-03 13:36:06 -04:00
psychedelicious
3264d30b44
feat(nodes): allow multiples of 8 for dimensions
2023-05-02 12:01:52 +10:00
psychedelicious
b49d76ebee
feat(nodes): fix image to image fit
param
...
it was ignored previously.
2023-05-01 17:28:22 +10:00
Lincoln Stein
974841926d
logger is a interchangeable service
2023-04-29 10:48:50 -04:00
Lincoln Stein
8db20e0d95
rename log to logger throughout
2023-04-29 09:43:40 -04:00
Lincoln Stein
6b79e2b407
Merge branch 'main' into enhance/invokeai-logs
...
- resolve conflicts
- remove unused code identified by pyflakes
2023-04-28 10:09:46 -04:00
psychedelicious
4a924c9b54
feat(nodes): hardcode resize latents downsampling
2023-04-28 09:52:09 +10:00
psychedelicious
0453d60c64
fix(nodes): fix slatents and rlatents bugs
2023-04-28 09:52:09 +10:00