Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Copying and Pasting Grouped Nodes Between Workflows Breaking #851

Closed
gonzalu opened this issue Sep 16, 2024 · 13 comments
Closed

[Bug]: Copying and Pasting Grouped Nodes Between Workflows Breaking #851

gonzalu opened this issue Sep 16, 2024 · 13 comments
Assignees
Labels
bug Something isn't working

Comments

@gonzalu
Copy link

gonzalu commented Sep 16, 2024

Frontend Version

ComfyUI Revision: 2678 [9f4daca9] | Released on '2024-09-11'

Expected Behavior

Copying all nodes, including GROUPED nodes, from one workflow to another should paste all nodes copied.

Actual Behavior

Only ungrouped nodes copy across. It works within same workflow.

Steps to Reproduce

Copy a group or a number of grouped nodes in workflow, paste them in a different workflow

Debug Logs

loaded partially 19324.4296875 19323.990356445312 0
100%|█████████████████████████████████████████████████████████████████████████████████████████| 20/20 [01:21<00:00,  4.08s/it]
Requested to load AutoencodingEngine
Loading 1 new model
loaded completely 0.0 159.87335777282715 True
Prompt executed in 140.80 seconds
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"
HTTP Request: GET http://10.0.1.3:11434/api/tags "HTTP/1.1 200 OK"

Browser Logs

