[GH-ISSUE #990] list only custom node packages required by current workflow #431

Closed
opened 2026-10-27 21:17:27 +00:00 by bsakaguchi · 11 comments
Owner

Originally created by @drmbt on GitHub (Aug 21, 2024).
Original GitHub issue: https://github.com/Comfy-Org/ComfyUI-Manager/issues/990

I'm trying to manage a bunch of different environments accross the spectrum of what comfy can do. After much head bashing, I finally have an environment that can run all of my different environments, but to make my workflows more distributable, I would love to include a snapshot of each workflows requirements.

Comfy Manager snapshots is awesome, but its going to create a snapshot of everything installed, not a snapshot of the minimal third party node requirements necessary to run each pipe. I know the manager can access the info I want because the badge overlay shows external nodepacks, but I'm looking for a way to export just the third party node requirements for a single workflow without including all the cruft I've accumulated along the way. Does anyone know of a script, node pack, or even where to look in the comfy-manager code base to figure out how i might export only the third party requirements for a single workflow?

Maybe a solution for this exists already, or maybe this is an RFE for a snapshot export option that only lists the currently utilized nodes in the current workflow

Originally created by @drmbt on GitHub (Aug 21, 2024). Original GitHub issue: https://github.com/Comfy-Org/ComfyUI-Manager/issues/990 I'm trying to manage a bunch of different environments accross the spectrum of what comfy can do. After much head bashing, I finally have an environment that can run all of my different environments, but to make my workflows more distributable, I would love to include a snapshot of each workflows requirements. Comfy Manager snapshots is awesome, but its going to create a snapshot of everything installed, not a snapshot of the minimal third party node requirements necessary to run each pipe. I know the manager can access the info I want because the badge overlay shows external nodepacks, but I'm looking for a way to export just the third party node requirements for a single workflow without including all the cruft I've accumulated along the way. Does anyone know of a script, node pack, or even where to look in the comfy-manager code base to figure out how i might export only the third party requirements for a single workflow? Maybe a solution for this exists already, or maybe this is an RFE for a snapshot export option that only lists the currently utilized nodes in the current workflow
bsakaguchi 2026-10-27 21:17:27 +00:00
Author
Owner

@ltdrdata commented on GitHub (Aug 21, 2024):

This feature is currently being planned.

<!-- gh-comment-id:2302192980 --> @ltdrdata commented on GitHub (Aug 21, 2024): This feature is currently being planned.
Author
Owner

@christian-byrne commented on GitHub (Aug 21, 2024):

You can paste this into browser DevTools:

const nodesInWorkflow = app.graph._nodes.map((node) => node.type)
fetch('http://localhost:8188/api/object_info')
  .then((response) => {
    return response.json()
  })
  .then((data) => {
    const nodeModules = new Set()
    nodesInWorkflow.forEach((nodeType) => {
      if (data[nodeType]?.name === nodeType && data[nodeType].python_module) {
        const [namespace, ...rest] = data[nodeType].python_module.split('.')
        if (namespace === 'custom_nodes') {
          nodeModules.add(rest.join('.'))
        }
      }
    })
    console.log(`[${Array.from(nodeModules)}]`)
  })
  .catch((error) => console.error('Error:', error))
<!-- gh-comment-id:2302194980 --> @christian-byrne commented on GitHub (Aug 21, 2024): You can paste this into browser DevTools: ```javascript const nodesInWorkflow = app.graph._nodes.map((node) => node.type) fetch('http://localhost:8188/api/object_info') .then((response) => { return response.json() }) .then((data) => { const nodeModules = new Set() nodesInWorkflow.forEach((nodeType) => { if (data[nodeType]?.name === nodeType && data[nodeType].python_module) { const [namespace, ...rest] = data[nodeType].python_module.split('.') if (namespace === 'custom_nodes') { nodeModules.add(rest.join('.')) } } }) console.log(`[${Array.from(nodeModules)}]`) }) .catch((error) => console.error('Error:', error)) ```
Author
Owner

@aiXander commented on GitHub (Aug 22, 2024):

Crosslinking this in case its helpful for anyone right now, but this script does a pretty good job:
https://pastebin.com/3BJ5i9Vv

<!-- gh-comment-id:2305605950 --> @aiXander commented on GitHub (Aug 22, 2024): Crosslinking this in case its helpful for anyone right now, but this script does a pretty good job: https://pastebin.com/3BJ5i9Vv
Author
Owner

@kampelmuehler commented on GitHub (Jan 29, 2025):

There's also useful code in the manager here

Edit: Just realized that this can also be used within the script above.

<!-- gh-comment-id:2621563148 --> @kampelmuehler commented on GitHub (Jan 29, 2025): There's also useful code in the manager [here](https://github.com/ltdrdata/ComfyUI-Manager/blob/717ca1bb182c9350dcec82fb94fc41fbb9f6a4ba/glob/manager_core.py#L2554C7-L2663C36) Edit: Just realized that this can also be used within the script above.
Author
Owner

@ltdrdata commented on GitHub (Feb 24, 2025):

This is implemented.

Image

<!-- gh-comment-id:2678258442 --> @ltdrdata commented on GitHub (Feb 24, 2025): This is implemented. ![Image](https://github.com/user-attachments/assets/320a7835-682f-488a-ba4f-761c3f504cbf)
Author
Owner

@kampelmuehler commented on GitHub (Feb 24, 2025):

Great, thanks!

<!-- gh-comment-id:2678295632 --> @kampelmuehler commented on GitHub (Feb 24, 2025): Great, thanks!
Author
Owner

@BenDes21 commented on GitHub (Feb 25, 2025):

This is implemented.

Image

Hi, possible to get the snapshot file of only specific workflow ?

<!-- gh-comment-id:2681089858 --> @BenDes21 commented on GitHub (Feb 25, 2025): > This is implemented. > > ![Image](https://github.com/user-attachments/assets/320a7835-682f-488a-ba4f-761c3f504cbf) Hi, possible to get the snapshot file of only specific workflow ?
Author
Owner

@ltdrdata commented on GitHub (Feb 25, 2025):

This is implemented.

Image

Hi, possible to get the snapshot file of only specific workflow ?

I already have a plan for that.

<!-- gh-comment-id:2681129858 --> @ltdrdata commented on GitHub (Feb 25, 2025): > > This is implemented. > > > > ![Image](https://github.com/user-attachments/assets/320a7835-682f-488a-ba4f-761c3f504cbf) > > Hi, possible to get the snapshot file of only specific workflow ? I already have a plan for that.
Author
Owner

@BenDes21 commented on GitHub (Feb 25, 2025):

This is implemented.
Image

Hi, possible to get the snapshot file of only specific workflow ?

I already have a plan for that.

nice, cannot wait, do you know a temporary solution for this ?

<!-- gh-comment-id:2681304416 --> @BenDes21 commented on GitHub (Feb 25, 2025): > > > This is implemented. > > > ![Image](https://github.com/user-attachments/assets/320a7835-682f-488a-ba4f-761c3f504cbf) > > > > > > Hi, possible to get the snapshot file of only specific workflow ? > > I already have a plan for that. nice, cannot wait, do you know a temporary solution for this ?
Author
Owner

@ltdrdata commented on GitHub (Feb 25, 2025):

This is not just about saving a snapshot. Applying the current snapshot involves actions such as disabling already installed components and performing downgrades. More detailed application functionalities for such restoration need to be further implemented.

For reference, the information corresponding to the snapshot is already embedded when exporting the workflow. It will be utilized in the future.

<!-- gh-comment-id:2682020684 --> @ltdrdata commented on GitHub (Feb 25, 2025): This is not just about saving a snapshot. Applying the current snapshot involves actions such as disabling already installed components and performing downgrades. More detailed application functionalities for such restoration need to be further implemented. For reference, the information corresponding to the snapshot is already embedded when exporting the workflow. It will be utilized in the future.
Author
Owner

@BenDes21 commented on GitHub (Feb 25, 2025):

This is not just about saving a snapshot. Applying the current snapshot involves actions such as disabling already installed components and performing downgrades. More detailed application functionalities for such restoration need to be further implemented.

For reference, the information corresponding to the snapshot is already embedded when exporting the workflow. It will be utilized in the future.

ok thanks for theses infos

<!-- gh-comment-id:2682270075 --> @BenDes21 commented on GitHub (Feb 25, 2025): > This is not just about saving a snapshot. Applying the current snapshot involves actions such as disabling already installed components and performing downgrades. More detailed application functionalities for such restoration need to be further implemented. > > For reference, the information corresponding to the snapshot is already embedded when exporting the workflow. It will be utilized in the future. ok thanks for theses infos
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/ComfyUI-Manager#431
No description provided.