Jennifer Player
fdd0e57976
actually use the schema
2024-04-06 14:54:12 +11:00
Jennifer Player
8a17616bf4
recall initial image from metadata and set to image2image
2024-04-06 14:54:12 +11:00
Jennifer Player
f56b9537cd
added initial image to metadata viewer
2024-04-06 14:54:12 +11:00
symant233
b783679b9f
fix: typo, change shouldFitImageSize default value
2024-04-05 15:23:58 +11:00
symant233
d32e557e50
fix: add roundDownToMultiple
2024-04-05 15:23:58 +11:00
symant233
90686c7f9c
feat: Unified Canvas Fit Image Size on Drop
2024-04-05 15:23:58 +11:00
Jennifer Player
fec989f015
navigate to workflow tab when clicking load workflow
2024-04-05 14:16:33 +11:00
psychedelicious
3006285d13
fix(ui): display refiner models in mm
2024-04-05 09:46:03 +11:00
psychedelicious
5d4a571778
feat(ui): disable mosaic infill in graph builders
2024-04-05 08:49:13 +11:00
blessedcoolant
e55ab5b3a1
ui: Color Infill UI
2024-04-05 08:49:13 +11:00
blessedcoolant
adb7966bb3
ui: intial mosaic infill ui
...
Need to change color picking.
2024-04-05 08:49:13 +11:00
blessedcoolant
32a6b758cd
wip: Initial Infill Methods Refactor
2024-04-05 08:49:13 +11:00
psychedelicious
13027891d9
fix(ui): discarding last single canvas image breaks canvas
...
We need to reset the staging area if we are discarding the last image.
2024-04-04 08:00:08 -04:00
psychedelicious
9fdfd4267c
fix(ui): fix model name overflow
...
Closes #3897
2024-04-04 08:03:30 +11:00
psychedelicious
25bbaa73b9
feat(ui): add inplace
option to scan folder install ui
2024-04-04 07:58:11 +11:00
psychedelicious
2383fb93c7
fix(ui): show model install progress as 100 if finished
2024-04-04 07:58:11 +11:00
Mary Hipp
4927d1b7c9
add some test IDs for accordion targeting
2024-04-04 06:35:11 +11:00
blessedcoolant
5f01de1993
chore: ruff and lint fixes
2024-04-03 20:41:51 +05:30
blessedcoolant
4a0dfc3b2d
ui: improve the clip vision model picker layout
2024-04-03 12:40:08 +05:30
blessedcoolant
91a70c8d07
feat: Let users pick CLIP Vision model for Checkpoint IP Adapters
2024-04-03 12:40:05 +05:30
blessedcoolant
9ff729a7e6
fix: Update ModelView to accommodate for the new config changes to IP Adapter
2024-04-03 12:40:01 +05:30
psychedelicious
7b93b554d7
fix(ui): add default coherence mode to generation slice migration
...
The valid values for this parameter changed when inpainting changed to gradient denoise. The generation slice's redux migration wasn't updated, resulting in a generation error until you change the setting or reset web UI.
2024-04-03 08:46:31 +11:00
psychedelicious
b6ad33ac1a
perf(ui): reduce canvas max history to 100
...
This should further insulate canvas from excessive GCs.
2024-04-02 08:48:18 -04:00
psychedelicious
69ec14c7bb
perf(ui): use rfdc
for deep copying of objects
...
- Add and use more performant `deepClone` method for deep copying throughout the UI.
Benchmarks indicate the Really Fast Deep Clone library (`rfdc`) is the best all-around way to deep-clone large objects.
This is particularly relevant in canvas. When drawing or otherwise manipulating canvas objects, we need to do a lot of deep cloning of the canvas layer state objects.
Previously, we were using lodash's `cloneDeep`.
I did some fairly realistic benchmarks with a handful of deep-cloning algorithms/libraries (including the native `structuredClone`). I used a snapshot of the canvas state as the data to be copied:
On Chromium, `rfdc` is by far the fastest, over an order of magnitude faster than `cloneDeep`.
On FF, `fastest-json-copy` and `recursiveDeepCopy` are even faster, but are rather limited in data types. `rfdc`, while only half as fast as the former 2, is still nearly an order of magnitude faster than `cloneDeep`.
On Safari, `structuredClone` is the fastest, about 2x as fast as `cloneDeep`. `rfdc` is only 30% faster than `cloneDeep`.
`rfdc`'s peak memory usage is about 10% more than `cloneDeep` on Chrome. I couldn't get memory measurements from FF and Safari, but let's just assume the memory usage is similar relative to the other algos.
Overall, `rfdc` is the best choice for a single algo for all browsers. It's definitely the best for Chromium, by far the most popular desktop browser and thus our primary target.
A future enhancement might be to detect the browser and use that to determine which algorithm to use.
2024-04-02 08:48:18 -04:00
psychedelicious
a6c91979af
fix(ui): prevent canvas history leak
...
There were two ways the canvas history could grow too large (past the `MAX_HISTORY` setting):
- Sometimes, when pushing to history, we didn't `shift` an item out when we exceeded the max history size.
- If the max history size was exceeded by more than one item, we still only `shift`, which removes one item.
These issue could appear after an extended canvas session, resulting in a memory leak and recurring major GCs/browser performance issues.
To fix these issues, a helper function is added for both past and future layer states, which uses slicing to ensure history never grows too large.
2024-04-02 08:48:18 -04:00
psychedelicious
48e1a0c217
fix(ui): remove sync models functionality
...
The backend functionality was removed in the previous couple commits. Removing the frontend endpoints and components.
2024-03-28 12:35:41 +11:00
psychedelicious
c113a822d0
chore(ui): knip
2024-03-28 12:24:32 +11:00
psychedelicious
33900d2419
fix(ui): ts issue from react-virtuoso
2024-03-28 12:24:32 +11:00
psychedelicious
627a98770f
feat(ui): optimize size when using CA image size
...
When using a Control Adapter image's dimensions as the main output dimensions, fit the dimensions to the model's optimal dimensions.
2024-03-28 08:47:07 +11:00
Mark E. Shoulson
0bb0e226dc
Flip default ordering of workflow library; #5477
2024-03-28 07:36:03 +11:00
psychedelicious
3655a47200
feat(ui): remove references to HF token handling
2024-03-27 18:59:55 +05:30
psychedelicious
536bb4f053
chore(ui): lint
2024-03-27 10:52:32 +11:00
psychedelicious
3beb9b764a
feat(ui): <GalleryImage />
styling
2024-03-27 10:52:32 +11:00
Rohinish
171f2aa20d
fix(ui): image not getting selected
2024-03-27 10:52:32 +11:00
Rohinish
3cdfc6ab16
fix tests
2024-03-26 09:06:37 +11:00
Rohinish
42f72b19a6
fix localization and change in settings
2024-03-26 09:06:37 +11:00
psychedelicious
c856fab7d1
fix(ui): load default workflows mutation error
...
Loading default workflows sometimes requires we mutate the workflow object in order to change the category or ID of the workflow.
This happens in `invokeai/frontend/web/src/features/nodes/util/workflow/validateWorkflow.ts`
The data we get back from the query hooks is frozen and sealed by redux, because they are part of redux state. We need to clone the workflow before operating on it.
It's not clear how this ever worked in the past, because redux state has always been frozen and sealed.
2024-03-26 08:30:25 +11:00
psychedelicious
2ecbb9f720
fix(ui): model dependency parsing
2024-03-22 14:59:33 +11:00
blessedcoolant
4687739319
ui: Update rgbaToHex to optionally return alpha value or not
2024-03-22 06:23:51 +05:30
blessedcoolant
168b35f86d
fix: make the styling of the hex code component consistent with others
2024-03-22 06:23:51 +05:30
blessedcoolant
07fe0e8dc8
chore: Move color transformers to new file
2024-03-22 06:23:51 +05:30
blessedcoolant
45fc7d8054
feat: add Hex Code to ColorField Component
2024-03-22 06:23:51 +05:30
psychedelicious
6e869e6038
fix(ui): migrate redux state that has models
...
With the change to model identifiers from v3 to v4, if a user had persisted redux state with the old format, we could get unexpected runtime errors when rehydrating state if we try to access model attributes that no longer exist.
For example, the CLIP Skip component does this:
```ts
CLIP_SKIP_MAP[model.base].maxClip
```
In v3, models had a `base_type` attribute, but it is renamed to `base` in v4. This code therefore causes a runtime error:
- `model.base` is `undefined`
- `CLIP_SKIP_MAP[undefined]` is also undefined
- `undefined.maxClip` is a runtime error!
Resolved by adding a migration for the redux slices that have model identifiers. The migration simply resets the slice or the part of the slice that is affected, when it's simple to do a partial reset.
Closes #6000
2024-03-22 07:55:13 +11:00
psychedelicious
9eacc0c189
fix(ui): use the old combobox component for dropdowns
...
Closes #6011
2024-03-22 07:33:52 +11:00
psychedelicious
7019d93ff0
feat(ui): add missing detect_resolution to processors
2024-03-21 07:02:57 -07:00
Rohinish
9d30a063e7
fix: remaining strings
2024-03-20 16:26:14 +11:00
Rohinish
dc9a9c0160
fix: not translated strings
2024-03-20 16:26:14 +11:00
Rohinish
d45931a0af
fix(ui): localize text
2024-03-20 16:26:14 +11:00
psychedelicious
c1de129bbc
fix(ui): use refiner's seamless node for i2l VAE
...
Closes #5995
2024-03-20 16:08:27 +11:00
psychedelicious
c356cabe97
chore(ui): lint
2024-03-20 15:05:25 +11:00
psychedelicious
bdb52cfcf7
feat(ui): set HF token in MM tab
...
- Display a toast on UI launch if the HF token is invalid
- Show form in MM if token is invalid or unable to be verified, let user set the token via this form
2024-03-20 15:05:25 +11:00
psychedelicious
0e51495071
chore(ui): lint
2024-03-20 15:05:25 +11:00
psychedelicious
bd3e8cbdfb
feat(ui): add starter models tab to MM
...
Lists all starter models with an install button if the model is not yet installed.
2024-03-20 15:05:25 +11:00
psychedelicious
aa689e5384
style(ui): tweak ModelBaseBadge style
2024-03-20 15:05:25 +11:00
psychedelicious
484488dee4
feat(ui): add useStarterModelsToast
...
This displays a toast linking to the MM tab when there are no main models installed. It is a no-op when the `starterModels` feature is disabled.
2024-03-20 15:05:25 +11:00
psychedelicious
e8f4012b56
feat(ui): extract FetchingModelsLoader into reusable component
2024-03-20 15:05:25 +11:00
psychedelicious
97f16b2b7e
fix(ui): fix model install progress display
2024-03-20 15:05:25 +11:00
Mary Hipp
39fa8874fc
undo
2024-03-20 10:05:46 +11:00
Mary Hipp
4e245e9331
fix refiner metadata
2024-03-20 10:05:46 +11:00
psychedelicious
faa555df20
chore(ui): lint
2024-03-19 22:11:48 +11:00
psychedelicious
7a3e19227f
feat(ui): display created_by
using valueOrNull
2024-03-19 22:11:48 +11:00
psychedelicious
e706afe8a6
feat(ui): add valueOrNull
to useMetadataItem
...
In order to allow for null and undefined metadata values, this hook returned a symbol to indicate that parsing failed or was pending.
For values where the parsed value will never be null or undefined, it is useful get the value or null (instead of a symbol).
2024-03-19 22:11:48 +11:00
psychedelicious
acca197893
revert(ui): restore metadata parsers for created_by
2024-03-19 22:11:48 +11:00
Mary Hipp
aa2c404cab
move created_by out of recall panel
2024-03-19 22:11:48 +11:00
Mary Hipp
300a4693ae
prettier
2024-03-19 21:59:51 +11:00
Mary Hipp
fe563f05fc
tsc
2024-03-19 21:59:51 +11:00
Mary Hipp
d89e653588
fix(ui): remove image_resolution from colormap
2024-03-19 21:59:51 +11:00
Mary Hipp
8c6c33a315
'feat(ui): update processor constants to calculate default resolution based on current base model, add image_resolution to the processors that didn't have it in the UI as a configurable op
...
tion
2024-03-19 21:59:51 +11:00
psychedelicious
21621eebf0
feat(ui): handle control adapter processed images
...
- Add helper functions to build metadata for control adapters, including the processed images
- Update parses to parse the new metadata
2024-03-14 12:34:03 -07:00
psychedelicious
0131e7d928
fix(ui): recall control adapter metadata fields
2024-03-14 12:34:03 -07:00
psychedelicious
06ff105a1f
fix(ui): reset loras/control adapters when using recall all or remix
2024-03-14 12:34:03 -07:00
psychedelicious
19d66d5ec7
feat(ui): single getModelConfigs query
...
Single query, with simple wrapper hooks (type-safe). Updated everywhere in frontend.
2024-03-14 23:37:40 +11:00
psychedelicious
2584a950aa
feat(ui): add w/h to default model settings
2024-03-14 16:03:37 +11:00
psychedelicious
c66e8b395e
fix(ui): remove unused input on depth anything processor node
2024-03-14 10:53:57 +11:00
psychedelicious
4c417adc82
fix(ui): use revised metadata model types
...
We can also totally remove the fetch logic because we store the same model data in state now.
2024-03-14 10:53:57 +11:00
psychedelicious
db12ce95a8
fix(ui): invalid collect node error w/ control adapters
...
The graph builders used awaited functions within `Array.prototype.forEach` loops. This doesn't do what you'd think. This caused graphs to be enqueued before they were fully constructed.
Changed to `for..of` loops to fix this.
2024-03-14 10:53:57 +11:00
psychedelicious
ee3a1a95ef
fix(ui): control adapters require control images
...
There wasn't enough validation of control adapters during graph building. It would be possible for a graph to be built with empty collect node, causing an error. Addressed with an extra check.
This should never happen in practice, because the invoke button should be disabled if an invalid CA is active.
2024-03-14 10:53:57 +11:00
Mary Hipp
1d2743af1b
remove log
2024-03-14 07:25:48 +11:00
Mary Hipp
99d2099ccd
add key for controladapter CustomSelect too
2024-03-14 07:25:48 +11:00
Mary Hipp
b64a693f16
try adding a key to force rerender when items load
2024-03-14 07:25:48 +11:00
psychedelicious
614fece147
chore(ui): prettier
2024-03-13 21:02:29 +11:00
psychedelicious
8ef8082d65
feat(ui): style add model panel
2024-03-13 21:02:29 +11:00
psychedelicious
d93d4afbb7
feat(ui): style HF scan tab
2024-03-13 21:02:29 +11:00
Jennifer Player
d0800c4888
ui consistency, moved is_diffusers logic to backend, extended HuggingFaceMetadata, removed logic from service
2024-03-13 21:02:29 +11:00
Jennifer Player
2a300ecada
updated add model copy, added search to hugging face results
2024-03-13 21:02:29 +11:00
Jennifer Player
ee77abb4fe
updated simple install button to match other tabs
2024-03-13 21:02:29 +11:00
Jennifer Player
5ad048a161
fixed error handling
2024-03-13 21:02:29 +11:00
Jennifer Player
6369ccd05e
added placeholders, updated some copy
2024-03-13 21:02:29 +11:00
Jennifer Player
3a5314f1ca
install model if diffusers or single file, cleaned up backend logic to not mess with existing model install
2024-03-13 21:02:29 +11:00
Jennifer Player
f7cd3cf1f4
added hf models import tab and route for getting available hf models
2024-03-13 21:02:29 +11:00
Mary Hipp
d0d695c020
disable trigger phrase form if empty
2024-03-12 21:08:15 -04:00
psychedelicious
43948e0758
feat(ui): add setting for always show image size badge
2024-03-12 18:52:23 +11:00
psychedelicious
cc03fcbcb6
style(ui): tweak image dimension badge overlay styles
2024-03-12 18:52:23 +11:00
Rohinish
d1e445fa49
fix(ui): changed to theme tokens
2024-03-12 18:52:23 +11:00
Rohinish
adba8489f2
fix(ui): made changes to avoid overlapping
2024-03-12 18:52:23 +11:00
Rohinish
d919022ba5
fix(ui): fixed requested changes and made the badge display on hover
2024-03-12 18:52:23 +11:00
Rohinish
e076898798
fix(ui): logic to remove badge for small image size
2024-03-12 18:52:23 +11:00
Rohinish
9f19b766a4
feat(ui): Add image size badge to gallery images
2024-03-12 18:52:23 +11:00
psychedelicious
133c90e116
fix(ui): update all components and logic to use enriched ModelIdentifierField
2024-03-10 11:03:38 +11:00
Mary Hipp
cab5b64f0b
only render convert button if ckpt model
2024-03-08 13:19:08 -06:00
blessedcoolant
a42812d78d
ui(model_manager): Remember Scan Path
2024-03-08 14:05:57 -05:00
psychedelicious
57c1954da7
feat(ui): use control adapter processor helper in metadata parser
2024-03-08 12:44:58 -05:00
psychedelicious
a3570901f7
fix(ui): do not show default settings for refiner models
2024-03-08 12:44:58 -05:00
psychedelicious
fd457955bc
feat(ui): update default settings for control adapters
...
- Split out main model defaults
- Add controlnet/t2i defaults (which includes only the preprocessor)
2024-03-08 12:44:58 -05:00
psychedelicious
4ee4a801c6
feat(ui): update default settings for main models
...
Needed some massaging now that only main models get main model default settings.
2024-03-08 12:44:58 -05:00
psychedelicious
53b7f6be37
feat(ui): use default settings for control adapters for processor
2024-03-08 12:44:58 -05:00
psychedelicious
ddde355b09
fix(mm): add ui_type to model fields
...
Recently the schema for models was changed to a generic `ModelField`, and the UI was unable to derive the type of those fields. This didn't affect functionality, but it did break the styling of handles.
Add `ui_type` to the affected fields and update the UI to use the correct capitalizations.
2024-03-08 11:10:44 -05:00
psychedelicious
fe2c6f621a
fix(ui): do not allow model add when no location is provided
2024-03-08 14:41:03 +11:00
psychedelicious
d0fcdbe8a3
tweak(ui): simplify layout of inplace install form elements
2024-03-08 14:41:03 +11:00
Mary Hipp
c7b2bdb846
allow inplace installs
2024-03-08 14:41:03 +11:00
psychedelicious
8e694992bb
chore(ui): lint
2024-03-08 12:26:35 +11:00
psychedelicious
4077dfe0c3
fix(ui): clear pending trigger phrase immediately
...
If we don't clear it, there's an awkward flash of error state as the mutation completes.
2024-03-08 12:26:35 +11:00
psychedelicious
fe8e391aad
fix(ui): display trigger phrases for loras in mm editor
2024-03-08 12:26:35 +11:00
psychedelicious
ac8f606d99
fix(ui): default settings linked incorrectly
2024-03-08 12:26:35 +11:00
psychedelicious
ff66779aa3
tweak(ui): add colors to base/format badges
2024-03-08 12:26:35 +11:00
psychedelicious
2ca65ab9fa
tweak(ui): style trigger phrases
2024-03-08 12:26:35 +11:00
psychedelicious
b34624a2a8
tweak(ui): style model edit
2024-03-08 12:26:35 +11:00
psychedelicious
b8aa9752f1
tweak(ui): update default settings layouts
2024-03-08 12:26:35 +11:00
psychedelicious
1b5d8eb9e7
tweak(ui): use check icon for model save button
2024-03-08 12:26:35 +11:00
psychedelicious
773182f425
fix(ui): reset model edit form state with new values
...
Without this, the form will incorrectly compare its state to its initial default values to determine if it is dirty. Instead, it should reset its default values to the new values after successful submit.
2024-03-08 12:26:35 +11:00
psychedelicious
6386109fc5
feat(ui): move model save/close buttons to model header
2024-03-08 12:26:35 +11:00
psychedelicious
c008704bc8
feat(ui): model header styling
2024-03-08 12:26:35 +11:00
psychedelicious
8959d1bf51
fix(ui): do not persist model manager state
2024-03-08 12:26:35 +11:00
psychedelicious
8fd9342712
fix(ui): typing issues related to trigger phrase changes
2024-03-08 12:26:35 +11:00
psychedelicious
fdecb886b2
feat(ui): add main model trigger phrases
2024-03-08 12:26:35 +11:00
psychedelicious
2f0a653a7f
feat(ui): improved model list styling
2024-03-08 12:26:35 +11:00
psychedelicious
b0add805c5
feat(ui): use stickyscrollable for models list
2024-03-08 12:26:35 +11:00
psychedelicious
ed4e8624dd
feat(ui): model manager UI tweaks
...
- Move image display to left
- Move description into model header
- Move model edit & convert buttons to top right of model header
- Tweak styles for model display component
2024-03-08 12:26:35 +11:00
Josh Corbett
ad70cdfe87
feat: ✨ undo/redo discard canvas staged image
2024-03-07 19:24:55 +11:00
Josh Corbett
549d461107
refactor: 🚨 satisfy the linter
2024-03-07 19:24:55 +11:00
Josh Corbett
cab3748010
feat: ✨ discard current inpaint item
2024-03-07 19:24:55 +11:00
Jennifer Player
4af5a09a68
cleanup
2024-03-06 21:57:41 -05:00
Jennifer Player
8df02623f2
cleanup
2024-03-06 21:57:41 -05:00
Jennifer Player
aa88fadc30
use webp images
2024-03-06 21:57:41 -05:00
Jennifer Player
8411029d93
get model image url from model config, added thumbnail formatting for images
2024-03-06 21:57:41 -05:00
Jennifer Player
239b1e8cc7
moved upload image field and added delete image functionality
2024-03-06 21:57:41 -05:00
Jennifer Player
8a68355926
got model images displaying, still need to clean up types and unused code
2024-03-06 21:57:41 -05:00
Jennifer Player
86aef9f31d
removed modelimage for now
2024-03-06 21:57:41 -05:00
Jennifer Player
2f6964bfa5
fetching model image, still not working
2024-03-06 21:57:41 -05:00
Jennifer Player
c1cdfd132b
moved model image to edit page, added model_images service
2024-03-06 21:57:41 -05:00
Jennifer Player
f6bfe5e6f2
created ugly model image upload component
2024-03-06 21:57:41 -05:00
psychedelicious
e68d7fa6d7
fix(ui): update types
2024-03-07 10:56:59 +11:00
psychedelicious
5a561cab78
fix(ui): typo
2024-03-07 10:56:59 +11:00
psychedelicious
c57f6ee885
fix(ui): fix metadata for graphs to use new enriched format
2024-03-07 10:56:59 +11:00
Josh Corbett
4eefed12f0
refactor: 🚨 please the almighty linter
2024-03-07 10:44:40 +11:00
Josh Corbett
4301a3d6fd
feat: ✨ invert scroll direction for brush size
2024-03-07 10:44:40 +11:00
Mary Hipp
a00369a67a
add config path as field in model update form when model is a checkpoint
2024-03-07 10:29:29 +11:00
Mary Hipp
b1d72d411e
only show default settings on main models
2024-03-07 09:07:43 +11:00
Mary Hipp
46614ee28f
lint fix
2024-03-06 15:06:27 -05:00
Mary Hipp
b019f9bb8b
make sure all metadata in viewer is rendered at correct font size - specifically fixes control adapter metadata being too big
2024-03-06 15:06:27 -05:00