chrisgoringe / cg-use-everywhere

Apache License 2.0
355 stars 28 forks source link

Refresh UE? autocomplete widgets, after using rgthree pan / zoom nodes #173

Open JorgeR81 opened 3 months ago

JorgeR81 commented 3 months ago

The rgthree suite has some nodes that allow to pan / zoom the workflow.

There is the Fast Groups Muter, that also can take you the group's location in the workflow. And there is also a "bookmark" node, which takes us to it's position, with a pre-selected zoom level, via keybind.  https://github.com/rgthree/rgthree-comfy?tab=readme-ov-file#bookmark-

When we use them, the UE? autocomplete widgets don't refresh fast enough. So we can still see them, in the position and size that they had before.

And we can also click on them, like a regular widget, to show the text input popup, and the autocomplete balloon. So it's not just a visual artifact.

After panning manually a bit, this goes away.  But the point of using these rgthree nodes, is to get to that exact place in the workflow automatically. So having to pan manually afterwards, makes them far less useful.

rg3o

chrisgoringe commented 3 months ago

Interesting. Does it happen with any other modes? In particular, anything with a multiline text input would be interesting to test.

JorgeR81 commented 3 months ago

This is the only issue I noticed using these rgthree nodes. The large field for the prompt text does not have this issue.

What I noticed, sometimes, is that when I'm making changes in more complex workflows, the autocomplete widgets still appear in the top left corner, like before. There are multiple ones, on top of each other. And then, they also disappear after planning / zooming, like before. But I'm not entirely sure about what actions trigger that. One thing I noticed is that using Ctrl+Z ( Undo ) can trigger that.

JorgeR81 commented 3 months ago

Does it happen with any other modes? In particular, anything with a multiline text input would be interesting to test.

I just noticed that this can also happen, even without using the rgthree zoom / pan nodes.

Here I have a workflow with "Priority Boost" up to 5. So there is a lot of text in some of the EU? widgets.

When I zoom in manually, I can still see some EU? widgets in the screen's corner, from a previous zoom level.  

test0

b5

JorgeR81 commented 3 months ago

On a side note,  And sorry for bringing up this again, 

But, are you sure that, in the long term, wouldn't it just be easier to have a custom autocomplete, instead of trying to hunt down all these widget errors ?

ComfyUI-Custom-Scripts uses this MIT implementation, and I never noticed any issues.

https://github.com/pythongosssss/ComfyUI-Custom-Scripts?tab=readme-ov-file#autocomplete

https://github.com/pythongosssss/ComfyUI-Custom-Scripts/blob/main/web/js/common/autocomplete.js

JorgeR81 commented 3 months ago

OK, the current autocomplete widget does have an advantage.

It can display a larger number of characters.   All single line string nodes, from different suites, seem to have the same limit on the characters displayed. Could it be a Comfy UI limitation ?


To further improve the way this works in UE? widgets,

Maybe the text input popup could be disabled if the "|" character is detected in the current string. Because, in these cases, it's better to just edit the text directly in the widget, like we did before. 

pop

mln

chrisgoringe commented 3 months ago

OK, the current autocomplete widget does have an advantage.

It can display a larger number of characters.   All single line string nodes, from different suites, seem to have the same limit on the characters displayed. Could it be a Comfy UI limitation ?

Yes.

The single-line text widgets on ComfyUI are built-in (not by Comfy, but from the underlying LiteGraph code) with a fixed width. To add the autocomplete to these directly is not at all simple.

So going to a custom widget is basically unavoidable. And that (not the use of the html autocomplete) is what causes some of the UI complications. So swapping out to use a different autocomplete would add complexity without removing any. The other autocompletes knocking around in the custom node world are (AFAIK) working in the multi-line text area, which is a custom widget added by Comfy. And I really don't want to use a multi-line widget for the regexes!

Closing the autocomplete on detection of a specific character is fairly easy, but I wonder if it would be better to make the escape key do it (like is common in web UIs) but make it persistent (so if you press escape, the autoprompt goes away and doesn't come back!)

JorgeR81 commented 3 months ago

I really don't want to use a multi-line widget for the regexes

I agree. The text is not as visible in the multi line widget, so single line is better for me.

if you press escape, the autoprompt goes away and doesn't come back

So the autocomplete would be disabled for that UE node ?

That would work well.  For multi regex, we don't really need autocomplete.