:8188/api/userdata/workflows%2F.index.json:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/extensions/dzNodes/dz_DZ_widgets.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/DZ/debug:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/userdata/workflows%2F.index.json:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/DZ/debug:1 Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
:8188/extensions/ComfyUI-Custom-Scripts/js/assets/favicon-active.user.ico:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/pysssss/autocomplete:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/extensions/ComfyUI-Custom-Scripts/js/assets/favicon.user.ico:1 Failed to load resource: the server responded with a status of 404 (Not Found)
127.0.0.1/:1 Autofocus processing was blocked because a document already has a focused element.
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.5249719980585457:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.4088585542696559:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.48811561718178:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.41453703199631287:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.4535774993130537:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.8939789812938721:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.2701093954451761:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.939592518018431:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.43083843257563315:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.12562295744069596:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.788936916542953:1 Failed to load resource: the server responded with a status of 404 (Not Found)
:8188/api/view?filename=bikey.png&type=input&subfolder=&rand=0.994235884095108:1 Failed to load resource: the server responded with a status of 404 (Not Found)
710 is def invalid; BOTH origin node 12 doesn't have 710 and 12 target node doesn't have 710.
709 is def invalid; BOTH origin node 99 doesn't have 709 and 99 target node doesn't have 709.
708 is def invalid; BOTH origin node 4 doesn't have 708 and 4 target node doesn't have 708.
707 is def invalid; BOTH origin node 157 doesn't have 707 and 157 target node doesn't have 707.
706 is def invalid; BOTH origin node 99 doesn't have 706 and 99 target node doesn't have 706.
705 is def invalid; BOTH origin node 4 doesn't have 705 and 4 target node doesn't have 705.
704 is def invalid; BOTH origin node 99 doesn't have 704 and 99 target node doesn't have 704.
703 is def invalid; BOTH origin node 99 doesn't have 703 and 99 target node doesn't have 703.
702 is def invalid; BOTH origin node 99 doesn't have 702 and 99 target node doesn't have 702.
701 is def invalid; BOTH origin node 99 doesn't have 701 and 99 target node doesn't have 701.
700 is def invalid; BOTH origin node 99 doesn't have 700 and 99 target node doesn't have 700.
699 is def invalid; BOTH origin node 99 doesn't have 699 and 99 target node doesn't have 699.
698 is def invalid; BOTH origin node 99 doesn't have 698 and 99 target node doesn't have 698.
697 is def invalid; BOTH origin node 99 doesn't have 697 and 99 target node doesn't have 697.
689 is def invalid; BOTH origin node 230 doesn't have 689 and 230 target node doesn't have 689.
688 is def invalid; BOTH origin node 229 doesn't have 688 and 229 target node doesn't have 688.
687 is def invalid; BOTH origin node 227 is removed and 227 target node doesn't have 687.
686 is def invalid; BOTH origin node 99 doesn't have 686 and 99 target node doesn't have 686.
685 is def invalid; BOTH origin node 99 doesn't have 685 and 99 target node doesn't have 685.
684 is def invalid; BOTH origin node 4 doesn't have 684 and 4 target node doesn't have 684.
683 is def invalid; BOTH origin node 99 doesn't have 683 and 99 target node doesn't have 683.
682 is def invalid; BOTH origin node 99 doesn't have 682 and 99 target node doesn't have 682.
681 is def invalid; BOTH origin node 64 doesn't have 681 and 64 target node doesn't have 681.
680 is def invalid; BOTH origin node 230 doesn't have 680 and 230 target node doesn't have 680.
679 is def invalid; BOTH origin node 229 doesn't have 679 and 229 target node doesn't have 679.
678 is def invalid; BOTH origin node 12 doesn't have 678 and 12 target node doesn't have 678.
677 is def invalid; BOTH origin node 99 doesn't have 677 and 99 target node doesn't have 677.
676 is def invalid; BOTH origin node 4 doesn't have 676 and 4 target node doesn't have 676.
675 is def invalid; BOTH origin node 157 doesn't have 675 and 157 target node doesn't have 675.
674 is def invalid; BOTH origin node 99 doesn't have 674 and 99 target node doesn't have 674.
673 is def invalid; BOTH origin node 4 doesn't have 673 and 4 target node doesn't have 673.
672 is def invalid; BOTH origin node 99 doesn't have 672 and 99 target node doesn't have 672.
671 is def invalid; BOTH origin node 99 doesn't have 671 and 99 target node doesn't have 671.
670 is def invalid; BOTH origin node 99 doesn't have 670 and 99 target node doesn't have 670.
669 is def invalid; BOTH origin node 99 doesn't have 669 and 99 target node doesn't have 669.
668 is def invalid; BOTH origin node 99 doesn't have 668 and 99 target node doesn't have 668.
667 is def invalid; BOTH origin node 99 doesn't have 667 and 99 target node doesn't have 667.
666 is def invalid; BOTH origin node 99 doesn't have 666 and 99 target node doesn't have 666.
665 is def invalid; BOTH origin node 99 doesn't have 665 and 99 target node doesn't have 665.
606 is def invalid; BOTH origin node 99 doesn't have 606 and 99 target node is removed.
605 is def invalid; BOTH origin node 4 doesn't have 605 and 4 target node is removed.
604 is def invalid; BOTH origin node 157 doesn't have 604 and 157 target node doesn't have 604.
603 is def invalid; BOTH origin node 99 doesn't have 603 and 99 target node doesn't have 603.
602 is def invalid; BOTH origin node 4 doesn't have 602 and 4 target node doesn't have 602.
601 is def invalid; BOTH origin node 12 doesn't have 601 and 12 target node doesn't have 601.
600 is def invalid; BOTH origin node 99 doesn't have 600 and 99 target node doesn't have 600.
599 is def invalid; BOTH origin node 99 doesn't have 599 and 99 target node doesn't have 599.
598 is def invalid; BOTH origin node 99 doesn't have 598 and 99 target node doesn't have 598.
597 is def invalid; BOTH origin node 99 doesn't have 597 and 99 target node doesn't have 597.
596 is def invalid; BOTH origin node 99 doesn't have 596 and 99 target node doesn't have 596.
595 is def invalid; BOTH origin node 99 doesn't have 595 and 99 target node doesn't have 595.
594 is def invalid; BOTH origin node 99 doesn't have 594 and 99 target node doesn't have 594.
593 is def invalid; BOTH origin node 99 doesn't have 593 and 99 target node doesn't have 593.
592 is def invalid; BOTH origin node 99 doesn't have 592 and 99 target node doesn't have 592.
591 is def invalid; BOTH origin node 4 doesn't have 591 and 4 target node doesn't have 591.
590 is def invalid; BOTH origin node 99 doesn't have 590 and 99 target node is removed.
589 is def invalid; BOTH origin node 4 doesn't have 589 and 4 target node is removed.
588 is def invalid; BOTH origin node 157 doesn't have 588 and 157 target node doesn't have 588.
587 is def invalid; BOTH origin node 99 doesn't have 587 and 99 target node doesn't have 587.
586 is def invalid; BOTH origin node 4 doesn't have 586 and 4 target node doesn't have 586.
585 is def invalid; BOTH origin node 12 doesn't have 585 and 12 target node doesn't have 585.
584 is def invalid; BOTH origin node 99 doesn't have 584 and 99 target node doesn't have 584.
583 is def invalid; BOTH origin node 99 doesn't have 583 and 99 target node doesn't have 583.
582 is def invalid; BOTH origin node 99 doesn't have 582 and 99 target node doesn't have 582.
581 is def invalid; BOTH origin node 99 doesn't have 581 and 99 target node doesn't have 581.
580 is def invalid; BOTH origin node 99 doesn't have 580 and 99 target node doesn't have 580.
579 is def invalid; BOTH origin node 99 doesn't have 579 and 99 target node doesn't have 579.
578 is def invalid; BOTH origin node 99 doesn't have 578 and 99 target node doesn't have 578.
577 is def invalid; BOTH origin node 99 doesn't have 577 and 99 target node doesn't have 577.
576 is def invalid; BOTH origin node 99 doesn't have 576 and 99 target node doesn't have 576.
575 is def invalid; BOTH origin node 4 doesn't have 575 and 4 target node doesn't have 575.
574 is def invalid; BOTH origin node 99 doesn't have 574 and 99 target node is removed.
573 is def invalid; BOTH origin node 4 doesn't have 573 and 4 target node is removed.
572 is def invalid; BOTH origin node 157 doesn't have 572 and 157 target node doesn't have 572.
571 is def invalid; BOTH origin node 99 doesn't have 571 and 99 target node doesn't have 571.
570 is def invalid; BOTH origin node 4 doesn't have 570 and 4 target node doesn't have 570.
569 is def invalid; BOTH origin node 12 doesn't have 569 and 12 target node doesn't have 569.
568 is def invalid; BOTH origin node 99 doesn't have 568 and 99 target node doesn't have 568.
567 is def invalid; BOTH origin node 99 doesn't have 567 and 99 target node doesn't have 567.
566 is def invalid; BOTH origin node 99 doesn't have 566 and 99 target node doesn't have 566.
565 is def invalid; BOTH origin node 99 doesn't have 565 and 99 target node doesn't have 565.
564 is def invalid; BOTH origin node 99 doesn't have 564 and 99 target node doesn't have 564.
563 is def invalid; BOTH origin node 99 doesn't have 563 and 99 target node doesn't have 563.
562 is def invalid; BOTH origin node 99 doesn't have 562 and 99 target node doesn't have 562.
561 is def invalid; BOTH origin node 99 doesn't have 561 and 99 target node doesn't have 561.
560 is def invalid; BOTH origin node 99 doesn't have 560 and 99 target node doesn't have 560.
559 is def invalid; BOTH origin node 4 doesn't have 559 and 4 target node doesn't have 559.
553 is def invalid; BOTH origin node 157 doesn't have 553 and 157 target node doesn't have 553.
552 is def invalid; BOTH origin node 99 doesn't have 552 and 99 target node doesn't have 552.
551 is def invalid; BOTH origin node 99 doesn't have 551 and 99 target node doesn't have 551.
550 is def invalid; BOTH origin node 12 doesn't have 550 and 12 target node doesn't have 550.
549 is def invalid; BOTH origin node 99 doesn't have 549 and 99 target node doesn't have 549.
548 is def invalid; BOTH origin node 99 doesn't have 548 and 99 target node doesn't have 548.
547 is def invalid; BOTH origin node 99 doesn't have 547 and 99 target node doesn't have 547.
546 is def invalid; BOTH origin node 99 doesn't have 546 and 99 target node doesn't have 546.
545 is def invalid; BOTH origin node 99 doesn't have 545 and 99 target node doesn't have 545.
544 is def invalid; BOTH origin node 99 doesn't have 544 and 99 target node doesn't have 544.
543 is def invalid; BOTH origin node 99 doesn't have 543 and 99 target node doesn't have 543.
542 is def invalid; BOTH origin node 99 doesn't have 542 and 99 target node doesn't have 542.
541 is def invalid; BOTH origin node 4 doesn't have 541 and 4 target node doesn't have 541.
540 is def invalid; BOTH origin node 4 doesn't have 540 and 4 target node doesn't have 540.
536 is def invalid; BOTH origin node 99 doesn't have 536 and 99 target node doesn't have 536.
535 is def invalid; BOTH origin node 157 doesn't have 535 and 157 target node doesn't have 535.
534 is def invalid; BOTH origin node 99 doesn't have 534 and 99 target node doesn't have 534.
533 is def invalid; BOTH origin node 177 doesn't have 533 and 177 target node doesn't have 533.
532 is def invalid; BOTH origin node 99 doesn't have 532 and 99 target node doesn't have 532.
531 is def invalid; BOTH origin node 12 doesn't have 531 and 12 target node doesn't have 531.
530 is def invalid; BOTH origin node 99 doesn't have 530 and 99 target node doesn't have 530.
529 is def invalid; BOTH origin node 4 doesn't have 529 and 4 target node doesn't have 529.
528 is def invalid; BOTH origin node 99 doesn't have 528 and 99 target node doesn't have 528.
527 is def invalid; BOTH origin node 99 doesn't have 527 and 99 target node doesn't have 527.
526 is def invalid; BOTH origin node 99 doesn't have 526 and 99 target node doesn't have 526.
525 is def invalid; BOTH origin node 99 doesn't have 525 and 99 target node doesn't have 525.
524 is def invalid; BOTH origin node 99 doesn't have 524 and 99 target node doesn't have 524.
523 is def invalid; BOTH origin node 99 doesn't have 523 and 99 target node doesn't have 523.
522 is def invalid; BOTH origin node 4 doesn't have 522 and 4 target node doesn't have 522.
521 is def invalid; BOTH origin node 4 doesn't have 521 and 4 target node doesn't have 521.
519 is def invalid; BOTH origin node 157 doesn't have 519 and 157 target node doesn't have 519.

