psychedelicious
38474c9797
fix(mm): use correct import path for ModelMixin
2024-03-05 23:50:19 +11:00
psychedelicious
b880a31039
refactor(mm): remove ztsnr_training
field on _MainConfig
...
This is used to determine the CFG Rescale Multiplier setting. We'll handle this in the UI as a default setting.
2024-03-05 23:50:19 +11:00
psychedelicious
dd31bc4586
refactor(mm): remove vae
field on _MainConfig
...
We will handle default VAE selection in the UI.
2024-03-05 23:50:19 +11:00
psychedelicious
316573df2d
feat(mm): use callable discriminator for AnyModelConfig
union
2024-03-05 23:50:19 +11:00
Mary Hipp Rogers
8b34f5298c
Default model settings ( #5850 )
...
* UI in MM to create trigger phrases
* add scheduler and vaePrecision to config
* UI for configuring default settings for models'
* hook MM default model settings up to API
* add button to set default settings in parameters
* pull out trigger phrases
* back-end for default settings
* lint
* remove log;
gi
* ruff
* ruff format
---------
Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2024-03-04 09:39:03 -05:00
Brandon Rising
893bcd16fc
Next: Allow in place local installs of models
2024-03-04 23:11:41 +11:00
Ryan Dick
f6028a4c61
Log a stack trace for invocation errors.
2024-03-04 23:01:56 +11:00
Hosted Weblate
264aee3ffa
translationBot(ui): update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
Translation: InvokeAI/Web UI
2024-03-04 21:39:46 +11:00
Riccardo Giovanetti
4deb60f365
translationBot(ui): update translation (Italian)
...
Currently translated at 98.0% (1442 of 1470 strings)
Co-authored-by: Riccardo Giovanetti <riccardo.giovanetti@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
Translation: InvokeAI/Web UI
2024-03-04 21:39:46 +11:00
B N
f2d5fb176f
translationBot(ui): update translation (German)
...
Currently translated at 80.4% (1183 of 1470 strings)
Co-authored-by: B N <berndnieschalk@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/de/
Translation: InvokeAI/Web UI
2024-03-04 21:39:46 +11:00
Mary Hipp
94005b5501
add button to navigate to model manager if tab is enabled
2024-03-03 19:50:50 -05:00
Mary Hipp
02dc1a8780
consolidate tabs for main model and concepts in generation panel
2024-03-03 19:50:50 -05:00
dunkeroni
735857479d
fix(canvas): use corrected mask for pasteback
2024-03-03 12:58:47 -05:00
psychedelicious
554d175792
feat(mm): improved model hash class
...
- Use memory view for hashlib algorithms (closer to python 3.11's filehash API in hashlib)
- Remove `sha1_fast` (realized it doesn't even hash the whole file, it just does the first block)
- Add support for custom file filters
- Update docstrings
- Update tests
2024-03-03 14:32:14 +11:00
psychedelicious
ae99428883
fix(mm): use UUIDv4 for key
...
This changes the functionality of this PR to only use the updated hashing for model hashes with a UUID for the key.
2024-03-03 14:32:14 +11:00
psychedelicious
86982f3059
feat(mm): make ModelHash instantiatable, taking an algorithm as arg
2024-03-03 14:32:14 +11:00
psychedelicious
ec8ed530a7
feat(mm): modularize ModelHash to facilitate testing
2024-03-03 14:32:14 +11:00
psychedelicious
982076d7d7
feat(mm): add hashing algos to ModelHash
...
- Some algos are slow, so it is now just called ModelHash
- Added all hashlib algos, plus BLAKE3 and the fast (but incorrect) SHA1 algo
2024-03-03 14:32:14 +11:00
psychedelicious
2e4672f931
feat(mm): make hash.py a script for testing
2024-03-03 14:32:14 +11:00
psychedelicious
908e915a71
feat(mm): use blake3 for hashing
2024-03-03 14:32:14 +11:00
Lincoln Stein
a72056e0df
make model key assignment deterministic
...
- When installing, model keys are now calculated from the model contents.
- .safetensors, .ckpt and other single file models are hashed with sha1
- The contents of diffusers directories are hashed using imohash (faster)
fixup yaml->sql db migration script to assign deterministic key
- this commit also detects and assigns the correct image encoder for
ip adapter models.
2024-03-03 14:32:14 +11:00
Ryan Dick
cc45007dc4
Remove unused code for attention map saving.
2024-03-02 08:25:41 -05:00
Ryan Dick
73bec56c59
Delete unused functions from shared_invokeai_diffusion.py.
2024-03-02 08:25:41 -05:00
Ryan Dick
6935830f99
Remove unused constructor declared with typo in name: __int__.
2024-03-01 15:12:03 -05:00
Ryan Dick
7651eeea8d
Merge sequential conditioning and cac conditioning logic to eliminate a bunch of duplication.
2024-03-01 15:12:03 -05:00
Ryan Dick
204e7d383b
Remove outdated comments related to T2I-Adapters and ControlNets.
2024-03-01 15:12:03 -05:00
Ryan Dick
9bc4e7a593
Remove use of **kwargs in do_unet_step(...), where full parameter list is known and supported.
2024-03-01 15:12:03 -05:00
Ryan Dick
ad96857e0f
Fix avoid storing extra conditioning info in two places.
2024-03-01 15:12:03 -05:00
Lincoln Stein
0832e1818e
Fix problem of all installed models being assigned "<NOKEY>"
...
- Also fix redundant scanning of models directory at startup.
2024-02-29 22:31:05 -05:00
Lincoln Stein
813a086cfe
fix race condition between downloading last file and starting install
2024-03-01 10:42:33 +11:00
Lincoln Stein
e18533e3b5
add debugging statements and a timeout to download test
2024-03-01 10:42:33 +11:00
psychedelicious
dd9daf8efb
chore: ruff
2024-03-01 10:42:33 +11:00
psychedelicious
8b03af391a
fix(ui): fix metadata display issue
2024-03-01 10:42:33 +11:00
psychedelicious
bbbd18f119
fix(ui): baseUrl hardcoded api path
...
We now hav multiple api versions for different routers, so we cannot hardcode the `/api/v1` portion of the baseUrl
2024-03-01 10:42:33 +11:00
psychedelicious
c074beff7c
fix(ui): typo in feature tooltips
2024-03-01 10:42:33 +11:00
psychedelicious
753919c6d7
docs(nodes): update all docstrings for public nodes API
2024-03-01 10:42:33 +11:00
psychedelicious
2f26768d19
fix: make invocation_context.py accessible to mkdocs
...
Needs an `__init__.py`.
2024-03-01 10:42:33 +11:00
psychedelicious
0b0128647b
feat(nodes): revise model load API args
2024-03-01 10:42:33 +11:00
Brandon Rising
39725e9560
Next: Remove deprecated app.on_event usage in api runner
2024-03-01 10:42:33 +11:00
psychedelicious
0305e90287
chore: ruff
2024-03-01 10:42:33 +11:00
blessedcoolant
ae34bcfbc0
fix: Assertion issue with SDXL Compel
2024-03-01 10:42:33 +11:00
Brandon Rising
01898d766f
Fix merge with next
2024-03-01 10:42:33 +11:00
Brandon Rising
e7afae0159
Switch absolute path to as_posix in _walk_directory
2024-03-01 10:42:33 +11:00
Brandon Rising
f16e64084b
Ruff checks
2024-03-01 10:42:33 +11:00
Brandon Rising
8992d89817
Fix directory called on _walk_directory
2024-03-01 10:42:33 +11:00
Brandon Rising
0fc2f90824
Switch ModelSearch from os.walk to os.scandir
2024-03-01 10:42:33 +11:00
Brandon Rising
c670dacc29
Ruff format
2024-03-01 10:42:33 +11:00
Brandon Rising
f475b78734
Ruff check
2024-03-01 10:42:33 +11:00
Brandon Rising
ca9b815c89
Extract TI loading logic into util, disallow it from ever failing a generation
2024-03-01 10:42:33 +11:00
Brandon Rising
8efd4284e9
Fix one last reference to the uncasted model
2024-03-01 10:42:33 +11:00
Brandon Rising
5922cee541
Allow TIs to be either a key or a name in the prompt during our transition to using keys
2024-03-01 10:42:33 +11:00
Lincoln Stein
94e3857110
handle change to Civitai metadata schema for commercial usage
2024-03-01 10:42:33 +11:00
Jennifer Player
4b4b940461
updated to use new import model mutation
2024-03-01 10:42:33 +11:00
psychedelicious
574d6538b9
fix(ui): merge conflict
2024-03-01 10:42:33 +11:00
psychedelicious
3141c6efd5
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-03-01 10:42:33 +11:00
psychedelicious
bcf742ef87
feat(ui): move from madge to dpdm for circular dependencies
2024-03-01 10:42:33 +11:00
psychedelicious
f6c068afdd
tidy(ui): fix circular dependencies in listeners
2024-03-01 10:42:33 +11:00
psychedelicious
7d2e840590
tidy: remove some traces of ONNX
2024-03-01 10:42:33 +11:00
psychedelicious
f0b3485ce9
chore(ui): typegen, update knip config
...
Knip should never touch the autogenerated types
2024-03-01 10:42:33 +11:00
psychedelicious
37608cdea2
chore(ui): update pnpm-lock.yaml
...
Forgot to run `pnpm i` earlier after removing packages.
2024-03-01 10:42:33 +11:00
psychedelicious
1176c549c0
feat(ui): configure knip
2024-03-01 10:42:33 +11:00
psychedelicious
d90210fea6
tidy(ui): clean up unused code 6
...
unused files
2024-03-01 10:42:33 +11:00
psychedelicious
d99bec8b1a
tidy(ui): clean up unused code 5
...
variables, types and schemas
2024-03-01 10:42:33 +11:00
psychedelicious
b661d93bd8
tidy(ui): clean up unused code 4
...
variables, types and schemas
2024-03-01 10:42:33 +11:00
psychedelicious
dc64089c9d
tidy(ui): clean up unused code 3
...
variables, types and schemas
2024-03-01 10:42:33 +11:00
psychedelicious
a6f6fe581e
tidy(ui): clean up unused code 2
...
types and schemas
2024-03-01 10:42:33 +11:00
psychedelicious
12e859835b
feat(mm): add log stmt for download complete event
2024-03-01 10:42:33 +11:00
psychedelicious
b218282149
fix(ui): model install progress sets total bytes correctly
2024-03-01 10:42:33 +11:00
psychedelicious
80065858ed
chore(ui): lint
2024-03-01 10:42:33 +11:00
psychedelicious
aaeef03593
fix(ui): fix remaining TS issues
2024-03-01 10:42:33 +11:00
psychedelicious
97ecd99b9c
fix(ui): fix up MM queries & types (wip)
2024-03-01 10:42:33 +11:00
psychedelicious
202e739404
tidy(api): remove non-heuristic install route
2024-03-01 10:42:33 +11:00
psychedelicious
10d36b4045
tidy(mm): remove ONNX from AnyModelConfig
2024-03-01 10:42:33 +11:00
psychedelicious
8f93ae8d7c
tidy(ui): clean up unused code 1
...
- Only export when necessary
- Remove totally usused functions, variables, state, etc
- Remove unused packages
2024-03-01 10:42:33 +11:00
psychedelicious
506fa55f18
feat(ui): add knip + minimal config
...
https://knip.dev/
Replaces `unimported`
2024-03-01 10:42:33 +11:00
psychedelicious
4c19d5cee4
fix(ui): fix missing component import
2024-03-01 10:42:33 +11:00
blessedcoolant
afa7043dcd
ui: split the canvas mask blur and edge size setting
2024-03-01 10:42:33 +11:00
Jennifer Player
32b8478974
added add all button to scan models
2024-03-01 10:42:33 +11:00
psychedelicious
d23f2de9d7
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-03-01 10:42:33 +11:00
psychedelicious
9abfb02bf0
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-03-01 10:42:33 +11:00
psychedelicious
7b4ef5926d
fix(ui): CanvasPasteBack types
2024-03-01 10:42:33 +11:00
psychedelicious
6c5be9e89c
tidy(ui): remove unused metadata schemas
2024-03-01 10:42:33 +11:00
psychedelicious
80697a71de
feat(nodes): update LoRAMetadataItem model
...
LoRA model now at under `model` not `lora.
2024-03-01 10:42:33 +11:00
psychedelicious
a253047d8e
tidy(ui): tidy model identifier logic
...
- Move some files around
- Use util to extract key and base from model config
2024-03-01 10:42:33 +11:00
psychedelicious
7176c5d9d6
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-03-01 10:42:33 +11:00
psychedelicious
0b54bfb7c5
fix(ui): fix lora metadata item type
2024-03-01 10:42:33 +11:00
psychedelicious
24daacecf2
fix(ui): fix node type
2024-03-01 10:42:33 +11:00
psychedelicious
7326c78ab5
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-03-01 10:42:33 +11:00
psychedelicious
04545e792c
fix(ui): fix lora metadata rendering
2024-03-01 10:42:33 +11:00
psychedelicious
e6de915c34
fix(ui): fix type issues related to change in LoRA type
2024-03-01 10:42:33 +11:00
psychedelicious
71ceab9094
feat(ui): migrate all metadata recall logic to new system
2024-03-01 10:42:33 +11:00
psychedelicious
ff00ed8e80
fix(ui): use id for component key in control adapter components
2024-03-01 10:42:33 +11:00
psychedelicious
ce3f9037cd
feat(ui): no JSX in metadata handlers
2024-03-01 10:42:33 +11:00
psychedelicious
d1f4cde8c7
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-03-01 10:42:33 +11:00
psychedelicious
90327cb521
build(ui): do not fail build on eslint error in dev mode
2024-03-01 10:42:33 +11:00
psychedelicious
4d5458648b
chore(ui): typegen
2024-03-01 10:42:33 +11:00
psychedelicious
8d8f1abd50
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-03-01 10:42:33 +11:00
Mary Hipp
e20a506e40
undo
2024-03-01 10:42:33 +11:00
Mary Hipp
77b8eed51b
fix literal strings in MM UI
2024-03-01 10:42:33 +11:00
Mary Hipp
c954cd4c8d
fix TI appearing as key in prompt
2024-03-01 10:42:33 +11:00