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
940e3b6635
Core implementation of ControlNet and MultiControlNet.
2023-05-26 21:44:00 -04:00
user1
7fb29dabff
Fixed lint-ish formatting error
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
78b0b37ba6
More rebase repair.
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
user1
a91dee87d0
Added support for ControlNet and MultiControlNet to legacy non-nodal Txt2Img in backend/generator. Although backend/generator will likely disappear by v3.x, right now they are very useful for testing core ControlNet and MultiControlNet functionality while node codebase is rapidly evolving.
2023-05-26 21:44:00 -04:00
user1
5ff98a4179
Core implementation of ControlNet and MultiControlNet.
2023-05-26 21:44:00 -04:00
psychedelicious
a25bae2545
fix(ui): tweak log levels
2023-05-26 18:06:08 +10:00
psychedelicious
0ea35b1e3d
feat(ui): improve session canceled handling
2023-05-26 18:06:08 +10:00
psychedelicious
c6f935bf1a
feat(ui): improve gallery page handling
2023-05-26 18:06:08 +10:00
psychedelicious
96b4d35d43
fix(ui): fix uploads not loading more images correctly after generation
2023-05-26 18:06:08 +10:00
psychedelicious
7b0938e7e4
feat(ui): add comments for weird stuff
2023-05-26 18:06:08 +10:00
psychedelicious
249522b568
fix(ui): fix gallery not loading more images correctly after generation
2023-05-26 18:06:08 +10:00
psychedelicious
39088e42cc
fix(ui): remove console logs
2023-05-26 18:06:08 +10:00
psychedelicious
30e0033ebe
fix(ui): fix results not added to gallery
2023-05-26 18:06:08 +10:00
psychedelicious
b599c40099
feat(ui): improve session invoked handling
2023-05-26 18:06:08 +10:00
psychedelicious
8f190169db
feat(ui): improve session creation handling
2023-05-26 18:06:08 +10:00
psychedelicious
1d4d705795
feat(ui): improve image urls handling
2023-05-26 18:06:08 +10:00
psychedelicious
b3f71b3078
feat(ui): improve image metadata handling
2023-05-26 18:06:08 +10:00
psychedelicious
6059db4f15
feat(ui): improve image delete handling
2023-05-26 18:06:08 +10:00
psychedelicious
0d5f44b153
feat(ui): improve image upload handling
2023-05-26 18:06:08 +10:00
psychedelicious
17164a37a8
fix(ui): fix gallery auto switch
2023-05-26 18:06:08 +10:00
psychedelicious
f88ccabe30
fix(ui): gallery not loading on page load
2023-05-26 18:06:08 +10:00
psychedelicious
57a3eb3652
feat(ui): unset progress image inside invocationComplete listener
2023-05-26 13:25:50 +10:00
Mary Hipp
82a8972bde
create listener for imageMetdataReceived to swap our progressImage
2023-05-26 13:25:50 +10:00
psychedelicious
0c3b4bb70d
chore(ui): regen api client
2023-05-25 22:17:14 -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
43d991cfdb
fix(ui): fix incorrect comment
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
a2de5c9963
feat(ui): change intermediates handling
...
- Update the canvas graph generation to flag its uploaded init and mask images as `intermediate`.
- During canvas setup, hit the update route to associate the uploaded images with the session id.
- Organize the socketio and RTK listener middlware better. Needed to facilitate the updated canvas logic.
- Add a new action `sessionReadyToInvoke`. The `sessionInvoked` action is *only* ever run in response to this event. This lets us do whatever complicated setup (eg canvas) and explicitly invoking. Previously, invoking was tied to the socket subscribe events.
- Some minor tidying.
2023-05-25 22:17:14 -04:00
psychedelicious
5025f84627
chore(ui): regen api client
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
Kent Keirsey
d98868e524
Update generationSlice.ts to change Default Scheduler
2023-05-26 10:27:33 +10:00
Mary Hipp
93bb27f2c7
fix gallery navigation
2023-05-26 10:01:06 +10:00
Mary Hipp
a4c44edf8d
more use parameter fixes
2023-05-26 10:01:06 +10:00
Mary Hipp
1e94d7739a
fix metadata references, add support for negative_conditioning syntax
2023-05-26 10:01:06 +10: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
29c952dcf6
feat(ui): restore canvas functionality
2023-05-24 11:30:47 -04:00
psychedelicious
010f63a50d
feat(ui): misc tidy
2023-05-24 11:30:47 -04:00
psychedelicious
068bbe3a39
fix(ui): fix uploads tab in gallery
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
c7c0836721
feat(ui): migrate linear workflows to latents
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
6f78c073ed
fix(ui): fix uploads & other bugs
2023-05-24 11:30:47 -04:00
psychedelicious
c406be6f4f
fix(ui): fix image deletion
2023-05-24 11:30:47 -04:00
psychedelicious
aeaf3737aa
fix(ui): fix gallery bugs
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
4c331a5d7e
chore(ui): regen api client
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
7a1de3887e
feat(ui): wip update UI for migration
2023-05-24 11:30:47 -04:00
psychedelicious
4a7a5234df
fix(ui): fix image nodes losing image
2023-05-24 11:30:47 -04:00
psychedelicious
6aebe1614d
feat(ui): wip use new images service
2023-05-24 11:30:47 -04:00
psychedelicious
74292eba28
chore(ui): regen api client
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
4e29a751d8
feat(ui): add POC image record fetching
2023-05-24 11:30:47 -04:00
psychedelicious
3f94f81acd
chore(ui): regen api client
2023-05-24 11:30:47 -04:00
psychedelicious
5de3c41d19
feat(nodes): add metadata handling
2023-05-24 11:30:47 -04:00
psychedelicious
f071b03ceb
chore(ui): regen api client
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
b77ccfaf32
chore(ui): regen api client
2023-05-24 11:30:47 -04:00
psychedelicious
96653eebb6
build(ui): do not export schemas on api client generation
2023-05-24 11:30:47 -04:00
psychedelicious
60d25f105f
fix(nodes): restore metadata traverser
2023-05-24 11:30:47 -04:00