What browsers do you use to access the UI ?

No response

Other

Nodesnotcopyingv2.mp4
@gonzalu gonzalu added the Potential Bug Untriaged bug label Sep 16, 2024
@huchenlei
Copy link
Member

I think the issue here is that the grouped nodes are registered to litegraph node definition, and this definition is local to the workflow you open. This is a design flaw of the grouped nodes.

@huchenlei huchenlei added bug Something isn't working and removed Potential Bug Untriaged bug labels Sep 17, 2024
@gonzalu
Copy link
Author

gonzalu commented Sep 17, 2024

I think the issue here is that the grouped nodes are registered to litegraph node definition, and this definition is local to the workflow you open. This is a design flaw of the grouped nodes.

Ah, OK, makes sense... thank you.

@huchenlei
Copy link
Member

@pythongosssss Can you PTAL as you implemented the group node?

@christian-byrne
Copy link
Collaborator

It works for me on v1.2.47:

copy-paste-grouped-node.mp4

@gonzalu
Copy link
Author

gonzalu commented Sep 17, 2024

maybe for me the copy/paste does not work because they were created under a different system/set-up?

Let me test creating them myself first.

@JorgeR81
Copy link

It works for me on v1.2.47:

I'm on windows 10.
I have a portable install.

Copy / paste Group Nodes between workflows never worked for me.

