Commit Graph

2179 Commits

Author SHA1 Message Date
psychedelicious
0b2f0c05b2 fix(ui): fix selecting model does not update form 2023-07-14 19:31:52 +10:00
psychedelicious
1e5ae9d986 feat(ui): refactor model manager ui
- simplify UI logic in `ModelManagerPanel` components
- fix up the types a bit to make it easier to select models
- remove `openModel` state, just make it a useState since it is very local to model manager
2023-07-14 19:22:37 +10:00
psychedelicious
f2af82bf73 feat(ui): add model convert for success/failure handling 2023-07-14 17:39:00 +10:00
psychedelicious
6d7fb49a7a fix(ui): fix model edit button disabled status 2023-07-14 17:36:10 +10:00
psychedelicious
48a8bd4985 feat(ui): add model update for success/failure handling 2023-07-14 17:35:45 +10:00
psychedelicious
d8437d3036 feat(ui): add simple selectIsBusy selector 2023-07-14 17:34:34 +10:00
psychedelicious
a0cb18a12c feat(ui): refetch models on socket connect 2023-07-14 17:34:13 +10:00
psychedelicious
b2005d821a fix(ui): fix types for models queries 2023-07-14 16:59:31 +10:00
psychedelicious
66b12ab0ea fix(ui): do not blacklist the rtk query events
doing so breaks the devtools
2023-07-14 16:59:13 +10:00
blessedcoolant
834774ce4c fix: Merge Conflicts 2023-07-14 18:16:34 +12:00
blessedcoolant
7cd60214cb Merge branch 'main' into mm-ui 2023-07-14 18:14:45 +12:00
blessedcoolant
5c58bc6348 fix: Missing VAE Input Field Component 2023-07-14 16:07:22 +10:00
blessedcoolant
e1d6c09ed2 fix: Type errors & missing Unet field component 2023-07-14 16:07:22 +10:00
psychedelicious
8dd4ca5723 feat(ui): update node editor to use model object format
similar to the previous commit, update the node editor to not just store models as strings - instead, store the model object.

the model select components in nodes are now just kinda copy-pastes over the linear UI versions of the same components, but they were different enough that we can't just share them.

i explored adding some props to override the linear ui components' logic, but it was too brittle. so just copy/paste.
2023-07-14 16:07:22 +10:00
psychedelicious
a071873327 feat(ui): fix a lot of model-related crashes/bugs
We were storing all types of models by their model ID, which is a format like `sd-1/main/deliberate`.

This meant we had to do a lot of extra parsing, because nodes actually wants something like `{base_model: 'sd-1', model_name: 'deliberate'}`.

Some of this parsing was done with zod's error-throwing `parse()` method, and in other places it was done with brittle string parsing.

This commit refactors the state to use the object form of models.

There is still a bit of string parsing done in the to construct the ID from the object form, but it's far less complicated.

