InvokeAI icon indicating copy to clipboard operation
InvokeAI copied to clipboard

[bug]: SDXL models missing from core metadata node's model selector

Open JPBarringer opened this issue 1 year ago • 2 comments

Is there an existing issue for this problem?

  • [X] I have searched the existing issues

Operating system

macOS

GPU vendor

Apple Silicon (MPS)

GPU model

M1 Max

GPU VRAM

64 GB

Version number

3.7.0

Browser

Chrome 121.0.6167.184

Python dependencies

No response

What happened

In the workflow editor, I added the Core Metadata node and went to select the model. I was using an SDXL model but the list only displayed SD 1.x models

What you expected to happen

I expected to see all available models in the list (or, a list limited by the Generation Mode)

How to reproduce the problem

Open workflow editor, add Core Metadata node, select models in dropdown. (On a system with both SD 1.x and SDXL models installed.)

Additional context

This may be related to https://github.com/invoke-ai/InvokeAI/issues/4959 https://github.com/invoke-ai/InvokeAI/pull/4686#discussion_r1366447763

Only somewhat related: The core metadata node could also benefit from passthrough/output values (could use its fields as inputs for linear workflow UI and then pass fields out to the graph from there). Or alternatively the Denoise Latents node could pass out values that could be piped into core metadata. Would make workflow layout simpler.

Discord username

No response

JPBarringer avatar Feb 26 '24 16:02 JPBarringer

This node is an internal implementation detail, designed for programmatic use in the UI. We got requests for it to be made visible in the UI so we un-hid it, but this node should have a big asterisk on it.

In v4, this node changes, and these inputs are nonfunctional: image

And these inputs have "incorrect" types:

  • rand device
  • scheduler
  • init image
  • hrf method
  • refiner scheduler

These inputs have field/data types that are used only for metadata in the linear UI's internal graph building logic. I don't plan to create all the additional logic and UI for those field types.

psychedelicious avatar Apr 01 '24 09:04 psychedelicious

To address the use-case, we could do something like this:

  • Remove (hide) the CoreMetadata node.
  • Create a new Metadata Helper node that with a subset of CoreMetadata's inputs. For example, we'd exclude the HRF metadata.
  • Add an additional Model Identifier output for all model-selecting nodes. The model identifier is an object that includes model name, base, type, key, hash, and submodel type (e.g. UNet, CLIP, VAE).
  • The Metadata Helper node would have a Model and VAE input that accept a Model Identifier.

There would be no "generic" model selection, but you could route the Model Identifier outputs into the Metadata Helper.

psychedelicious avatar Apr 01 '24 09:04 psychedelicious