It also does not work in the latest v1.3.3

For instance, this KS_VAE grouped node ( KSampler + VAE + Preview Image ) is only available in the KS_VAE_WF workflow, not the Test1 workflow.

wf0

@JorgeR81
Copy link

The Group Node shows up in the Node Library, but it can't be dragged, to Test1 workflow.

Is there another alternative besides just recreating the Group Node in the test1 workflow ?

lib

@LukeG89
Copy link

LukeG89 commented Sep 29, 2024

I can confirm the issue. I created two workflows in which there was a group node in each. I tried copying the group node of one to the other and vice versa, but it did't work.
Only the first time it worked for some reason, but after switching the workflow, the copied group nodes turned red as missing custom nodes.

@JorgeR81
Copy link

JorgeR81 commented Oct 1, 2024

I'm still having this issue in v1.3.4

I noticed some errors in the console, when the pasting failed.

But it logged the same error when I successfully pasted the Group Node, in the original workflow !

log

@JorgeR81
Copy link

JorgeR81 commented Oct 1, 2024

I also noticed a weird bug, while I was testing this.
But only once, I was not able to replicate.

After failing to paste the Group node, in another workflow, I pasted again the the original one.
As expected, a node was pasted, but not the Group Node ( KSampler + VAE )
Insted, it pasted a Load Image node, with a screenshot of my monitor !
It seems the screenshot was taken when the previous pasting failed, in the other workflow.

wf10

@christian-byrne
Copy link
Collaborator

christian-byrne commented Oct 1, 2024

I have a fix here, need to add tests

  • Group nodes were unregistering themselves when clicking 'New Blank Worflow' (in app.clean patch). As long as you never click that button or 'Clear Workspace' button, copy/paste group nodes between workflows works
  • Group nodes were not added to workflow on copy-paste, so saved/reloaded workflows with group nodes pasted from other workflows failed to load

@JorgeR81
Copy link

JorgeR81 commented Oct 1, 2024

Oh, right ! I just noticed several of your fixes were included in v1.3.4., but not this one.

@huchenlei
Copy link
Member

Should be fixed in #1069

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants