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
497a885c85
Merge branch 'main' into release/make-web-dist-startable
2023-05-25 22:49:18 -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