Brandon Rising
952d97741e
Remove civit ai from tests and documentation
2024-03-08 13:59:59 +11:00
Brandon Rising
afd08c5f46
Regenerate typegen
2024-03-08 13:59:59 +11:00
Brandon Rising
d1f859a446
Remove civit AI model install resources
2024-03-08 13:59:59 +11:00
psychedelicious
5118160282
docs(mm): update comment about model images
2024-03-08 12:26:35 +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
0aa2070ce0
perf(mm): add manual query cache updates for the update model route
...
This greatly reduces the number of network requests when editing models.
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
a3a42d25d3
fix(mm): model images reload when changed
...
When we change a model image, its URL remains the same. The browser will aggressively cache the image. The easiest way to fix this is to append a random query parameter to the URL whenever we build a model config in the API.
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
f0b815aa9b
fix(ui): missing translation
2024-03-08 12:26:35 +11:00
psychedelicious
3a5b0b819c
chore(ui): typegen
2024-03-08 12:26:35 +11:00
psychedelicious
bbcbcd9b63
fix(mm): only loras and main models get trigger_phrases
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
psychedelicious
779b3e0e8e
tidy(ui): remove npm lockfile
2024-03-06 21:57:41 -05:00
psychedelicious
9b48029bc9
tidy(mm): ModelImages service
2024-03-06 21:57:41 -05:00
Jennifer Player
347f1fd0b7
fix tests
2024-03-06 21:57:41 -05: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
Васянатор
b5a8455b5f
translationBot(ui): update translation (Russian)
...
Currently translated at 94.6% (1431 of 1512 strings)
translationBot(ui): update translation (Russian)
Currently translated at 94.6% (1431 of 1512 strings)
Co-authored-by: Васянатор <ilabulanov339@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/ru/
Translation: InvokeAI/Web UI
2024-03-07 11:47:01 +11:00
Riccardo Giovanetti
645ef081ea
translationBot(ui): update translation (Italian)
...
Currently translated at 98.0% (1487 of 1516 strings)
translationBot(ui): update translation (Italian)
Currently translated at 98.0% (1482 of 1512 strings)
translationBot(ui): update translation (Italian)
Currently translated at 98.0% (1475 of 1505 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-07 11:47:01 +11:00
psychedelicious
e68d7fa6d7
fix(ui): update types
2024-03-07 10:56:59 +11:00
psychedelicious
c5ab1c7ad6
chore(ui): typegen
2024-03-07 10:56:59 +11:00
psychedelicious
5a561cab78
fix(ui): typo
2024-03-07 10:56:59 +11:00
psychedelicious
132790eebe
tidy(nodes): use canonical capitalizations
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
psychedelicious
d4a2ea68fc
chore(ui): typegen
2024-03-07 10:56:59 +11:00
psychedelicious
528ac5dd25
refactor(nodes): model identifiers
...
- All models are identified by a key and optionally a submodel type via new model `ModelField`. Previously, a few model types had their own class, but not all of them. This inconsistency just added complexity without any benefit.
- Update all invocation to use the new format.
- In the node API, models are loaded by key or an instance of `ModelField` as a convenience.
- Add an enriched model schema for metadata. It includes key, hash, name, base and type.
2024-03-07 10:56:59 +11:00
psychedelicious
afd9ae7712
tidy(mm): remove convenience methods from high level model manager service
...
These were added as a hold-me-over for the nodes API changes, no longer needed. A followup commit will fix the nodes API to not rely on these.
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
psychedelicious
99c0662e3f
fix(nodes): load config before doing anything else
...
This was preventing custom nodes from loading if a custom nodes dir was specified
Closes #5862
2024-03-07 10:36:27 +11:00
maryhipp
cdc0d0c182
add config_path to ModelRecordChanges
2024-03-07 10:29:29 +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
psychedelicious
f5e3341465
feat(scripts): add support for file path & stdin to frontend typegen script
2024-03-07 10:16:44 +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
Mary Hipp
b857692073
update uploads from canvas to controlnet to be intermediates so they do not appear in gallery
2024-03-06 15:06:27 -05:00
Mary Hipp
90fb7a1a59
move linear tab to be first on workflow edit mode
2024-03-06 15:06:27 -05:00
Mary Hipp
56fcf6af78
empty state for workflow with no linear fields in view mode
2024-03-06 15:06:27 -05:00
Mary Hipp
c4fe7e697b
add right-padding to prompt textareas so that text does not go behind icons
2024-03-06 15:06:27 -05:00
Mary Hipp
2fd483dfc8
use base.800 on invokeBlue.400 for all gallery selected states
2024-03-06 15:06:27 -05:00
Mary Hipp
b9a9507422
update padding in color picker
2024-03-06 15:06:27 -05:00
Mary Hipp Rogers
f2744fd7d1
fix URL for get image workflow ( #5882 )
...
Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2024-03-06 12:46:16 -05:00
psychedelicious
fe6e879d38
fix(ui): invalidate InvocationCacheStatus query cache after clearing intermediates
2024-03-06 08:14:12 -05:00
psychedelicious
b0615bdfd4
fix(nodes): correctly serialize outputs
...
In order for delete by match to work, we need the whole invocation output to be stringified.
For some reason, the serialization of the output was set to only include the `type` field. It should instead include the whole output.
I don't understand how this ever worked unless pydantic had different serialization behaviour in v1 (though it appears to have been the same).
Closes #5805
2024-03-06 08:14:12 -05:00
psychedelicious
bab20467fb
fix(nodes): fix invocation cache clear method args
2024-03-06 08:14:12 -05:00
psychedelicious
e24624109e
fix(nodes): fix invocation cache ABC typing
2024-03-06 08:14:12 -05:00
Josh Corbett
458e7185b8
fix: 🐛 didn't include renamed file
2024-03-06 20:06:14 +11:00
Josh Corbett
a95128f5f2
refactor: ✏️ canvas mask compositor naming
...
changes `...MaskCompositer` spelling to `...MaskCompositor`
2024-03-06 20:06:14 +11:00
Brandon Rising
46f32c5e3c
Remove references to the no longer existing invokeai.app.services.model_metadata package
2024-03-05 19:58:25 -05:00
Mary Hipp Rogers
e30cb4b52f
updates for defaultModel
( #5866 )
...
* move defaultModel logic to modelsLoaded and update to work for key instead of name/base/type string
* lint fix
---------
Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2024-03-05 09:55:22 -05:00
psychedelicious
ba1f6bf926
chore: lint
2024-03-05 23:50:19 +11:00
psychedelicious
4a9cca6c2d
fix(ui): format model API response data
2024-03-05 23:50:19 +11:00
psychedelicious
b0275700b3
refactor(ui): compute prompt trigger options in the component
...
We can derive the valid trigger options in the component without needing to lift the options list into global state.
2024-03-05 23:50:19 +11:00
psychedelicious
8319aca5f9
chore(ui): typegen
2024-03-05 23:50:19 +11:00
psychedelicious
51a604f907
pkg(ui): do not fix knip in lint:fix
script
2024-03-05 23:50:19 +11:00
Mary Hipp
7515d73628
make trigger phrases a list of options and add lora name as description to appear in dropdown
2024-03-05 23:50:19 +11:00
Mary Hipp
2c453aa531
fix type error
2024-03-05 23:50:19 +11:00
Mary Hipp
2cca6e4c76
check if lora is enabled before adding trigger phrases
2024-03-05 23:50:19 +11:00
Mary Hipp
ef171e890a
use a listener to recalculate trigger phrases when model or lora list changes
2024-03-05 23:50:19 +11:00
Mary Hipp
caafbf2f0d
only show trigger phrase settings on main and lora
2024-03-05 23:50:19 +11:00
Mary Hipp
2db5eaf907
lint fix
2024-03-05 23:50:19 +11:00
Mary Hipp
f234bf6256
cleanup
2024-03-05 23:50:19 +11:00
Mary Hipp
cfa78b4052
adapt embedding popover to work for trigger phrases also
2024-03-05 23:50:19 +11:00
Mary Hipp
ba1dd4b02b
UI in MM to create trigger phrases
2024-03-05 23:50:19 +11:00
psychedelicious
bcf58cac59
feat(mm): add config to skip model hash
...
This is useful for when you are using a memory DB and do not want to wait for all models to be hashed on startup.
2024-03-05 23:50:19 +11:00
psychedelicious
e866d90ab2
tidy(mm): remove unused method on probe
2024-03-05 23:50:19 +11:00
psychedelicious
e8797787cf
fix(mm): fix incorrect calls to update_model
2024-03-05 23:50:19 +11:00
psychedelicious
0082ecb22b
feat(mm): add path
to ModelRecordChanges
2024-03-05 23:50:19 +11:00
psychedelicious
656839fcd1
fix(mm): fix typing on heuristic_import
2024-03-05 23:50:19 +11:00
psychedelicious
99407c899f
feat(ui): update UI to use new model config backend
...
- Update all queries
- Remove Advanced Add
- Removed un-editable, internal-only model attributes from model edit UI (e.g. format, repo variant, model type)
- Update model tags so the list refreshes when a model installs
- Rename some queries, components, variables, types to match backend
- Fix divide-by-zero in install queue
2024-03-05 23:50:19 +11:00
psychedelicious
48119d9010
revert(mm): restore convert route
2024-03-05 23:50:19 +11:00
psychedelicious
7c9128b253
tidy(mm): use canonical capitalization for all model-related enums, classes
...
For example, "Lora" -> "LoRA", "Vae" -> "VAE".
2024-03-05 23:50:19 +11:00
psychedelicious
4f9bb00275
tidy(api): tidy mm routes
...
Rename MM routes to be consistent:
- "import" -> "install"
- "model_record" -> "model"
Comment several unused routes while I work (may end up removing them?):
- list model summary (we use the search route instead)
- add model record
- convert model
- merge models
2024-03-05 23:50:19 +11:00
psychedelicious
78895b3e80
fix(mm): add missing inplace parameter to model install abc
2024-03-05 23:50:19 +11:00
psychedelicious
3030a34b88
fix(mm): make type
and format
required in openapi schema for model config
2024-03-05 23:50:19 +11:00
psychedelicious
58fa9c2fac
fix(mm): do not allow extra fields on ModelRecordChanges
2024-03-05 23:50:19 +11:00
psychedelicious
a8b6635050
fix(mm): make key
required in openapi schema for model config
2024-03-05 23:50:19 +11:00
psychedelicious
5551cf8ac4
feat(mm): revise update_model to use ModelRecordChanges
2024-03-05 23:50:19 +11:00
psychedelicious
37b969d339
tidy(mm): add default_settings to model config
2024-03-05 23:50:19 +11:00
psychedelicious
c953e61294
tidy(mm): "trigger_words" -> "trigger_phrases"
2024-03-05 23:50:19 +11:00
psychedelicious
93dd3c848e
tidy(mm): remove unused code in select_hf_files.py
2024-03-05 23:50:19 +11:00
psychedelicious
3391c19926
chore: ruff
2024-03-05 23:50:19 +11:00
psychedelicious
0f60b1ced4
fix(mm): use .value
for model config discriminators
...
There is a breaking change in python 3.11 related to how enums with `str` as a mixin are formatted. This appears to have not caused any grief for us until now.
Re-jigger the discriminator setup to use `.value` so everything works on both python 3.10 and 3.11.
2024-03-05 23:50:19 +11:00
psychedelicious
44c40d7d1a
refactor(mm): remove unused metadata logic, fix tests
...
- Metadata is merged with the config. We can simplify the MM substantially and remove the handling for metadata.
- Per discussion, we don't have an ETA for frontend implementation of tags, and with the realization that the tags from CivitAI are largely useless, there's no reason to keep tags in the MM right now. When we are ready to implement tags on the frontend, we can refer back to the implementation here and use it if it supports the design.
- Fix all tests.
2024-03-05 23:50:19 +11:00
psychedelicious
c3aa985c93
refactor(mm): get metadata working
2024-03-05 23:50:19 +11:00
psychedelicious
7cb0da1f66
refactor(mm): wip schema changes
2024-03-05 23:50:19 +11:00
psychedelicious
3534366146
fix(mm): fix extraneous downloaded files in diffusers
...
Sometimes, diffusers model components (tokenizer, unet, etc.) have multiple weights files in the same directory.
In this situation, we assume the files are different versions of the same weights. For example, we may have multiple
formats (`.bin`, `.safetensors`) with different precisions. When downloading model files, we want to select only
the best of these files for the requested format and precision/variant.
The previous logic assumed that each model weights file would have the same base filename, but this assumption was
not always true. The logic is revised score each file and choose the best scoring file, resulting in only a single
file being downloaded for each submodel/subdirectory.
2024-03-05 23:50:19 +11:00
psychedelicious
f2b5f8753f
tidy(mm): remove json_schema_extra from config - not needed
2024-03-05 23:50:19 +11:00
psychedelicious
f13f5984c0
fix(mm): update db schema & migration
2024-03-05 23:50:19 +11:00
psychedelicious
94e1e64296
chore: ruff
2024-03-05 23:50:19 +11:00
psychedelicious
2411bf53c0
tidy(mm): better descriptions for model configs
2024-03-05 23:50:19 +11:00
psychedelicious
9378e47a06
feat(mm): add source_type
to model configs
2024-03-05 23:50:19 +11:00
psychedelicious
4471ea8ad1
refactor(mm): simplify model metadata schemas
2024-03-05 23:50:19 +11:00
psychedelicious
2c835fd550
refactor(mm): WIP db schema
2024-03-05 23:50:19 +11:00
psychedelicious
61b737bb9f
tidy(mm): remove update
method from ModelConfigBase
...
It's only used in the soon-to-be-removed model merge logic
2024-03-05 23:50:19 +11:00
psychedelicious
a8cd3dfc99
refactor(mm): add models
table (schema WIP), rename "original_hash" -> "hash"
2024-03-05 23:50:19 +11:00
psychedelicious
0cce582f2f
tidy(mm): remove current_hash
2024-03-05 23:50:19 +11:00
psychedelicious
bd4fd9693d
tidy(mm): rename ckpt "last_modified" -> "converted_at"
...
Clarify what this timestamp means
2024-03-05 23:50:19 +11:00
psychedelicious
9b40c28144
tidy(mm): rename ckpy "config" -> "config_path"
2024-03-05 23:50:19 +11:00
psychedelicious
16a5d718bf
fix(mm): add config
field to ckpt vaes
2024-03-05 23:50:19 +11:00
psychedelicious
76cbc745e1
refactor(mm): add CheckpointConfigBase
for all ckpt models
2024-03-05 23:50:19 +11:00
psychedelicious
0a614943f6
fix(mm): fix broken get_model_discriminator_value
2024-03-05 23:50:19 +11:00
psychedelicious
e426096d32
fix(mm): misc typing fixes for model loaders
2024-03-05 23:50:19 +11:00
psychedelicious
c561cd751f
fix(mm): use correct import path for ConfigMixin, ModelMixin
2024-03-05 23:50:19 +11:00
psychedelicious
af9298f0ef
tidy(mm): tidy class names in config.py
2024-03-05 23:50:19 +11:00
psychedelicious
5b74117836
fix(mm): use generic for model loader registry
...
This preserves the typing for classes using the decorator
2024-03-05 23:50:19 +11:00
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
Mary Hipp
630d3615ca
fix base model grouping in combobox
2024-03-01 10:42:33 +11:00
psychedelicious
c80c0f0fb9
fix(mm): fix ModelCacheBase method name
2024-03-01 10:42:33 +11:00
psychedelicious
37d66488c5
chore: ruff
2024-03-01 10:42:33 +11:00
Lincoln Stein
371e3cc260
recover gracefuly from GPU out of memory errors (next version)
2024-03-01 10:42:33 +11:00
Lincoln Stein
d22738723d
clear out VRAM when an OOM occurs
2024-03-01 10:42:33 +11:00
psychedelicious
fbd9ffdc5a
feat(ui): bulk download click to download
2024-03-01 10:42:33 +11:00
psychedelicious
04c060a89d
fix(ui): fix node types for canvas graphs
2024-03-01 10:42:33 +11:00
psychedelicious
6f591b324b
chore(ui): typegen
2024-03-01 10:42:33 +11:00
psychedelicious
82249cc634
tidy(nodes): rename canvas paste back
2024-03-01 10:42:33 +11:00
blessedcoolant
cc82ce820a
fix: outpaint result not getting pasted back correctly
2024-03-01 10:42:33 +11:00
blessedcoolant
8e1fbd6ed1
fix: lint errors
2024-03-01 10:42:33 +11:00
blessedcoolant
68d79c002d
canvas: improve paste back (or try to)
2024-03-01 10:42:33 +11:00
blessedcoolant
8f6c2a8b92
wip(ui): Replace 2 Layer Coherence pass with Gradient Mask
2024-03-01 10:42:33 +11:00
psychedelicious
ea7b7bcf40
chore: ruff
2024-03-01 10:42:33 +11:00
psychedelicious
1456c997fb
fix(ui): fix merge issue
2024-03-01 10:42:33 +11:00
psychedelicious
7fce234646
fix(ui): use new scan_folder response instead of hook to determine if models are installed already
2024-03-01 10:42:33 +11:00
psychedelicious
9e02384674
chore(ui): typegen
2024-03-01 10:42:33 +11:00
psychedelicious
531d6f40f4
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-03-01 10:42:33 +11:00
psychedelicious
98d60e7db5
chore(ui): lint
2024-03-01 10:42:33 +11:00
psychedelicious
1436a5f295
build(ui): restore i18n eslint rule
2024-03-01 10:42:33 +11:00
psychedelicious
e22c4987bf
chore: ruff
2024-03-01 10:42:33 +11:00
psychedelicious
4420392241
fix(ui): fix metadata route
2024-03-01 10:42:33 +11:00
psychedelicious
1d410e6346
chore(ui): typegen
2024-03-01 10:42:33 +11:00
psychedelicious
c98668e7f5
feat(api): mm metadata route "meta" -> "metadata"
2024-03-01 10:42:33 +11:00
Mary Hipp
740dbc0c32
lint fix
2024-03-01 10:42:33 +11:00
Mary Hipp
97181d159f
updated translations
2024-03-01 10:42:33 +11:00
maryhipp
65b0d3d436
fix convert endpoint logic
2024-03-01 10:42:33 +11:00
Mary Hipp
baf1194cae
clean up old model manager components and endpoints
2024-03-01 10:42:33 +11:00
Mary Hipp
9b1f63379a
add model convert to checkpoint main models
2024-03-01 10:42:33 +11:00
Mary Hipp
c3f4e87a6e
fix logic to see if scanned models are already installed, style tweaks
2024-03-01 10:42:33 +11:00
maryhipp
26a209a00d
add error_reason to ModelInstallJob
2024-03-01 10:42:33 +11:00
Mary Hipp
625c86ba9a
add error_reason to UI if import fails
2024-03-01 10:42:33 +11:00
Mary Hipp
53f0090197
fix types for ImportQueue, add QuickAdd for scan models
2024-03-01 10:42:33 +11:00
Jennifer Player
5496699d6c
refactored and fixed issues with advanced import form
2024-03-01 10:42:33 +11:00
psychedelicious
b5ce28e60b
fix(ui): misc MM cleanup
2024-03-01 10:42:33 +11:00
psychedelicious
816fb53a14
chore(ui): temp disable eslint i18 rule
2024-03-01 10:42:33 +11:00
psychedelicious
793c7ec832
fix(ui): fix ImportMainModelResponse type
2024-03-01 10:42:33 +11:00
psychedelicious
62c67d7c4b
fix(ui): simplify model install event listeners
2024-03-01 10:42:33 +11:00
psychedelicious
7c41b3439a
fix(ui): fix model install event types
2024-03-01 10:42:33 +11:00
Jennifer Player
cdd2f18bbd
added advanced import forms, not fully working yet
2024-03-01 10:42:33 +11:00
Mary Hipp
e7d7b37896
get positioning/scrolling working for scan results list
2024-03-01 10:42:33 +11:00
Mary Hipp
57a402053e
basic scan working and renders results
2024-03-01 10:42:33 +11:00
Mary Hipp
9ae09e9a7c
add scan model endpoint, break add model into tabs
2024-03-01 10:42:33 +11:00
Mary Hipp
5a12886dbb
update metadata endpoint
2024-03-01 10:42:33 +11:00
maryhipp
5b7633f3c6
allow metadata-less models to be used for GET metadata endpoint
2024-03-01 10:42:33 +11:00
Jennifer Player
68f24d9f0d
added status to import queue model
2024-03-01 10:42:33 +11:00
Jennifer Player
ea364bdf82
delete model imports and prune all finished, update state with socket messages
2024-03-01 10:42:33 +11:00
Mary Hipp
18904f79ef
fix sync model endpoint
2024-03-01 10:42:33 +11:00
Mary Hipp
782d15af13
form error handling
2024-03-01 10:42:33 +11:00
Mary Hipp
86e2b39f0d
finish model update
2024-03-01 10:42:33 +11:00
Jennifer Player
20576deae8
added socket listeners, added more info to ui
2024-03-01 10:42:33 +11:00
Mary Hipp
0a69779df9
edit view for model, depending on type and valid values
2024-03-01 10:42:33 +11:00
Mary Hipp
6b68971f38
hook up Add Model button
2024-03-01 10:42:33 +11:00
Mary Hipp
c46eb72d45
single model view
2024-03-01 10:42:33 +11:00
Jennifer Player
87ce74e05d
added import model form and importqueue
2024-03-01 10:42:33 +11:00
Mary Hipp
c7d462b222
model list, filtering, searching
2024-03-01 10:42:33 +11:00
Mary Hipp
9068400433
workspace for mary and jenn
2024-03-01 10:42:33 +11:00
Mary Hipp
55f3c6e721
get old UI working somewhat with new endpoints
2024-03-01 10:42:33 +11:00
Brandon Rising
c778ab8db4
Allow passing in key on register
2024-03-01 10:42:33 +11:00
Brandon Rising
65b91356d0
Remove passing keys in on register
2024-03-01 10:42:33 +11:00
Brandon Rising
de9287a3e4
Run ruff
2024-03-01 10:42:33 +11:00
Brandon Rising
008716040b
Allow users to run model manager without cuda
2024-03-01 10:42:33 +11:00
psychedelicious
abc569c2dd
fix(ui): roll back utility-types
...
It's `Required` util does not distribute over unions as expected. Also we have `ts-toolbelt` already for some utils.
2024-03-01 10:42:33 +11:00
psychedelicious
3ed2963f43
feat(ui): refactor metadata handling
...
Refactor of metadata recall handling. This is in preparation for a backwards compatibility layer for models.
- Create helpers to fetch a model outside react (e.g. not in a hook)
- Created helpers to parse model metadata
- Renamed a lot of types that were confusing and/or had naming collisions
2024-03-01 10:42:33 +11:00
psychedelicious
79b16596b5
chore(ui): typegen
2024-03-01 10:42:33 +11:00
psychedelicious
239ecfaf79
fix(nodes): make fields on ModelConfigBase
required
...
The setup of `ModelConfigBase` means autogenerated types have critical fields flagged as nullable (like `key` and `base`). Need to manually flag them as required.
2024-03-01 10:42:33 +11:00
psychedelicious
0d9fbe5e04
feat(ui): replace type-fest
with utility-types
...
- The new package has more useful types
- Only used `JsonObject` from `type-fest`; added an implementation of that type
2024-03-01 10:42:33 +11:00