Also, the zod parsing is now done using `safeParse()`, which does not throw. This requires a few more conditional checks, but should prevent further crashes.
2023-07-14 16:07:22 +10:00
psychedelicious
14587464d5 fix(ui): check for metadataAccumulator before connecting to it
Fixes an edge case in graph building.
2023-07-14 16:07:22 +10:00
psychedelicious
d858a0c5d8 fix(ui): fix rtk tags
I had mixed up `type` and `id` on a bunch of the tags. Fixing those
2023-07-14 15:32:09 +10:00
blessedcoolant
abe2a0f9b4 fix: merge conflicts (name renamed to model_name) for models 2023-07-14 15:53:28 +12:00
blessedcoolant
16e93c6455 Merge branch 'main' into mm-ui 2023-07-14 15:46:53 +12:00
psychedelicious
536a397b12
ui: gallery enhancements (#3752)
* feat(ui): salvaged gallery UI enhancements

* restore boardimage functionality, load boardimages and remove some cachine optimizations in the name of data integrity

* fix assets, fix load more params

* jk NOW fix assets, fix load more params

---------

Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
Co-authored-by: Mary Hipp Rogers <maryhipp@gmail.com>
2023-07-13 20:31:10 +00:00
blessedcoolant
50f10ce5d7 fix: model_name reference in Model Manager 2023-07-14 03:36:11 +12:00
psychedelicious
d46261a528 chore(ui): regen types 2023-07-13 23:26:52 +10:00
psychedelicious
978016ea51 feat(ui): use query to populate infill methods dropdown
- available infill methods is server state - remove it from client state, use the query to populate the dropdown
- add listener to ensure the selected infill method is an available one
2023-07-13 23:26:52 +10:00
psychedelicious
4d25d702a1 feat(api): app/config route returns available infill methods 2023-07-13 23:26:52 +10:00
Mary Hipp
d6c914eedc detect if user has patchmatch enabled 2023-07-13 23:26:52 +10:00
maryhipp
fba25792f9 add new route for app config 2023-07-13 23:26:52 +10:00
blessedcoolant
9348dc8e0d
Merge branch 'main' into fix/controlnet_cfg_inj_cond 2023-07-14 01:11:04 +12:00
blessedcoolant
34bff3ba77
Merge branch 'main' into fix-inpainting 2023-07-13 23:35:12 +12:00
mickr777
3cf75e48c5 remove clearnode export 2023-07-13 21:34:12 +10:00
mickr777
b5e7384f09 Delete clearnodes and change nodeEditorReset 2023-07-13 21:34:12 +10:00
mickr777
ee253ea4f1 add useCallback 2023-07-13 21:34:12 +10:00
blessedcoolant
430b9c291f fix: Loras not working correctly with Inpainting 2023-07-13 22:59:38 +12:00
blessedcoolant
16f53228c2 Merge branch 'main' into fix-inpainting 2023-07-13 22:31:08 +12:00
psychedelicious
4ab4942e69 fix(ui): fix nodes crash when adding model loader 2023-07-13 20:29:03 +10:00
blessedcoolant
98a5b3fc24
Merge branch 'main' into fix/ui/fix-missing-nodes 2023-07-13 22:18:27 +12:00
psychedelicious
944b46908a fix(ui): fix node parsing failing 2023-07-13 20:17:18 +10:00
psychedelicious
23d2af52df fix(ui): fix lora name disappearing 2023-07-13 20:14:26 +10:00
psychedelicious
43cc96255b fix(ui): check for metadata accumulator before connecting to it 2023-07-13 20:05:45 +10:00
psychedelicious
4702eb2e6a fix(ui): fix inpaint invalid model error 2023-07-13 19:59:51 +10:00
blessedcoolant
5a546e66f1 Merge branch 'main' into fix-inpainting 2023-07-13 20:42:13 +12:00
blessedcoolant
19fdb70e20 Merge branch 'clearnodes' of https://github.com/mickr777/InvokeAI into pr/3747 2023-07-13 20:34:57 +12:00
blessedcoolant
6861499697 fix: Simplify modal code 2023-07-13 20:34:23 +12:00
mickr777
8274488d2c
Merge branch 'main' into clearnodes 2023-07-13 18:30:12 +10:00
mickr777
91c4e4c9b9
useDisclosure instead of useState. 2023-07-13 18:08:30 +10:00
mickr777
d1ac50b061
Change Confirmation Dialog
Changed Confirmation Dialog to use chakra-ui alert dialog
2023-07-13 17:19:59 +10:00
psychedelicious
5f5c93abb4 feat(app): embed PNG info in invokeai_metadata and invokeai_graph
Using just `metadata` and `graph` feel a bit too generic.
2023-07-13 15:40:05 +10:00
psychedelicious
6bea7bac36 feat(ui): restore recall functionality
- Restore recall functionality to `CurrentImageButtons` and `ImageContextMenu`.
- Debounce metadata requests for `ImageMetadataViewer` and `CurrentImageButtons` by 500ms. It's possible to scroll through these really fast, so we want to debounce the network requests.
- `ImageContextMenu` is lazy-mounted so it does not need to be debounced; it makes the metadata request as soon as you click it.
- Move next/prev image selection logic into hook and add the hotkeys for this to `CurrentImageButtons`. The hotkeys now work when metadata viewer is open.

I will follow up with improved loading state during the debounced calls in the future
2023-07-13 15:40:05 +10:00
psychedelicious
a43c900961 feat(ui): update UI for new metadata
- Update for new routes
- Update model storage in state to be `MainModelField` type instead of `string`, simplifies a lot of model handling
- Update model-related stuff for model `name` --> `model_name`
- Update linear graphs to use `MetadataAccumulator`
- Update `ImageMetadataViewer` UI
- Ensure all `recall` functions work (well, the ones that are active anyways)
2023-07-13 15:40:05 +10:00
psychedelicious
bddc04af96 chore(ui): regen types 2023-07-13 15:40:05 +10:00
psychedelicious
50bef87da7 feat(db,nodes,api): refactor metadata
Metadata for the Linear UI is now sneakily provided via a `MetadataAccumulator` node, which the client populates / hooks up while building the graph.

Additionally, we provide the unexpanded graph with the metadata API response.

Both of these are embedded into the PNGs.

- Remove `metadata` from `ImageDTO`
- Split up the `images/` routes to accomodate this; metadata is only retrieved per-image
- `images/{image_name}` now gets the DTO
- `images/{image_name}/metadata` gets the new metadata
- `images/{image_name}/full` gets the full-sized image file
- Remove old metadata service
- Add `MetadataAccumulator` node, `CoreMetadataField`, hook up to `LatentsToImage` node
- Add `get_raw()` method to `ItemStorage`, retrieves the row from DB as a string, no pydantic parsing
- Update `images`related services to handle storing and retrieving the new metadata
- Add `get_metadata_graph_from_raw_session` which extracts the `graph` from `session` without needing to hydrate the session in pydantic, in preparation for providing it as metadata; also removes all references to the `MetadataAccumulator` node
2023-07-13 15:40:05 +10:00
psychedelicious
eb0d55263b fix(mm): make model config attribute names consistent
Our model fields use `model_name`, but the API response uses `name`. Some places use `model_type` but the API response used `type`.

Changed the API response to provide `model_name` and `model_type`, which simplifies how we manage models on the client substantially.
2023-07-13 15:40:05 +10:00
Mary Hipp
be02a55cac output stringified error for session and invocation errors 2023-07-13 15:24:56 +10:00
mickr777
8a25e22fb0
Update en.json 2023-07-13 14:42:09 +10:00
mickr777
90441c4257
Update TopCenterPanel.tsx 2023-07-13 14:41:00 +10:00
mickr777
99c1d5c044
Update nodesSlice.ts 2023-07-13 14:40:33 +10:00
mickr777
c7dcf1f4a0
Create ClearNodesButton.tsx 2023-07-13 14:40:09 +10:00
blessedcoolant
7e3b9f1320 fix: Inpaint not working with some schedulers
Co-Authored-By: StAlKeR7779 <7768370+StAlKeR7779@users.noreply.github.com>
2023-07-13 15:06:03 +12:00
blessedcoolant
1c2144794c Merge branch 'main' into mm-ui 2023-07-13 13:58:22 +12:00
blessedcoolant
bc7c0f75a0 fix: Rename toggleBoundingBoxDimension to flipBoundingBoxAxes 2023-07-13 13:53:15 +12:00
blessedcoolant
b7a4f3c2cb
Merge branch 'main' into bbox-ar 2023-07-13 13:45:08 +12:00
blessedcoolant
2cfe67bf1f
Merge branch 'main' into save-load-nodes 2023-07-13 13:37:36 +12:00
blessedcoolant
71e34ac256 Merge branch 'main' into mm-ui 2023-07-13 12:48:43 +12:00
Mary Hipp Rogers
4a8172bcd0
disable features that are not supported yet or no longer supported (#3739)
Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2023-07-12 13:03:39 -04:00
Sergey Borisov
67c8cf4bc2 Controlnet model detection 2023-07-12 08:50:19 -04:00
Sergey Borisov
a328986b43 Less naive model detection 2023-07-12 08:50:19 -04:00
blessedcoolant
31bb4bfc61 style: Update Model Manager Styling to new format 2023-07-12 23:12:12 +12:00
blessedcoolant
3db1aa738c feat: Restore Model Merge functionality 2023-07-12 22:43:06 +12:00
blessedcoolant
683229e285 fix: Update model convert toast message 2023-07-12 20:44:57 +12:00
blessedcoolant
2cedf6aed5 feat: Restore Model Convert Functionality 2023-07-12 20:40:58 +12:00
blessedcoolant
6238a53fdd feat: Add basic form validation for path input 2023-07-12 20:11:05 +12:00
blessedcoolant
310e401b03 feat: Create basic IAIMantineTextInput component for form usage 2023-07-12 20:10:33 +12:00
blessedcoolant
3568e28b1c fix: Type resolutions & Bug Fixes
- Fix checkpoint filter not working
- Resolve all typescript and undefined issues in Model Manager List / Edit Forms and main panel
2023-07-12 19:05:16 +12:00
blessedcoolant
5a6ad99d4e feat: Restore Delete Model Functionality 2023-07-12 16:39:07 +12:00
blessedcoolant
afb46564e8 feat: Restore Update Model functionality 2023-07-12 16:13:49 +12:00
blessedcoolant
0282aa83c5 feat: Do not store edge styling data when saving a graph setup 2023-07-12 14:32:54 +12:00
blessedcoolant
84af35597d fix: Update Load & Save Icons to FontAwesome 2023-07-12 13:58:14 +12:00
blessedcoolant
3b61a3abeb Merge branch 'main' into save-load-nodes 2023-07-12 13:52:26 +12:00
blessedcoolant
222d8b05a6 fix: Update Sync icon to FontAwesom 2023-07-12 13:31:24 +12:00
blessedcoolant
cd11d08d74 feat: Update Reload Schema button 2023-07-12 13:14:14 +12:00
blessedcoolant
acea304348 feat(node-editor): fit view on init 2023-07-12 13:11:43 +12:00
StAlKeR7779
b8a9b499df
Merge branch 'main' into fix/controlnet_cfg_inj_cond 2023-07-11 23:43:47 +03:00
Lincoln Stein
25591788c1 fix conflicts 2023-07-11 15:55:10 -04:00
blessedcoolant
b6b22dc799 feat: Update Reload Schema button 2023-07-12 07:50:11 +12:00
Lincoln Stein
dab03fb646 rename gpu_mem_reserved to max_vram_cache_size
To be consistent with max_cache_size, the amount of memory to hold in
VRAM for model caching is now controlled by the max_vram_cache_size
configuration parameter.
2023-07-11 15:25:39 -04:00
Lincoln Stein
d32f9f7cb0 reverse logic of gpu_mem_reserved
- gpu_mem_reserved now indicates the amount of VRAM that will be reserved
  for model caching (similar to max_cache_size).
2023-07-11 15:16:40 -04:00
Lincoln Stein
fabcf276ac rebuild front end 2023-07-11 14:45:46 -04:00
Lincoln Stein
9bd6b6068c Merge branch 'main' into release/invokeai-3-0-beta 2023-07-11 10:57:59 -04:00
Lincoln Stein
f6302aa691 Merge branch 'main' into release/invokeai-3-0-beta 2023-07-11 10:57:36 -04:00
Lincoln Stein
8b62eb364c bump version 2023-07-11 10:57:17 -04:00
Lincoln Stein
6b93c1451f do not crash when probing an unknown model type 2023-07-11 10:56:47 -04:00
blessedcoolant
5bf144e6bc feat(node-editor): fit view on init 2023-07-11 18:22:50 +12:00
blessedcoolant
913789d966
Merge branch 'main' into maryhipp/enable-wh-for-txt-2-img 2023-07-11 13:13:41 +12:00
Mary Hipp
48efcb0ba9 always enable these things on txt2img tab 2023-07-10 20:19:03 -04:00
Lincoln Stein
83ec4c983c
Merge branch 'main' into lstein/keep-models-in-vram 2023-07-10 18:47:05 -04:00
Lincoln Stein
c9c61ee459
Update invokeai/app/services/config.py
Co-authored-by: Eugene Brodsky <ebr@users.noreply.github.com>
2023-07-10 18:46:32 -04:00
Mary Hipp
83eb511330 disable hotkey for lightbox if lightbox is disabled 2023-07-10 18:44:54 -04:00
blessedcoolant
bbdb26511a feat: Fit to view on load rather than using older position 2023-07-11 09:44:36 +12:00
blessedcoolant
b9767e9c6e feat: Save and Loads Nodes From Disk 2023-07-11 07:22:45 +12:00
Mary Hipp
f46f8058be load thumbnail 2023-07-10 23:47:49 +10:00
Mary Hipp
18e2b130fc disable multiselect 2023-07-10 23:47:49 +10:00
blessedcoolant
0bfa5ffd8e feat: Make BBox Handles adapt to Aspect Ratio lock 2023-07-10 20:37:00 +12:00
blessedcoolant
15175bb998 feat: Add Aspect Ratio To Canvas Bounding Box 2023-07-10 20:04:32 +12:00
blessedcoolant
964c71dcb0 feat: Add Swap Sizes 2023-07-10 18:10:57 +12:00
blessedcoolant
3476c58702 Merge branch 'main' into aspect-ratio 2023-07-10 17:13:27 +12:00
psychedelicious
00e26ffa9a fix(nodes): remove board_id column from images table
This is extraneous; the `board_images` table holds image-board relationships.
2023-07-10 11:30:35 +10:00
psychedelicious
1c45d18e6d fix(ui): correctly set disabled on invoke button during generation
It wasn't disabled when it should have been, looked clickable during generation.
2023-07-10 11:23:13 +10:00
psychedelicious
a7b8109ac2 feat(ui): memoize NextPrevImageButtons component
This was rerendering on every progress image, now it doesn't
2023-07-10 11:22:34 +10:00
psychedelicious
265996d230 feat(ui): memoize ImageContextMenu selector
Without the selector itself being memoized, the gallery was rerendering on every progress image.
2023-07-10 11:21:56 +10:00
Lincoln Stein
5759a390f9 introduce gpu_mem_reserved configuration parameter 2023-07-09 18:35:04 -04:00
Lincoln Stein
8d7dba937d fix undefined variable 2023-07-09 14:37:45 -04:00
Lincoln Stein
d6cb0e54b3 don't unload models from GPU until the space is needed 2023-07-09 14:26:30 -04:00
Lincoln Stein
2f3190ad6c merge with main 2023-07-09 13:28:05 -04:00
Lincoln Stein
f9dc5a0530 bump version 2023-07-09 13:27:11 -04:00
Lincoln Stein
f335363a6f Merge branch 'main' into release/invokeai-3-0-beta 2023-07-09 13:26:49 -04:00
psychedelicious
dfe338fc50 fix(ui): fix missing import 2023-07-09 22:47:54 +10:00
psychedelicious
c5539b442c feat(api): set max-age for images
Image files are immutable and we expect deletion to result in no further requests for a given image, so we can set the max-age to something thicc.

Resolves #3426
2023-07-09 22:42:05 +10:00
psychedelicious
0e178c3bb7 feat(ui): aspect ratio styling 2023-07-09 22:13:38 +10:00
psychedelicious
50218f1595 fix(ui): fix number input on aspect ratio 2023-07-09 22:13:26 +10:00
blessedcoolant
cafd97e5bc fix: Reset handler not adjusting correctly 2023-07-09 23:24:15 +12:00
blessedcoolant
d01d5b6fa9 feat: Add Aspect Ratio 2023-07-09 23:18:06 +12:00
mickr777
5b876bd646
Add Stop button to nodes tab 2023-07-09 11:48:31 +10:00
psychedelicious
4640969037 fix(api): fix for borked windows mimetypes registry
It's possible for the Windows mimetypes for js to be changed and cause content-type errors when running the app.

Explicitly set the mimetypes to rectify this. Note that the root cause is a misconfiguration on the client - not our end.

See https://github.com/invoke-ai/InvokeAI/discussions/3684#discussioncomment-6391352
2023-07-09 11:05:01 +10:00
psychedelicious
d7218d44d7 feat(ui): add progress image node
it is excluded from graph, so you can add it without affecting generation
2023-07-09 10:51:08 +10:00
psychedelicious
2454b51d51 fix(ui): escape on embedding popup closes it 2023-07-09 10:47:30 +10:00
blessedcoolant
df27218f96
Merge branch 'main' into main 2023-07-09 11:56:17 +12:00
Lincoln Stein
b6cc4df1d8 report processing stack traces to the console 2023-07-08 19:48:32 -04:00
blessedcoolant
5fb24197cd fix: Rearrange Model Select to take full width 2023-07-09 07:23:31 +12:00
Lincoln Stein
5f7435955e if models.yaml doesn't exist, rebuild it 2023-07-08 15:13:51 -04:00
Lincoln Stein
f4aa28bee0 bump version 2023-07-08 14:52:29 -04:00
Lincoln Stein
3616ac8754 model installer calls invokeai-configure if something wrong with root 2023-07-08 12:45:23 -04:00
Lincoln Stein
92d4486214 don't write 'version:' to the invokeai.yaml file 2023-07-08 12:06:23 -04:00
Lincoln Stein
69ef1e1e56 speculative change to upgrade script 2023-07-08 11:45:26 -04:00
blessedcoolant
9af61d3ff5
Merge branch 'main' into lstein/find-root-works-under-conda 2023-07-09 02:42:59 +12:00
psychedelicious
3001e4c947 feat(ui): update right arrow gallery load more
- add hotkey support
- add loading state
- only show if there are more images to load
2023-07-08 10:29:31 -04:00
mickr777
2c956806d7 Update NextPrevImageButtons.tsx 2023-07-08 10:29:31 -04:00
psychedelicious
be06d4c0af fix(ui): fix selection on dropdowns
Mantine's multiselect does not let you edit the search box with mouse, paste into it, etc. Normal select is fine.

I can't remember why I made Lora etc multiselects, but everything seems to work with normal selects, so I've change to that.
2023-07-08 10:29:19 -04:00
psychedelicious
81817532f8 fix(ui): fix tab translations
model manager was using the wrong key due to the tabs render func subbing values in. made translation key a prop of a tab item.
2023-07-08 10:29:05 -04:00
Lincoln Stein
ae835f47b6 add missing frontend files 2023-07-08 10:18:47 -04:00
Lincoln Stein
8a3072db1a fix image upload issue 2023-07-08 10:14:55 -04:00
Lincoln Stein
bd9786564c merge with main 2023-07-08 10:11:25 -04:00
Lincoln Stein
f6ecee926f version of _find_root() that works in conda environment 2023-07-08 09:02:17 -04:00
Lincoln Stein
454c2c0952 version of _find_root() that works in conda environment 2023-07-08 09:01:05 -04:00
blessedcoolant
b27bf7bb0c
Merge branch 'main' into add-app-version 2023-07-08 21:58:17 +12:00
psychedelicious
0c528f22a7 fix(ui): improve initial gallery loading logic
- `isLoading` - now `true` *only* on first load
- added `isFetching` - `true` whenever gallery images are fetching
- on first load, show a spinner instead of skeletons. this prevents an awkward flash of skeletons into empty gallery when the gallery doesn't have enough images to fill it.
- removed `imageCategoriesChanged` listener, bc now on app start, both images and assets will be populated. leaving this in caused jank flashes of skeletons when switching gallery tabs when gallery doesn't have images to load
2023-07-08 19:57:36 +10:00
psychedelicious
d418e763ce fix(ui): fix controlnet processing fallback dimensions
Just made it a spinner, getting it to be styled correctly otherwise is a pain
2023-07-08 19:57:36 +10:00
psychedelicious
07ce53678b fix(ui): fix drag preview image dimensions 2023-07-08 19:57:36 +10:00
psychedelicious
173d3e6918 fix(ui): ensure initial gallery fetch happens once, fix skeleton count for initial fetch 2023-07-08 19:57:36 +10:00
psychedelicious
18b6c1a24b feat(ui): fill up gallery on app start
taking the coward's way out on this and just fetching 100 images & 100 assets on app start...

- add `appStarted` action, dispatched once on mount in App.tsx. listener fetches 100 images & 100 assets
- fix bug with selectedBoardId & assets tab
2023-07-08 19:57:36 +10:00
Mary Hipp
cbecf3cb89 handle case where user has no images 2023-07-08 19:57:36 +10:00
Mary Hipp
84645495a9 load images for whichever tab youre on 2023-07-08 19:57:36 +10:00