Commit Graph

9756 Commits

Author SHA1 Message Date
Stefan Tobler
8033589629 moving the responsibility of cleaning up board names to the service not the route 2024-02-20 23:39:30 +11:00
Stefan Tobler
124075ae7a updating imports to satisfy ruff 2024-02-20 23:39:30 +11:00
Stefan Tobler
0bde933c89 using temp directory for downloads 2024-02-20 23:39:30 +11:00
Stefan Tobler
fc5c5b6bdd returning the bulk_download_item_name on response for possible polling 2024-02-20 23:39:30 +11:00
Stefan Tobler
ff53563152 narrowing bulk_download stop service scope 2024-02-20 23:39:30 +11:00
Stefan Tobler
12b0d735e7 adding test coverage for new bulk download routes 2024-02-20 23:39:30 +11:00
Stefan Tobler
d06ee94fd3 cleaning up bulk download zip after the response is complete 2024-02-20 23:39:30 +11:00
Stefan Tobler
9dbdb6cf7c replacing import removed during rebase 2024-02-20 23:39:30 +11:00
Stefan Tobler
7c091570fe 97% test coverage on bulk_download 2024-02-20 23:39:30 +11:00
Stefan Tobler
e99f3482cc refactoring bulk_download to be better managed 2024-02-20 23:39:30 +11:00
Stefan Tobler
d999c9ffd6 refactoring dummy event service, DRY principal; adding bulk_download_event to existing invoker tests 2024-02-20 23:39:30 +11:00
Stefan Tobler
888db8ac46 refactoring bulkdownload to consider image category 2024-02-20 23:39:30 +11:00
Stefan Tobler
7deef2cb27 fixing issue where default board did not return images 2024-02-20 23:39:30 +11:00
Stefan Tobler
ada807af0c using the board name to download boards 2024-02-20 23:39:30 +11:00
Stefan Tobler
aa132fb9e3 reworking some of the logic to use a default room, adding endpoint to download file on complete 2024-02-20 23:39:30 +11:00
Stefan Tobler
98a01368b8 linted and styling 2024-02-20 23:39:30 +11:00
Stefan Tobler
fc9a62dbf5 implementation of bulkdownload background task 2024-02-20 23:39:30 +11:00
Stefan Tobler
4d8bec1605 adding socket events for bulk download 2024-02-20 23:39:30 +11:00
Stefan Tobler
cf9dad83bc groundwork for the bulk_download_service 2024-02-20 23:39:30 +11:00
psychedelicious
0d0a2a5c91 fix(ui): get workflow editor model selects working 2024-02-20 13:33:31 +11:00
psychedelicious
0cab636ab0 fix(ui): get refiner model select working 2024-02-20 13:33:31 +11:00
psychedelicious
de097ec58a fix(ui): get vae model select working 2024-02-20 13:33:31 +11:00
psychedelicious
bb6f426162 fix(ui): get embedding select working 2024-02-20 13:33:31 +11:00
psychedelicious
663f135b3c fix(ui): get lora select working 2024-02-20 13:33:31 +11:00
psychedelicious
2f2097662a chore(ui): bump @invoke-ai/ui-library 2024-02-20 13:33:31 +11:00
psychedelicious
458c29cfa5 fix(ui): fix low-hanging fruit types 2024-02-20 13:33:31 +11:00
Lincoln Stein
4bec01d6f2 Add a few convenience targets to Makefile
- "test" to run pytests
- "frontend-install" to reinstall pnpm's node modeuls
2024-02-20 10:02:46 +11:00
psychedelicious
9d79ee8dc4 chore(nodes): update TODO comment 2024-02-20 09:54:01 +11:00
psychedelicious
78dd460348 tidy(nodes): clean up profiler/stats in processor, better comments 2024-02-20 09:54:01 +11:00
psychedelicious
9d27d354cf fix(nodes): fix typing on stats service context manager 2024-02-20 09:54:01 +11:00
psychedelicious
e8725a1099 fix(nodes): fix model load events
was accessing incorrect properties in event data
2024-02-20 09:54:01 +11:00
psychedelicious
479d65b6e1 feat(nodes): making invocation class var in processor 2024-02-20 09:54:01 +11:00
psychedelicious
5d4b388dfd feat(nodes): improved error messages in processor 2024-02-20 09:54:01 +11:00
psychedelicious
4956fa282b feat(nodes): make processor thread limit and polling interval configurable 2024-02-20 09:54:01 +11:00
psychedelicious
51133522b7 tests(nodes): fix tests following removal of services 2024-02-20 09:54:01 +11:00
psychedelicious
6d5cc8b1ff chore(nodes): better comments for invocation context 2024-02-20 09:54:01 +11:00
psychedelicious
08a5bb90e2 chore(nodes): "context_data" -> "data"
Changed within InvocationContext, for brevity.
2024-02-20 09:54:01 +11:00
psychedelicious
39bdf5c4e9 refactor(nodes): move is_canceled to context.util 2024-02-20 09:54:01 +11:00
psychedelicious
f31e4205aa feat(nodes): add whole queue_item to InvocationContextData
No reason to not have the whole thing in there.
2024-02-20 09:54:01 +11:00
psychedelicious
4d05c4ff66 tidy(nodes): remove extraneous comments 2024-02-20 09:54:01 +11:00
psychedelicious
7e88d2a7f1 feat(nodes): better invocation error messages 2024-02-20 09:54:01 +11:00
psychedelicious
556f6aa174 chore(nodes): add comments for cancel state 2024-02-20 09:54:01 +11:00
psychedelicious
6a74048af8 feat(nodes): promote is_canceled to public node API 2024-02-20 09:54:01 +11:00
psychedelicious
2cb51bff11 refactor(nodes): merge processors
Consolidate graph processing logic into session processor.

