Commit Graph

9875 Commits

Author SHA1 Message Date
psychedelicious
8b9f0a9551 feat(nodes): update LoRAMetadataItem model
LoRA model now at under `model` not `lora.
2024-02-26 14:49:38 -05:00
psychedelicious
ab57976e42 tidy(ui): tidy model identifier logic
- Move some files around
- Use util to extract key and base from model config
2024-02-26 14:49:38 -05:00
psychedelicious
3c103c89f3 feat(ui): optimize model query caching
When we retrieve a list of models, upsert that data into the `getModelConfig` and `getModelConfigByAttrs` query caches.

With this change, calls to those two queries are almost always going to be free, because their caches will already have all models in them. The exception is queries for models that no longer exist.
2024-02-26 14:49:38 -05:00
psychedelicious
0f19176944 fix(ui): fix lora metadata item type 2024-02-26 14:49:38 -05:00
psychedelicious
fc09a954b5 fix(ui): fix node type 2024-02-26 14:49:38 -05:00
psychedelicious
e7eee29825 feat(ui): add transformation to width/height parameter schemas to round to multiple of 8
This allows image dimensions that are not multiples of 8 to still be recalled with best effort.
2024-02-26 14:49:38 -05:00
psychedelicious
2c1ba23f61 fix(ui): fix lora metadata rendering 2024-02-26 14:49:38 -05:00
psychedelicious
58ef6dc6ce fix(ui): fix type issues related to change in LoRA type 2024-02-26 14:49:38 -05:00
psychedelicious
8faefa89fe feat(ui): migrate all metadata recall logic to new system 2024-02-26 14:49:38 -05:00
psychedelicious
02f59a3831 fix(ui): use id for component key in control adapter components 2024-02-26 14:49:38 -05:00
psychedelicious
2555be3058 feat(ui): no JSX in metadata handlers 2024-02-26 14:49:38 -05:00
psychedelicious
e174ce038f feat(ui): refactor metadata handling (again)
Add concepts for metadata handlers. Handlers include parsers, recallers and validators for different metadata types:
- Parsers parse a raw metadata object of any shape to a structured object.
- Recallers load the parsed metadata into state. Recallers are optional, as some metadata types don't need to be loaded into state.
- Validators provide an additional layer of validation before recalling the metadata. This is needed because a metadata object may be valid, but not able to be recalled due to some other requirement, like base model compatibility. Validators are optional.

Sometimes metadata is not a single object but a list of items - like LoRAs. Metadata handlers may implement an optional set of "item" handlers which operate on individual items in the list.

Parsers and validators are async to allow fetching additional data, like a model config. Recallers are synchronous.

The these handlers are composed into a public API, exported as a `handlers` object. Besides the handlers functions, a metadata handler set includes:
- A function to get the label of the metadata type.
- An optional function to render the value of the metadata type.
- An optional function to render the _item_ value of the metadata type.
2024-02-26 14:49:38 -05:00
psychedelicious
0f10faf0d4 build(ui): do not fail build on eslint error in dev mode 2024-02-26 14:49:38 -05:00
psychedelicious
393e32f8a7 chore(ui): typegen 2024-02-26 14:49:38 -05:00
psychedelicious
70412464c8 feat(api): add MM get_by_attrs route
Gets the first model that matches the given name, base and type. Raises 404 if there isn't one.

This will be used for backwards compatibility with old metadata.
2024-02-26 14:49:38 -05:00
Mary Hipp
30fdb9dbfd undo 2024-02-26 14:44:37 -05:00
Mary Hipp
66f6013436 fix literal strings in MM UI 2024-02-26 14:44:37 -05:00
Mary Hipp
49b04f7db8 fix TI appearing as key in prompt 2024-02-26 14:20:28 -05:00
Mary Hipp
253dc5d43d fix base model grouping in combobox 2024-02-26 14:20:28 -05:00
psychedelicious
3ccb4e6ff9 fix(mm): fix ModelCacheBase method name 2024-02-26 17:38:31 +11:00
psychedelicious
200a9d1801 chore: ruff 2024-02-26 17:38:31 +11:00
Lincoln Stein
b09a76ea0d recover gracefuly from GPU out of memory errors (next version) 2024-02-26 17:38:31 +11:00
Lincoln Stein
8a2030e78a clear out VRAM when an OOM occurs 2024-02-26 17:38:31 +11:00
psychedelicious
dfa5505ed8 feat(ui): bulk download click to download 2024-02-25 22:23:15 -05:00
psychedelicious
f8b731b900 fix(ui): fix node types for canvas graphs 2024-02-24 19:38:16 +11:00
psychedelicious
fd9ab0fb7d chore(ui): typegen 2024-02-24 19:38:16 +11:00
psychedelicious
f504a5c96e tidy(nodes): rename canvas paste back 2024-02-24 19:38:16 +11:00
blessedcoolant
afe6639b9c fix: outpaint result not getting pasted back correctly 2024-02-24 19:38:16 +11:00
blessedcoolant
1f1bf15099 fix: lint errors 2024-02-24 19:38:16 +11:00
blessedcoolant
8fa238f100 canvas: improve paste back (or try to) 2024-02-24 19:38:16 +11:00
blessedcoolant
30b6a0ee23 wip(ui): Replace 2 Layer Coherence pass with Gradient Mask 2024-02-24 19:38:16 +11:00
psychedelicious
784878c300 chore: ruff 2024-02-24 19:04:52 +11:00
psychedelicious
b51b163400 fix(ui): fix merge issue 2024-02-24 19:04:52 +11:00
psychedelicious
7e13224ec8 fix(ui): use new scan_folder response instead of hook to determine if models are installed already 2024-02-24 19:04:52 +11:00
psychedelicious
7bc454209c chore(ui): typegen 2024-02-24 19:04:52 +11:00
psychedelicious
cc7f6c7048 feat(mm): add logic to scan_folder route to check if a model is already installed
This was done in the frontend before but it's something the backend should handle.

The logic compares the found model paths to the path and source of all installed models. It excludes core models.
2024-02-24 19:04:52 +11:00
psychedelicious
8b8d950137 chore(ui): lint 2024-02-24 19:04:52 +11:00
psychedelicious
24fd7f41ff build(ui): restore i18n eslint rule 2024-02-24 19:04:52 +11:00
psychedelicious
7c5e458372 chore: ruff 2024-02-24 19:04:52 +11:00
psychedelicious
a5dba4b0d9 fix(ui): fix metadata route 2024-02-24 19:04:52 +11:00
psychedelicious
72fb1cefff chore(ui): typegen 2024-02-24 19:04:52 +11:00
psychedelicious
a64f1c0b20 feat(api): mm metadata route "meta" -> "metadata" 2024-02-24 19:04:52 +11:00
Mary Hipp
974658107d lint fix 2024-02-24 19:04:52 +11:00
Mary Hipp
07fb5d5c19 updated translations 2024-02-24 19:04:52 +11:00
maryhipp
20c75e7a7e fix convert endpoint logic 2024-02-24 19:04:52 +11:00
Mary Hipp
cfcb68696c clean up old model manager components and endpoints 2024-02-24 19:04:52 +11:00
Mary Hipp
7b1b6d3235 add model convert to checkpoint main models 2024-02-24 19:04:52 +11:00
Mary Hipp
aefba52a0a fix logic to see if scanned models are already installed, style tweaks 2024-02-24 19:04:52 +11:00
maryhipp
6af46f9c5f add error_reason to ModelInstallJob 2024-02-24 19:04:52 +11:00
Mary Hipp
190702d011 add error_reason to UI if import fails 2024-02-24 19:04:52 +11:00