Commit Graph

5402 Commits

Author SHA1 Message Date
Brandon Rising
b13d11eaac Switch ModelSearch from os.walk to os.scandir 2024-02-29 13:29:01 -05:00
Brandon Rising
35dfad7318 Ruff format 2024-02-29 13:29:01 -05:00
Brandon Rising
92a7c1eec5 Ruff check 2024-02-29 13:29:01 -05:00
Brandon Rising
2a6722bb6c Extract TI loading logic into util, disallow it from ever failing a generation 2024-02-29 13:29:01 -05:00
Brandon Rising
9a1e55a305 Fix one last reference to the uncasted model 2024-02-29 13:29:01 -05:00
Brandon Rising
4c9dc7f845 Allow TIs to be either a key or a name in the prompt during our transition to using keys 2024-02-29 13:29:01 -05:00
Lincoln Stein
2da03bebaa handle change to Civitai metadata schema for commercial usage 2024-02-29 13:29:01 -05:00
Jennifer Player
1d5f7acf96 updated to use new import model mutation 2024-02-29 13:29:01 -05:00
psychedelicious
4c787f879d fix(ui): merge conflict 2024-02-29 13:29:01 -05:00
psychedelicious
f400867b9e chore(ui): bump deps
The only major version is `query-string`. The breaking change for it is dropping support for old versions of node. Not a problem for us.
2024-02-29 13:29:01 -05:00
psychedelicious
9c589b4449 feat(ui): move from madge to dpdm for circular dependencies 2024-02-29 13:29:01 -05:00
psychedelicious
f8375a9f72 tidy(ui): fix circular dependencies in listeners 2024-02-29 13:29:01 -05:00
psychedelicious
e4be78c256 tidy: remove some traces of ONNX 2024-02-29 13:29:01 -05:00
psychedelicious
3b725126fc chore(ui): typegen, update knip config
Knip should never touch the autogenerated types
2024-02-29 13:29:01 -05:00
psychedelicious
ac012a07a2 chore(ui): update pnpm-lock.yaml
Forgot to run `pnpm i` earlier after removing packages.
2024-02-29 13:29:01 -05:00
psychedelicious
0c2b7b0e0f feat(ui): configure knip 2024-02-29 13:29:01 -05:00
psychedelicious
4a506eb0a7 tidy(ui): clean up unused code 6
unused files
2024-02-29 13:29:01 -05:00
psychedelicious
d435a479f1 tidy(ui): clean up unused code 5
variables, types and schemas
2024-02-29 13:29:01 -05:00
psychedelicious
e38427d5a1 tidy(ui): clean up unused code 4
variables, types and schemas
2024-02-29 13:29:01 -05:00
psychedelicious
a106c1126c tidy(ui): clean up unused code 3
variables, types and schemas
2024-02-29 13:29:01 -05:00
psychedelicious
bca1737b9c tidy(ui): clean up unused code 2
types and schemas
2024-02-29 13:29:00 -05:00
psychedelicious
9db4d9b0c0 feat(mm): add log stmt for download complete event 2024-02-29 13:29:00 -05:00
psychedelicious
929b353305 fix(ui): model install progress sets total bytes correctly 2024-02-29 13:29:00 -05:00
psychedelicious
67f40a3b26 chore(ui): lint 2024-02-29 13:29:00 -05:00
psychedelicious
732a1f135d fix(ui): fix remaining TS issues 2024-02-29 13:29:00 -05:00
psychedelicious
3001b146b1 fix(ui): fix up MM queries & types (wip) 2024-02-29 13:29:00 -05:00
psychedelicious
4a048dd0d4 tidy(api): remove non-heuristic install route 2024-02-29 13:29:00 -05:00
psychedelicious
b38080336d tidy(mm): remove ONNX from AnyModelConfig 2024-02-29 13:29:00 -05:00
psychedelicious
45546fdcea tidy(ui): clean up unused code 1
- Only export when necessary
- Remove totally usused functions, variables, state, etc
- Remove unused packages
2024-02-29 13:29:00 -05:00
psychedelicious
5e83fc8ac7 feat(ui): add knip + minimal config
https://knip.dev/

Replaces `unimported`
2024-02-29 13:29:00 -05:00
psychedelicious
04024fe479 fix(ui): fix missing component import 2024-02-29 13:29:00 -05:00
blessedcoolant
0722eb132d ui: split the canvas mask blur and edge size setting 2024-02-29 13:29:00 -05:00
Jennifer Player
120988b5f3 added add all button to scan models 2024-02-29 13:29:00 -05:00
psychedelicious
76e21fe607 feat(ui): create metadata types for control adapters
These are the same as the existing control adapter types, but the model field is non-nullable, simplifying handling of these objects.
2024-02-29 13:29:00 -05:00
psychedelicious
769ddc0024 fix(ui): model metadata handlers use model identifiers, not configs
Model metadata includes the main model, VAE and refiner model.

These used full model configs, as returned by the server, as their metadata type.

LoRA and control adapter metadata only use the metadata identifier.

This created a difference in handling. After parsing a model/vae/refiner, we have its name and can display it. But for LoRAs and control adapters, we only have the model key and must query for the full model config to get the name.

This change makes main model/vae/refiner metadata only have the model key, like LoRAs and control adapters.

The render function is now async so fetching can occur within it. All metadata fields with models now only contain the identifier, and fetch the model name to render their values.
2024-02-29 13:29:00 -05:00
psychedelicious
4833f9c736 fix(ui): CanvasPasteBack types 2024-02-29 13:29:00 -05:00
psychedelicious
68f9ce5e2d tidy(ui): remove unused metadata schemas 2024-02-29 13:29:00 -05:00
psychedelicious
ac200ab79d feat(nodes): update LoRAMetadataItem model
LoRA model now at under `model` not `lora.
2024-02-29 13:29:00 -05:00
psychedelicious
38cf809cb0 tidy(ui): tidy model identifier logic
- Move some files around
- Use util to extract key and base from model config
2024-02-29 13:29:00 -05:00
psychedelicious
d069f21d97 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-29 13:29:00 -05:00
psychedelicious
7d23120c2e fix(ui): fix lora metadata item type 2024-02-29 13:29:00 -05:00
psychedelicious
3b9b11e94b fix(ui): fix node type 2024-02-29 13:29:00 -05:00
psychedelicious
cd0699ada4 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-29 13:29:00 -05:00
psychedelicious
8938765fb6 fix(ui): fix lora metadata rendering 2024-02-29 13:29:00 -05:00
psychedelicious
5b1fe4511e fix(ui): fix type issues related to change in LoRA type 2024-02-29 13:29:00 -05:00
psychedelicious
6a2ae5caa4 feat(ui): migrate all metadata recall logic to new system 2024-02-29 13:29:00 -05:00
psychedelicious
0cb2579109 fix(ui): use id for component key in control adapter components 2024-02-29 13:29:00 -05:00
psychedelicious
c6a95eb9ac feat(ui): no JSX in metadata handlers 2024-02-29 13:29:00 -05:00
psychedelicious
caa05864f8 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-29 13:29:00 -05:00
psychedelicious
f24b3c64d3 build(ui): do not fail build on eslint error in dev mode 2024-02-29 13:29:00 -05:00