chrisgoringe / cg-use-everywhere

Apache License 2.0
471 stars 33 forks source link

UE nodes count as individual output nodes for muting #183

Open aikitoria opened 5 months ago

aikitoria commented 5 months ago

In this case, the sampler will not run as expected:

image

In this case, the sampler will run, even though nothing uses the broadcast value:

image

Muting the broadcast node works, but surely this isn't how it's supposed to work?

image

chrisgoringe commented 5 months ago

Checking I understand - the issue here is that the UE nodes act as output, so they cause the workflow upstream of them to run, even if, in fact, they are not sending anywhere.

Is that correct?

aikitoria commented 5 months ago

Yes

aikitoria commented 5 months ago

Well, perhaps it is more complicated than "sending anywhere" - more like "sending somewhere that ends in a non-muted real output". The node could be sending to another node that is then connected to a disabled output, and it still should not cause the upstream workflow to run, as none of the targets run.

Basically the exact same graph logic as we would get if we used wires instead of broadcast nodes. Perhaps there is some way to make the entire node not "real" and create the connections behind the scenes, so the existing system solves it?

JorgeR81 commented 5 months ago

I also noticed this issue a while ago. If the current behavior can be changed, it would be great.

But, normally, I would also mute the whole group that has the UE? node, so this does not give me much trouble.

I divide my more complex workflows into groups, and add the groups that can be muted to the Fast Groups Muter ( rgthree ). If you are in a situation where you have this KSampler group sending to multiple other groups that may or may not be muted, then the Fast Groups Muter it's a good way to manage all this, and have an overview of the current stage of your workflow.

But I also need to make sure that I don't create a configuration that can generate an error ( e.g. if a group is not muted and there is no KSampler enabled to feed it ). So if the UE? nodes would act more like real wires, it would be helpful. Because that KSampler group could be a permanent group, that does need to be toggled. ( It would manage itself automatically, without the Fast Groups Muter ).

rg3

chrisgoringe commented 5 months ago

@aikitoria yes, the existing logic should be solving it.

It seems like the UE nodes are flagged to act as outputs; I can't see any reason for that. But it's possible I did it to avoid a different problem!

I'll need to dig into this a bit 😀

aikitoria commented 5 months ago

@chrisgoringe did you find the reason? I have been running for a while with this replaced to False and it seems to be working completely fine, while no longer causing the issue.

https://github.com/chrisgoringe/cg-use-everywhere/blob/main/use_everywhere.py#L14