Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: model identifiers improvements #5879

Merged
merged 8 commits into from
Mar 6, 2024

Conversation

psychedelicious
Copy link
Collaborator

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update
  • Community Node Submission

Have you discussed this change with the InvokeAI team?

  • Yes
  • No, because:

Description

  • 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.

Though the hash is recorded in metadata, it is not used to load models. The client will handle determining the model key for a model with fallback lookup via hash or model attributes. This functionality is not included in this PR, will be a followup (maybe v4.1.0).

With the changes to a lot of the node fields, I also fixed some spots where we had inconsistent capitalization.

QA Instructions, Screenshots, Recordings

Everything should still work in the app, including metadata recall.

Merge Plan

This PR can be merged when approved

Added/updated tests?

  • Yes
  • No : please replace this line with details on why tests
    have not been included

@github-actions github-actions bot added api python PRs that change python files invocations PRs that change invocations backend PRs that change backend files services PRs that change app services frontend PRs that change frontend files python-tests PRs that change python tests labels Mar 6, 2024
…rvice

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.
- 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.
@psychedelicious psychedelicious enabled auto-merge (rebase) March 6, 2024 23:49
@psychedelicious psychedelicious merged commit e68d7fa into main Mar 6, 2024
14 checks passed
@psychedelicious psychedelicious deleted the psyche/feat/model-identifiers branch March 6, 2024 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api backend PRs that change backend files frontend PRs that change frontend files invocations PRs that change invocations python PRs that change python files python-tests PRs that change python tests services PRs that change app services
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants