blessedcoolant
2ec8fd3dc7
feat: Make the active processing node light up
2023-08-23 23:06:42 +10:00
psychedelicious
90abd0fe49
fix(ui): position floating buttons
2023-08-23 23:06:42 +10:00
psychedelicious
3651cf7ee2
wip buttons
2023-08-23 23:06:42 +10:00
blessedcoolant
8eca3bbbcd
chore: Remove Pinned Hotkeys from Hotkeys Modal
2023-08-23 23:06:42 +10:00
psychedelicious
73318c2847
feat(ui): remove floating panels, move all to resizable panels
...
There is a console error we can ignore when toggling gallery panel on canvas - this will be resolved in the next release of the resizable library
2023-08-23 23:06:42 +10:00
psychedelicious
6d10e40c9b
feat(ui): add selection mode toggle
2023-08-23 23:06:42 +10:00
blessedcoolant
5cf9b75d77
fix: Remove / as hotkey for add node and add tooltip
2023-08-23 23:06:42 +10:00
blessedcoolant
d4463674cf
fix: Move add node hotkey to the right component
2023-08-23 23:06:42 +10:00
psychedelicious
ce7172d78c
feat(ui): add workflow saving/loading (wip)
...
Adds loading workflows with exhaustive validation via `zod`.
There is a load button but no dedicated save/load UI yet. Also need to add versioning to the workflow format itself.
2023-08-23 23:06:42 +10:00
psychedelicious
38b2dedc1d
feat(ui): use new ui_order
to sort fields; connection-only fields in grid
2023-08-23 23:06:42 +10:00
psychedelicious
cd73085eb9
feat(nodes): add ui_order
node field attribute
...
used by UI to sort fields in workflow editor
2023-08-23 23:06:42 +10:00
psychedelicious
2497aa5cd8
feat(ui): improve node schema parsing and add outputType
to templates
2023-08-23 23:06:42 +10:00
psychedelicious
089ada8cd1
chore(ui): typegen
2023-08-23 23:06:42 +10:00
psychedelicious
35d14fc0f9
fix(ui): simplify typegen script
...
i had this committed earlier but lost it somehow
2023-08-23 23:06:42 +10:00
psychedelicious
b79bca2c14
build(ui): fix up lint scripts (way faster now)
2023-08-23 23:06:42 +10:00
psychedelicious
5fc60d0539
fix(nodes): id
field is not an InputField
2023-08-23 23:06:42 +10:00
psychedelicious
7b97754271
chore(ui): update all packages
...
- only breaking change was in `openapi-fetch`, easy fix
- also looks like prettier/eslint is a bit more comprehensive? caught a couple extra things
2023-08-23 23:06:42 +10:00
Kevin Turner
98dcc8d8b3
Merge remote-tracking branch 'origin/main' into feat/dev_reload
2023-08-22 18:18:16 -07:00
Lincoln Stein
3f7ac556c6
Merge branch 'main' into refactor/rename-performance-options
2023-08-21 22:29:34 -04:00
Kevin Turner
56c052a747
Merge branch 'main' into feat/dev_reload
2023-08-21 18:22:31 -07:00
psychedelicious
be6ba57775
chore: flake8
2023-08-22 10:14:46 +10:00
psychedelicious
4da861e980
chore: clean up .gitignore
2023-08-22 10:02:03 +10:00
Lincoln Stein
9d7dfeb857
Merge branch 'main' into refactor/rename-performance-options
2023-08-21 19:47:55 -04:00
Kevin Turner
76750b0121
doc(development): add section on hot reloading with --dev_reload
2023-08-21 16:45:39 -07:00
Kevin Turner
88963dbe6e
Merge remote-tracking branch 'origin/main' into feat/dev_reload
...
# Conflicts:
# invokeai/app/api_app.py
# invokeai/app/services/config.py
2023-08-21 09:04:31 -07:00
blessedcoolant
7b2079cf83
feat: Add hotkey for Add Nodes (Shift+A)
...
Standard with other tools like Blender
2023-08-22 03:31:29 +12:00
psychedelicious
535eb1db16
Merge branch 'main' into fix/stats/handle-exceptions
2023-08-21 19:19:32 +10:00
psychedelicious
01738deb23
feat(ui): add eslint rules
...
- `curly` requires conditionals to use curly braces
- `react/jsx-curly-brace-presence` requires string props to *not* have curly braces
2023-08-21 19:17:36 +10:00
psychedelicious
fbff22c94b
feat(ui): memoize all components
2023-08-21 19:17:36 +10:00
psychedelicious
5c305b1eeb
feat(ui): add app error boundary
...
Should catch all app crashes
2023-08-21 19:17:36 +10:00
psychedelicious
990b6b5f6a
feat(ui): useful tooltips on invoke button
2023-08-21 19:17:36 +10:00
psychedelicious
2dfcba8654
fix(ui): fix graphs using old field names
2023-08-21 19:17:36 +10:00
psychedelicious
d95773f50f
Revert "feat(nodes): make fields that accept connection input optional in OpenAPI schema"
...
This reverts commit 7325cbdd250153f347e3782265dd42783f7f1d00.
2023-08-21 19:17:36 +10:00
psychedelicious
6d111aac90
fix(ui): fix node opacity slider hitbox
2023-08-21 19:17:36 +10:00
psychedelicious
f9fc89b3c5
feat(ui): nodes scheduler type default value -> "euler"
2023-08-21 19:17:36 +10:00
psychedelicious
ab76d54c10
feat(ui): update node schema parsing
...
simplified logic thanks to backend changes
2023-08-21 19:17:36 +10:00
psychedelicious
56245a7406
chore(ui): regen types
2023-08-21 19:17:36 +10:00
psychedelicious
bf04e913c2
feat(nodes): make primitive outputs not optional, fix primitive invocation defaults
2023-08-21 19:17:36 +10:00
psychedelicious
cdc49456e8
feat(api): add additional class
attribute to invocations and outputs in OpenAPI schema
...
It is `"invocation"` for invocations and `"output"` for outputs. Clients may use this to confidently and positively identify if an OpenAPI schema object is an invocation or output, instead of using a potentially fragile heuristic.
2023-08-21 19:17:36 +10:00
psychedelicious
37dc2d9d4d
feat(nodes): update vae node tags
2023-08-21 19:17:36 +10:00
psychedelicious
6e1ddb671e
feat(nodes): make fields that accept connection input optional in OpenAPI schema
...
Doing this via `BaseInvocation`'s `Config.schema_extra()` means all clients get an accurate OpenAPI schema.
Shifts the responsibility of correct types to the backend, where previously it was on the client.
2023-08-21 19:17:36 +10:00
psychedelicious
496a2db15c
feat(nodes): make id
, type
required in BaseInvocation, BaseInvocationOutput
...
Doing this via these classes' `Config.schema_extra()` method makes it unintrusive and clients will get the correct types for these properties.
Shifts the responsibility of correct types to the backend, where previously it was on the client.
2023-08-21 19:17:36 +10:00
psychedelicious
5292eda0e4
feat(nodes): remove "Loader" from model nodes
...
They are not loaders, they are selectors - remove this to reduce confusion.
2023-08-21 19:17:36 +10:00
psychedelicious
4ac41bc4b1
feat(ui): adding node selects new node exclusively
2023-08-21 19:17:36 +10:00
psychedelicious
4be4fc6731
feat(ui): rework add node select
...
- `space` and `/` open floating add node select
- improved filter logic (partial word matches)
2023-08-21 19:17:36 +10:00
psychedelicious
a9fdc77edd
feat(ui): rename node editor to workflow editor
2023-08-21 19:17:36 +10:00
psychedelicious
385765faec
fix(ui): fix missing tags on template parse
2023-08-21 19:17:36 +10:00
psychedelicious
adb05cde5b
feat(ui): simple partial search for nodes
2023-08-21 19:17:36 +10:00
psychedelicious
211e8203f8
feat(ui): organise nodes files
...
- also remove old `.gitignore` of `inputs/` which wasn't used and was ignoring a frontend folder
2023-08-21 19:17:36 +10:00
psychedelicious
0b9ae74192
fix(stats): RuntimeError: dictionary changed size during iteration
2023-08-21 19:17:36 +10:00
psychedelicious
165c57c001
feat(ui): add select all to workflow editor
2023-08-21 19:17:36 +10:00
psychedelicious
2514af79a0
feat(ui): crude node outputs display
...
Resets on invoke. Nothing fancy for the UI yet, just simple text (for numbers and strings) or image. For other output types, the output in JSON.
2023-08-21 19:17:36 +10:00
psychedelicious
f952f8f685
feat(ui): add typegen customisation for invocation outputs
...
The `type` property is required on all of them, but because this is defined in pydantic as a Literal, it is not required in the OpenAPI schema. Easier to fix this by changing the generated types than fiddling around with pydantic.
2023-08-21 19:17:36 +10:00
psychedelicious
484b572023
feat(nodes): primitives have value
instead of a
as field names
2023-08-21 19:17:36 +10:00
psychedelicious
cd9baf8092
fix(stats): fix InvocationStatsService
types
...
- move docstrings to ABC
- `start_time: int` -> `start_time: float`
- remove class attribute assignments in `StatsContext`
- add `update_mem_stats()` to ABC
- add class attributes to ABC, because they are referenced in instances of the class. if they should not be on the ABC, then maybe there needs to be some restructuring
2023-08-21 19:17:36 +10:00
psychedelicious
81385d7d35
fix(stats): fix fail case when previous graph is invalid
...
When retrieving a graph, it is parsed through pydantic. It is possible that this graph is invalid, and an error is thrown.
Handle this by deleting the failed graph from the stats if this occurs.
2023-08-21 19:17:36 +10:00
psychedelicious
519bcb38c1
feat(ui): node delete, copy, paste
2023-08-21 19:17:36 +10:00
psychedelicious
567d46b646
feat(ui): delete key works on workflow editor
2023-08-21 19:17:36 +10:00
psychedelicious
030802295b
feat(ui): reset only specific nodes/cnet that use images
...
Previously if an image was used in nodes and you deleted it, it would reset all of node editor. Same for controlnet.
Now it only resets the specific nodes or controlnets that used that image.
2023-08-21 19:17:36 +10:00
psychedelicious
a495c8c156
feat(ui): misc cleanups
2023-08-21 19:17:36 +10:00
psychedelicious
ae6db67068
feat(ui): add width to mantine selects
2023-08-21 19:17:36 +10:00
psychedelicious
3d84e7756a
fix(nodes): fix field names
2023-08-21 19:17:36 +10:00
psychedelicious
98431b3de4
feat: add Scheduler
as field type
...
- update node schemas
- add `UIType.Scheduler`
- add field type to schema parser, input components
2023-08-21 19:17:36 +10:00
psychedelicious
210a3f9aa7
feat(ui): make mantine single selects *exactly* the same size as chakra ones
2023-08-21 19:17:36 +10:00
psychedelicious
9332ce639c
fix(ui): fix node mouse interactions
...
Add "nodrag", "nowheel" and "nopan" class names in interactable elements, as neeeded. This fixes the mouse interactions and also makes the node draggable from anywhere without needing shift.
Also fixes ctrl/cmd multi-select to support deselecting.
2023-08-21 19:17:36 +10:00
psychedelicious
84cf8bdc08
feat(ui): field context menu, add/remove from linear ui
2023-08-21 19:17:36 +10:00
psychedelicious
64a6aa0293
fix(ui): move BoardContextMenu
to use IAIContextMenu
2023-08-21 19:17:36 +10:00
psychedelicious
5ae14bffba
fix(ui): clear exposedFields when resetting graph
2023-08-21 19:17:36 +10:00
psychedelicious
0909812c84
chore: black
2023-08-21 19:17:15 +10:00
psychedelicious
66c0aea9e7
fix(nodes): removed duplicate node
2023-08-21 19:17:15 +10:00
Damian Stewart
2bcded78e1
add BlendInvocation
2023-08-21 19:17:15 +10:00
Sergey Borisov
beb3e5aeb7
Report correctly to compel if we want get pooled in future(affects blend computation)
2023-08-21 19:05:40 +10:00
Lincoln Stein
5b6069b916
blackify (again)
2023-08-20 16:06:01 -04:00
Lincoln Stein
766cb887e4
resolve more flake8 problems
2023-08-20 15:57:15 -04:00
Lincoln Stein
ef317be1f9
blackify (again)
2023-08-20 15:46:12 -04:00
Lincoln Stein
027b84d1aa
add noqa comments to util/__init__
2023-08-20 15:43:17 -04:00
Lincoln Stein
11b670755d
fix flake8 error
2023-08-20 15:39:45 -04:00
Lincoln Stein
a536719fc3
blackify
2023-08-20 15:27:51 -04:00
Lincoln Stein
8e6d88e98c
resolve merge conflicts
2023-08-20 15:26:52 -04:00
Kevin Turner
2fef478497
fix(convert_ckpt): Removed is_safetensors_available
as safetensors is now a required dependency.
2023-08-18 11:05:59 -07:00
Kevin Turner
6df6abf6f6
Merge branch 'main' into dep/diffusers020
2023-08-18 11:02:52 -07:00
psychedelicious
1b70bd1380
fix(stats): fix InvocationStatsService
types
...
- move docstrings to ABC
- `start_time: int` -> `start_time: float`
- remove class attribute assignments in `StatsContext`
- add `update_mem_stats()` to ABC
- add class attributes to ABC, because they are referenced in instances of the class. if they should not be on the ABC, then maybe there needs to be some restructuring
2023-08-18 21:35:03 +10:00
psychedelicious
d1d2d5a47d
fix(stats): fix fail case when previous graph is invalid
...
When retrieving a graph, it is parsed through pydantic. It is possible that this graph is invalid, and an error is thrown.
Handle this by deleting the failed graph from the stats if this occurs.
2023-08-18 21:34:55 +10:00
psychedelicious
c49851e027
chore: minor cleanup after merge & flake8
2023-08-18 16:05:39 +10:00
psychedelicious
3c43594c26
Merge branch 'main' into fix/inpaint_gen
2023-08-18 15:57:48 +10:00
Martin Kristiansen
ce465acf04
Fixed OnnxRuntimeModel import
2023-08-18 15:52:04 +10:00
Martin Kristiansen
33ee418d8c
Fixing class level import
2023-08-18 15:52:04 +10:00
Martin Kristiansen
537ae2f901
Resolving merge conflicts for flake8
2023-08-18 15:52:04 +10:00
psychedelicious
f6db9da06c
chore(ui): rename file to not cause madge to fail
2023-08-18 13:20:29 +10:00
psychedelicious
a17dbd7df6
feat(ui): improve error toast messages
2023-08-18 13:20:29 +10:00
Kevin Turner
98a4cc20a9
Merge branch 'main' into dep/diffusers020
2023-08-17 20:04:11 -07:00
Lincoln Stein
e2bdcc0271
Merge branch 'main' into refactor/rename-performance-options
2023-08-17 22:36:08 -04:00
Lincoln Stein
ffd0f5924b
pass lazy_offload to model cache
2023-08-17 22:35:16 -04:00
Kevin Turner
654dcd453f
feat(dev_reload): use jurigged to hot reload changes to Python source
2023-08-17 19:02:44 -07:00
Sergey Borisov
cfd827cfad
Added node for creating mask inpaint
2023-08-18 04:07:40 +03:00
Lincoln Stein
4ebe839d54
Merge branch 'main' into bugfix/enable-links-in-autoimport
2023-08-17 18:55:45 -04:00
Lincoln Stein
bc16b50302
add followlinks to all os.walk() calls
2023-08-17 18:54:18 -04:00
Kevin Turner
4267132926
dep(diffusers): upgrade diffusers to 0.20
...
Removed `is_safetensors_available` as safetensors is now a required dependency of diffusers.
2023-08-17 13:42:29 -07:00
Lincoln Stein
e9a294f733
Merge branch 'main' into fix/inpaint_gen
2023-08-17 16:13:33 -04:00
Lincoln Stein
b69f26c85c
add support for "balanced" attention slice size
2023-08-17 16:11:09 -04:00