With graphs as the unit of work, and the session queue distributing graphs, we no longer need the invocation queue or processor.

Instead, the session processor dequeues the next session and processes it in a simple loop, greatly simplifying the app.

- Remove `graph_execution_manager` service.
- Remove `queue` (invocation queue) service.
- Remove `processor` (invocation processor) service.
- Remove queue-related logic from `Invoker`. It now only starts and stops the services, providing them with access to other services.
- Remove unused `invocation_retrieval_error` and `session_retrieval_error` events, these are no longer needed.
- Clean up stats service now that it is less coupled to the rest of the app.
- Refactor cancellation logic - cancellations now originate from session queue (i.e. HTTP cancel endpoint) and are emitted as events. Processor gets the events and sets the canceled event. Access to this event is provided to the invocation context for e.g. the step callback.
- Remove `sessions` router; it provided access to `graph_executions` but that no longer exists.
2024-02-20 09:54:01 +11:00
psychedelicious
851e835e0e tidy(nodes): remove commented tests 2024-02-20 09:48:14 +11:00
psychedelicious
fe04f28841 chore(ui): typegen 2024-02-20 09:48:14 +11:00
psychedelicious
258fc006ec tidy(nodes): remove no-op model_config
Because we now customize the JSON Schema creation for GraphExecutionState, the model_config did nothing.
2024-02-20 09:48:14 +11:00
psychedelicious
dcb4ee47d5 tidy(nodes): remove LibraryGraphs
The workflow library supersedes this unused feature.
2024-02-20 09:48:14 +11:00
psychedelicious
1a56f5aaf9 tidy(nodes): move node tests to parent dir
Thanks to the resolution of the import vs union issue, we can put tests anywhere.
2024-02-20 09:48:14 +11:00
psychedelicious
5fc745653a tidy(nodes): remove GraphInvocation
`GraphInvocation` is a node that can contain a whole graph. It is removed for a number of reasons:

1. This feature was unused (the UI doesn't support it) and there is no plan for it to be used.

The use-case it served is known in other node execution engines as "node groups" or "blocks" - a self-contained group of nodes, which has group inputs and outputs. This is a planned feature that will be handled client-side.

2. It adds substantial complexity to the graph processing logic. It's probably not enough to have a measurable performance impact but it does make it harder to work in the graph logic.

3. It allows for graphs to be recursive, and the improved invocations union handling does not play well with it. Actually, it works fine within `graph.py` but not in the tests for some reason. I do not understand why. There's probably a workaround, but I took this as encouragement to remove `GraphInvocation` from the app since we don't use it.
2024-02-20 09:48:14 +11:00