Coder Social home page Coder Social logo

Comments (4)

rgthree avatar rgthree commented on September 17, 2024

Hmmm.. I'm not sure why that change would cause an error here. Though, I'm not too surprised ComfyUI's groupNodes are where the error lies.

I don't really use the groupNodes in ComfyUI, but I just tried adding some with and without my nodes, but can't recreate this error.

Is it possible you could trim down your workflow into just a fews nodes that seem to cause the issue?

from rgthree-comfy.

devocalypse avatar devocalypse commented on September 17, 2024

I apologize for it taking so long, I managed to trim the workflow down to a single component.

I've added packed and unpacked variants. The unpacked one loads with the newest rgthree - no problem.
The packed one however breaks and fails to even render the view properly and prevents all other nodes and components from loading.
workflow-1component - packed and unpacked.zip

I am aware that this might be Impact's Components fault and not rgthrees, but the same components load without problem if I remove or rollback rgthree.

from rgthree-comfy.

rgthree avatar rgthree commented on September 17, 2024

I honestly don't know how you're using the comfy Group Nodes. They have never seemed to work for me. Even just now trying to get just a simple seed value passed through with an otherwise clean workflow doesn't work. I don't want to recommend you not use them directly, but I don't trust them to work myself.

Anyway, I did find the issue of why its not loading, thanks for the example. ComfyUI's Group Node code doesn't like that your example workflow has a groupNode configuration that has the Any Switch inputs marked as hidden. This is likely due to a recent change so the Any Switch, Context Switch and Context Merge now have dynamic inputs allow you to add infinite number of inputs to switch against, rather than the hardcoded limit at five.

Unfortunately, I can't fix it forward from rgthree-comfy since the issue is directly in ComfyUI's group nodes. I'm sorry, but you'll have to edit the JSON directly to remove the configuration data for these inputs.

In the workflow JSON, under the group's config JS object, you'll see something like this (where "4" here is the link id the group node has for the Any Switch):

"4": {
  "input": {
    "any_03": {
      "visible": false
    },
    "any_04": {
      "visible": false
    },
    "any_05": {
      "visible": false
    }
  }
},

Since these are now dynamic, the groupNode code doesn't like that they're styled too. You'll want to remove the entire "input" data object.


Alternatively, you could edit comfyui's code directly to allow your workflows with this issue to load by opening /comfyui/web/extensions/core/groupNode.js and find the line that looks like this (for me, it's line 922):

const widgetName = self.groupData.oldToNewWidgetMap[n][w];

And add a ?. in between the [n] and the [w] so it becomes:

const widgetName = self.groupData.oldToNewWidgetMap[n]?.[w];

Note, if there's an update to this line in the future, you may need to undo this change before git lets you update it, as it would think there's a conflict.

from rgthree-comfy.

devocalypse avatar devocalypse commented on September 17, 2024

Thank you very much for the exhaustive explanation, I really appreciate it.
I was using the group nodes to minimize the screen space and links that certain sections require, hide the unneeded fields and inputs and make an overall cleaner look compartmentalizing functionally separate zones. It also helps me reduce connection line clutter which is so bad in my case that when I un-hide the connection lines the whole thing slows to a crawl and I can't stand that.

After considering how technically limiting using these groups is, however, and taking into account the new n-number of any switches and in the name of future compatibility I guess I'll just un-group them and stash their inner workings beyond the workflows borders. This will break importing previously generated images but at least will guarantee that future ones will not break like that. I'll just keep a frozen copy of the version that still loads them and be done with that.

Once again, thanks for taking time to look into this and for making this essential node collection as well.

from rgthree-comfy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.