invoke-ai / InvokeAI

Invoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, and serves as the foundation for multiple commercial products.
https://invoke-ai.github.io/InvokeAI/
Apache License 2.0
23.61k stars 2.43k forks source link

[enhancement]: Workflow Editor UI improvements #5651

Open Creare-d-arte opened 9 months ago

Creare-d-arte commented 9 months ago

Is there an existing issue for this?

Contact Details

No response

What should this feature add?

There are two associated features requests here.

  1. Add the ability to toggle the visibility of all wires, and/or individual wires.

    e.g. V key . .

  2. Add a node (or set of nodes) that transfer outputs to inputs; without wired connections.

I've created a mock-up of a possible implementation below.

kjhgkhkhgjhkgj

psychedelicious on Discord has suggested:

"...you could have Portal In and Portal Out nodes. Each Portal In node gets an ID or name. You can put anything into a Portal In node. Each Portal Out node has a dropdown for the available Portal In nodes, and can be connected to another input field.

Or, a Portal node that you connect your VAE to. Then, other VAE fields in all nodes could have a button that lets you link them to existing Portal nodes." . . The reason for this request, is that it can be difficult to discern where a node's output is being sent in complex setups.

Alternatives

I am not aware of any portal-like node in InvokeAI atm (as described).

Nor am I aware of any way to hide wires.

Additional Content

In the node mock-up above, the Channel setting will accept numerals (e.g. 1, 2, 3, ...).

While the Node and Type settings would be automatically set; based on the channel or input connection.

e.g. One connects a Noise node's Value output to Portal Out; this sets the Output Node setting to Nosie, and the Output type to Value.

For the Portal In node; setting the Channel to 1, will set the Input Node setting to Noise, and the Input Type to Value.

joshistoast commented 9 months ago

The reason for this request, is that it can be difficult to discern where a node's output is being sent in complex setups.

If you highlight the node, it's inputs and outputs become dashed and animated and very discernible from other 'wires'. I don't want to invalidate someone's opinion, but I feel like the problem this would solve doesn't really exist?

Creare-d-arte commented 9 months ago

The reason for this request, is that it can be difficult to discern where a node's output is being sent in complex setups.

If you highlight the node, it's inputs and outputs become dashed and animated and very discernible from other 'wires'. I don't want to invalidate someone's opinion, but I feel like the problem this would solve doesn't really exist?

. In simple setups with a few nodes (<10), it is feasible to follow dashed wires from their input to their output(s). . . From my experience in trying to reverse-engineer complex workflows; and in trying to create my own;

It is nearly impossible to follow a wires path (even when animated/dashed); due to the obfuscation of overlaying nodes and wires.

An apt analogy is one trying to follow a line in a spaghetti pasta dish.

e.g. Here is a fairly intermediate setup:

image

(Note that while it is comfyUI, this is just an example of the kind of workflow that one may create in InvokeAI.)

Advanced example:

image

. . In the examples above, the wires only serve to obscure connections; and consequently, comprehension. . . Portal nodes have been made already for ComfyUI, to solve this issue (though I'm not 100% happy with their implementation). . . Users like myself would find it useful to have Portal nodes like those above.

As one does not need to follow a wire/break apart the workflow.

Instead there is a list of Input/Output channels corresponding to specific nodes and their outputs. . . e.g. Something like this (see below), is a nightmare to reverse engineer and setup without portal systems.

image