Skip to content

fix(ui): IP adapter / control adapter model recall for reinstalled models#8960

Merged
lstein merged 5 commits intoinvoke-ai:mainfrom
Pfannkuchensack:claude/fix-ip-adapter-recall-QKFuZ
Mar 11, 2026
Merged

fix(ui): IP adapter / control adapter model recall for reinstalled models#8960
lstein merged 5 commits intoinvoke-ai:mainfrom
Pfannkuchensack:claude/fix-ip-adapter-recall-QKFuZ

Conversation

@Pfannkuchensack
Copy link
Copy Markdown
Collaborator

Summary

Fixes a bug where recalling metadata that references a model fails if the model was deleted
and reinstalled. When a model is reinstalled, it gets a new UUID key, so the stored key in
the metadata no longer matches — causing recall to fail silently or throw an error.

Related Issues / Discussions

Fixes recall failure for IP adapters and control adapters after model reinstallation.

QA Instructions

  1. Install an IP adapter or ControlNet model and generate an image (so the model key is
    stored in metadata).
  2. Delete and reinstall the model (it will get a new UUID key).
  3. Use "Recall all" on the previously generated image.
  4. Verify the model is correctly recalled without errors — the adapter should be populated
    with the reinstalled model.

Checklist

  • The PR has a short but descriptive title, suitable for a changelog
  • Tests added / updated (if applicable)
  • ❗Changes to a redux slice have a corresponding migration
  • Documentation added / updated (if applicable)
  • Updated What's New copy (if doing a release after this PR)

claude and others added 3 commits March 11, 2026 02:56
… reinstalled models

When a model (IP Adapter, ControlNet, etc.) is deleted and reinstalled,
it gets a new UUID key. Previously, metadata recall would fail because
it only looked up models by their stored UUID key. Now the recall falls
back to searching by name+base+type, allowing reinstalled models with
the same name to be correctly resolved.

https://claude.ai/code/session_01XYubzMK363BXGTvfJJqFnX
When a model is deleted and reinstalled, it gets a new UUID key but
retains the same BLAKE3 content hash. This adds hash as a middle
fallback stage in model resolution (key → hash → name+base+type),
making recall more robust.

Changes:
- Add /api/v2/models/get_by_hash backend endpoint (uses existing
  search_by_hash from model records store)
- Add getModelConfigByHash RTK Query endpoint in frontend
- Add hash fallback to both resolveModel and parseModelIdentifier

https://claude.ai/code/session_01XYubzMK363BXGTvfJJqFnX
@github-actions github-actions bot added api python PRs that change python files frontend PRs that change frontend files labels Mar 11, 2026
@lstein lstein self-assigned this Mar 11, 2026
@lstein lstein added the v6.12.0 Intended for 6.12.0 release label Mar 11, 2026
Copy link
Copy Markdown
Collaborator

@lstein lstein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codes look good. Works as advertised.

@lstein lstein enabled auto-merge (squash) March 11, 2026 17:48
@lstein lstein merged commit bba207a into invoke-ai:main Mar 11, 2026
13 checks passed
@Pfannkuchensack Pfannkuchensack deleted the claude/fix-ip-adapter-recall-QKFuZ branch March 13, 2026 14:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api frontend PRs that change frontend files python PRs that change python files v6.12.0 Intended for 6.12.0 release

Projects

Status: 6.12.x

Development

Successfully merging this pull request may close these issues.

3 participants