Comfy-Org / Comfy-Org/ComfyUI_frontend
[Bug]: Cloning a Subgraph node creates a new full copy of the subgraph until you save.
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 699
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 490
Description
### Custom Node Testing
- [x] I have tried disabling custom nodes and the issue persists (see [how to disable custom nodes](https://docs.comfy.org/troubleshooting/custom-node-issues#step-1%3A-test-with-all-custom-nodes-disabled) if you need help)
### Frontend Version
1.25
### Expected Behavior
I'm not completely sure to be honest, because how this is advertised on the blog post, there seem to be two different ways to clone a subgraph node: a copy of the node and a whole copy of the subgraph itself. And right now, I'm not sure how to do one or the other.
https://blog.comfy.org/p/subgraphs-are-coming-to-comfyui?utm_source=publication-search
But there should be a clear and simple way to make the distinction between these two types of copies. I am not sure how it was exactly supposed to work, but I had the impression that the name of the subgraph would be the deciding factor, leading to two use cases:
- clone a subgraph node, open the subgraph, **do not change the subgraph name**, make an edit inside the subgraph, close the subgraph, every subgraph with the same subgraph name has been updated.
- clone a subgraph node, open the subgraph, **change the subgraph name**, make an edit inside the subgraph, close the subgraph, only that particular subgraph has been changed because it has a new name.
### Actual Behavior
With the 1.24.2 release, and more specifically this PR: https://github.com/Comfy-Org/ComfyUI_frontend/pull/4394, subgraph node titles are synchronized with the breadcrumb navigation.
I'm not sure again, but if the idea is that the name of the subgraph is the name in the breadcrumb navigation, then it means the subgraph node title is also the name of the subgraph. In particular, it means that you cannot change the title of a subgraph node without changing the name of the subgraph.
So, for example, if you have a subgraph that manage controlnets and you call it "controlnet", all the subgraph nodes will be called "controlnet".
If you edit one of these subgraphs, only that single one gets updated, despite all of them sharing the same name... That is... until you save or export your workflow and reload it. As shown in the following video:
https://github.com/user-attachments/assets/d4b9f9e4-ecb6-4982-a85a-07cf483c810b
This is very confusing.
Also a related issue (most likely the very same issue in fact), if you change the name of a subgraph using the breadcrumb navigation "rename" option, it doesn't change the subgraph node title (and I think this is the correct behavior). However, if you change the name of the subgraph node title, after you saved and reloaded the workflow, then opens the subgraph, the subgraph breadcrumb navigation "name" also change. As illustrated here:
https://github.com/user-attachments/assets/f6dab83f-f91c-4405-8f08-78c845f02bb8
### Steps to Reproduce
1. Create a new workflow
2. Add any node (Invert Mask, for example)
3. Convert the node into a subgraph
4. Change the title of the subgraph node (to "invert" for example)
5. (**You can verify the subgraph name is now "invert" by opening it and closing it**)
6. Clone the subgraph, you now have 2 subgraph nodes called "invert".
7. Open one of them, make an edit (by adding a new invert mask node for example), close the subgraph.
8. Open the second subgraph, **the update to the first one has not been applied to the second one**, close the subgraph
9. Save or export the workflow. Reload the workflow (by drag dropping the exported one for example).
10. In this new copy of your initial workflow, you have 2 subgraph nodes called "invert".
11. Open one of the subgraph nodes, make an edit (adding the additional invert mask again), close the subgraph.
12. Open the second subgraph, **the update to the first subgraph has been applied this time**, close the subgraph.
13. Double click on one of the subgraph node titles, change it to "inverted".
14. Observe that the second subgraph node title is still "invert".
15. Open any of the subgraph nodes
16. Observe that the subgraph name is new inverted for both subgraph nodes.
17. Change the subgraph name within the subgraph editor using the breadcrumb navigation "rename" option, change it to "whatever", close the subgraph.
18. Observe both nodes are still called "inverted" and "invert".
After 10, every change within the subgraph will be applied to all subgraph nodes.
Before 10, changes will only apply to the node that was double-clicked to open the subgraph.
### Debug Logs
```powershell
Adding extra search path download_model_base g:\ai\models
Adding extra search path clip_vision g:\ai\models\clip_vision
Adding extra search path checkpoints g:\ai\models\checkpoints
Adding extra search path controlnet g:\ai\models\controlnet
Adding extra search path diffusers g:\ai\models\diffusers
Adding extra search path diffusion_models g:\ai\models\diffusion_models
Adding extra search path embeddings g:\ai\models\embeddings
Adding extra search path loras g:\ai\models\loras
Adding extra search path upscale_models g:\ai\models\upscale_models
Adding extra search path vae g:\ai\models\vae
Adding extra search path vae_approx g:\ai\models\vae_approx
Setting output directory to: G:\ai\outputs
[START] Security scan
[DONE] Security scan
## ComfyUI-Manager: installing dependencies done.
** ComfyUI startup time: 2025-07-24 13:16:16.155
** Platform: Windows
** Python version: 3.12.11 | packaged by Anaconda, Inc. | (main, Jun 5 2025, 12:58:53) [MSC v.1929 64 bit (AMD64)]
** Python executable: C:\Users\dchat\miniconda3\envs\comfy\python.exe
** ComfyUI Path: G:\ai\ComfyUI
** ComfyUI Base Folder Path: G:\ai\ComfyUI
** User directory: G:\ai\ComfyUI\user
** ComfyUI-Manager config path: G:\ai\ComfyUI\user\default\ComfyUI-Manager\config.ini
** Log path: G:\ai\ComfyUI\user\comfyui.log
Prestartup times for custom nodes:
0.0 seconds: G:\ai\ComfyUI\custom_nodes\rgthree-comfy
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Easy-Use
3.5 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Manager
Checkpoint files will always be loaded safely.
Total VRAM 24564 MB, total RAM 98135 MB
pytorch version: 2.9.0.dev20250716+cu129
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 4090 : cudaMallocAsync
Using pytorch attention
Python version: 3.12.11 | packaged by Anaconda, Inc. | (main, Jun 5 2025, 12:58:53) [MSC v.1929 64 bit (AMD64)]
ComfyUI version: 0.3.45
Initializing frontend: Comfy-Org/ComfyUI_frontend@latest, requesting version details from GitHub...
Downloading frontend(Comfy-Org_ComfyUI_frontend) version(1.25.0) to (G:\ai\ComfyUI\web_custom_versions\Comfy-Org_ComfyUI_frontend\1.25.0)
[Prompt Server] web root: G:\ai\ComfyUI\web_custom_versions\Comfy-Org_ComfyUI_frontend\1.25.0
[Crystools INFO] Crystools version: 1.25.2
[Crystools INFO] Platform release: 10
[Crystools INFO] JETSON: Not detected.
[Crystools INFO] CPU: 12th Gen Intel(R) Core(TM) i7-12700KF - Arch: AMD64 - OS: Windows 10
[Crystools INFO] pynvml (NVIDIA) initialized.
[Crystools INFO] GPU/s:
[Crystools INFO] 0) NVIDIA GeForce RTX 4090
[Crystools INFO] NVIDIA Driver: 576.57
[ComfyUI-Easy-Use] server: v1.3.2 Loaded
[ComfyUI-Easy-Use] web root: G:\ai\ComfyUI\custom_nodes\ComfyUI-Easy-Use\web_version/v2 Loaded
ComfyUI-GGUF: Allowing full torch compile
### Loading: ComfyUI-Impact-Pack (V8.21)
### Loading: ComfyUI-Impact-Subpack (V1.3.5)
[Impact Pack/Subpack] Using folder_paths to determine whitelist path: G:\ai\ComfyUI\user\default\ComfyUI-Impact-Subpack\model-whitelist.txt
[Impact Pack/Subpack] Ensured whitelist directory exists: G:\ai\ComfyUI\user\default\ComfyUI-Impact-Subpack
[Impact Pack] Wildcards loading done.
[Impact Pack/Subpack] Loaded 0 model(s) from whitelist: G:\ai\ComfyUI\user\default\ComfyUI-Impact-Subpack\model-whitelist.txt
[Impact Subpack] ultralytics_bbox: G:\ai\ComfyUI\models\ultralytics\bbox
[Impact Subpack] ultralytics_segm: G:\ai\ComfyUI\models\ultralytics\segm
[Impact Subpack] ultralytics_bbox: G:\ai\ComfyUI\models\ultralytics\bbox, g:\ai\models\ultralytics\bbox
[Impact Subpack] ultralytics_segm: G:\ai\ComfyUI\models\ultralytics\segm, g:\ai\models\ultralytics\segm
### Loading: ComfyUI-Inspire-Pack (V1.21)
Found LoRA roots:
- G:/ai/ComfyUI/models/loras
- g:/ai/models/loras
Added path mapping: G:/ai/models/loras -> g:/ai/models/loras
Found checkpoint roots:
- G:/ai/ComfyUI/models/checkpoints
- g:/ai/models/checkpoints
- G:/ai/ComfyUI/models/diffusion_models
- G:/ai/ComfyUI/models/unet
- g:/ai/models/diffusion_models
Added path mapping: G:/ai/models/checkpoints -> g:/ai/models/checkpoints
Added path mapping: G:/ai/models/diffusion_models -> g:/ai/models/diffusion_models
Saved folder paths to settings.json
Error installing metadata hooks: module 'execution' has no attribute '_map_node_over_list'
ComfyUI Metadata Collector initialized
Example images path: None
Added static route /loras_static/root1/preview -> G:/ai/ComfyUI/models/loras
Added static route /loras_static/root2/preview -> G:/ai/models/loras
Added static route /checkpoints_static/root1/preview -> G:/ai/ComfyUI/models/checkpoints
Added static route /checkpoints_static/root2/preview -> G:/ai/models/checkpoints
Added static route /checkpoints_static/root3/preview -> G:/ai/ComfyUI/models/diffusion_models
Added static route /checkpoints_static/root4/preview -> G:/ai/ComfyUI/models/unet
Added static route /checkpoints_static/root5/preview -> G:/ai/models/diffusion_models
### Loading: ComfyUI-Manager (V3.34.1)
[ComfyUI-Manager] network_mode: public
### ComfyUI Revision: 3678 [9a470e07] *DETACHED | Released on '2025-07-21'
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/alter-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/model-list.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/github-stats.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/extension-node-map.json
[ComfyUI-Manager] default cache updated: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json
[G:\ai\ComfyUI\custom_nodes\comfyui_controlnet_aux] | INFO -> Using ckpts path: G:\ai\ComfyUI\custom_nodes\comfyui_controlnet_aux\ckpts
[G:\ai\ComfyUI\custom_nodes\comfyui_controlnet_aux] | INFO -> Using symlinks: False
[G:\ai\ComfyUI\custom_nodes\comfyui_controlnet_aux] | INFO -> Using ort providers: ['CUDAExecutionProvider', 'DirectMLExecutionProvider', 'OpenVINOExecutionProvider', 'ROCMExecutionProvider', 'CPUExecutionProvider', 'CoreMLExecutionProvider']
DWPose: Onnxruntime with acceleration providers detected
============================================================
ComfyUI LLM SDXL Adapter v1.2.2 - Loaded Successfully
============================================================
Available Nodes: 4
Main Workflow: LLMModelLoader -> LLMTextEncoder -> LLMAdapterLoader -> ApplyLLMToSDXLAdapter -> KSampler
Supports: Gemma, Llama, Mistral, and other compatible LLMs
Quick Start: Use modular nodes for flexible workflows
============================================================
Using pytorch attention
(RES4LYF) Init
(RES4LYF) Importing beta samplers.
(RES4LYF) Importing legacy samplers.
[rgthree-comfy] Loaded 47 epic nodes. 🎉
Import times for custom nodes:
0.0 seconds: G:\ai\ComfyUI\custom_nodes\websocket_image_save.py
0.0 seconds: G:\ai\ComfyUI\custom_nodes\comfyui_lora_tag_loader
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Image-Inpainting
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-TiledDiffusion
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUi-RescaleCFGAdvanced
0.0 seconds: G:\ai\ComfyUI\custom_nodes\srl-nodes
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-post-processing-nodes
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-ELLA
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI_IPAdapter_plus
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-GGUF
0.0 seconds: G:\ai\ComfyUI\custom_nodes\cg-use-everywhere
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI_essentials
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-NAG
0.0 seconds: G:\ai\ComfyUI\custom_nodes\llm_sdxl_adapter
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Florence2
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-KJNodes
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Frame-Interpolation
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Advanced-ControlNet
0.0 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-AnimateDiff-Evolved
0.1 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Inspire-Pack
0.1 seconds: G:\ai\ComfyUI\custom_nodes\comfyui_davcha
0.1 seconds: G:\ai\ComfyUI\custom_nodes\comfyui_controlnet_aux
0.1 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-FlowChain
0.1 seconds: G:\ai\ComfyUI\custom_nodes\rgthree-comfy
0.1 seconds: G:\ai\ComfyUI\custom_nodes\comfyui-impact-subpack
0.2 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Impact-Pack
0.3 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Detail-Daemon
0.4 seconds: G:\ai\ComfyUI\custom_nodes\comfyui_facetools
0.4 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-VideoHelperSuite
0.4 seconds: G:\ai\ComfyUI\custom_nodes\comfyui-lora-manager
0.5 seconds: G:\ai\ComfyUI\custom_nodes\RES4LYF
0.6 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Crystools
0.7 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Manager
1.2 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-WanVideoWrapper
2.8 seconds: G:\ai\ComfyUI\custom_nodes\ComfyUI-Easy-Use
Context impl SQLiteImpl.
Will assume non-transactional DDL.
No target revision found.
Loaded usage statistics from G:/ai/ComfyUI/models/loras\lora_manager_stats.json
Usage statistics tracker initialized
Error installing metadata hooks: module 'execution' has no attribute '_map_node_over_list'
ComfyUI Metadata Collector initialized
LoRA Manager: All services initialized and background tasks scheduled
Starting server
Cache files disabled for lora, skipping load
Cache files disabled for checkpoint, skipping load
To see the GUI go to: http://127.0.0.1:8188
Recipe cache initialized in 0.00 seconds. Found 0 recipes
Checkpoint cache initialized in 0.34 seconds. Found 46 models
FETCH ComfyRegistry Data: 5/92
FETCH ComfyRegistry Data: 10/92
FETCH ComfyRegistry Data: 15/92
Lora cache initialized in 8.45 seconds. Found 1369 models
FETCH ComfyRegistry Data: 20/92
Feature flags negotiated for client 870785e2a8224963939efda3d32f071c: {'supports_preview_metadata': True}
FETCH ComfyRegistry Data: 25/92
FETCH ComfyRegistry Data: 30/92
FETCH ComfyRegistry Data: 35/92
FETCH ComfyRegistry Data: 40/92
FETCH ComfyRegistry Data: 45/92
FETCH ComfyRegistry Data: 50/92
FETCH ComfyRegistry Data: 55/92
FETCH ComfyRegistry Data: 60/92
FETCH ComfyRegistry Data: 65/92
FETCH ComfyRegistry Data: 70/92
FETCH ComfyRegistry Data: 75/92
FETCH ComfyRegistry Data: 80/92
FETCH ComfyRegistry Data: 85/92
FETCH ComfyRegistry Data: 90/92
FETCH ComfyRegistry Data [DONE]
[ComfyUI-Manager] default cache updated: https://api.comfy.org/nodes
FETCH DATA from: https://raw.githubusercontent.com/ltdrdata/ComfyUI-Manager/main/custom-node-list.json [DONE]
[ComfyUI-Manager] All startup tasks have been completed.
```
### Browser Logs
No errors in the browser logs, only this kind of messages:
```
Empty components: policy ignored
use_everywhere_utilities.js:82 added widget_ue_connectable
use_everywhere_utilities.js:254 node_in_loop made 1 checks
use_everywhere_utilities.js:82 added widget_ue_connectable
use_everywhere_utilities.js:82 added widget_ue_connectable
use_everywhere_utilities.js:82 added widget_ue_connectable
```
### Setting JSON
```
{
"Comfy.Locale": "en",
"Comfy.CustomColorPalettes": {
"obsidian": {
"version": 112,
"id": "obsidian",
"name": "Obsidian",
"colors": {
"node_slot": {
"CLIP": "#FFD500",
"CLIP_VISION": "#A8DADC",
"CLIP_VISION_OUTPUT": "#ad7452",
"CONDITIONING": "#FFA931",
"CONTROL_NET": "#6EE7B7",
"IMAGE": "#64B5F6",
"LATENT": "#FF9CF9",
"MASK": "#81C784",
"MODEL": "#B39DDB",
"STYLE_MODEL": "#C2FFAE",
"VAE": "#FF6E6E",
"TAESD": "#DCC274",
"PIPE_LINE": "#7737AA",
"PIPE_LINE_SDXL": "#7737AA",
"INT": "#29699C",
"X_Y": "#38291f",
"XYPLOT": "#74DA5D",
"LORA_STACK": "#94dccd",
"CONTROL_NET_STACK": "#94dccd",
"FAST_MODEL_LOADER": "#ffd399",
"SAMPLING": "#60a5fa"
},
"litegraph_base": {
"BACKGROUND_IMAGE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII=",
"CLEAR_BACKGROUND_COLOR": "#222222",
"NODE_TITLE_COLOR": "#d4d4d8",
"NODE_SELECTED_TITLE_COLOR": "#ffffff",
"NODE_TEXT_SIZE": 14,
"NODE_TEXT_COLOR": "#ffffff",
"NODE_SUBTEXT_SIZE": 12,
"NODE_DEFAULT_COLOR": "#09090b",
"NODE_DEFAULT_BGCOLOR": "rgba(24,24,27,.9)",
"NODE_DEFAULT_BOXCOLOR": "rgba(255,255,255,.75)",
"NODE_DEFAULT_SHAPE": 2,
"NODE_BOX_OUTLINE_COLOR": "#60a5fa",
"NODE_BYPASS_BGCOLOR": "#FF00FF",
"NODE_ERROR_COLOUR": "#E00",
"DEFAULT_SHADOW_COLOR": "rgba(0,0,0,0)",
"DEFAULT_GROUP_FONT": 24,
"WIDGET_BGCOLOR": "#242427",
"WIDGET_OUTLINE_COLOR": "#3f3f46",
"WIDGET_TEXT_COLOR": "#d4d4d8",
"WIDGET_SECONDARY_TEXT_COLOR": "#d4d4d8",
"LINK_COLOR": "#9A9",
"EVENT_LINK_COLOR": "#A86",
"CONNECTING_LINK_COLOR": "#AFA"
},
"comfy_base": {
"fg-color": "#fff",
"bg-color": "#09090b",
"comfy-menu-bg": "rgba(24,24,24,.9)",
"comfy-input-bg": "#262626",
"input-text": "#ddd",
"descrip-text": "#999",
"drag-text": "#ccc",
"error-text": "#ff4444",
"border-color": "#29292c",
"tr-even-bg-color": "rgba(28,28,28,.9)",
"tr-odd-bg-color": "rgba(19,19,19,.9)"
}
}
},
"obsidian_dark": {
"version": 112,
"id": "obsidian_dark",
"name": "Obsidian Dark",
"colors": {
"node_slot": {
"CLIP": "#FFD500",
"CLIP_VISION": "#A8DADC",
"CLIP_VISION_OUTPUT": "#ad7452",
"CONDITIONING": "#FFA931",
"CONTROL_NET": "#6EE7B7",
"IMAGE": "#64B5F6",
"LATENT": "#FF9CF9",
"MASK": "#81C784",
"MODEL": "#B39DDB",
"STYLE_MODEL": "#C2FFAE",
"VAE": "#FF6E6E",
"TAESD": "#DCC274",
"PIPE_LINE": "#7737AA",
"PIPE_LINE_SDXL": "#7737AA",
"INT": "#29699C",
"X_Y": "#38291f",
"XYPLOT": "#74DA5D",
"LORA_STACK": "#94dccd",
"CONTROL_NET_STACK": "#94dccd",
"FAST_MODEL_LOADER": "#ffd399",
"SAMPLING": "#60a5fa"
},
"litegraph_base": {
"BACKGROUND_IMAGE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGlmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDEgNzkuMTQ2Mjg5OSwgMjAyMy8wNi8yNS0yMDowMTo1NSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI1LjEgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMy0xMS0xM1QwMDoxODowMiswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjMtMTEtMTVUMDI6MDQ6NTkrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjMtMTEtMTVUMDI6MDQ6NTkrMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOmIyYzRhNjA5LWJmYTctYTg0MC1iOGFlLTk3MzE2ZjM1ZGIyNyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjk0ZmNlZGU4LTE1MTctZmQ0MC04ZGU3LWYzOTgxM2E3ODk5ZiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIzMWIxMGIwLWI0ZmItMDI0ZS1iMTJlLTMwNTMwM2NkMDdjOCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjMxYjEwYjAtYjRmYi0wMjRlLWIxMmUtMzA1MzAzY2QwN2M4IiBzdEV2dDp3aGVuPSIyMDIzLTExLTEzVDAwOjE4OjAyKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjUuMSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ4OWY1NzlmLTJkNjUtZWQ0Zi04OTg0LTA4NGE2MGE1ZTMzNSIgc3RFdnQ6d2hlbj0iMjAyMy0xMS0xNVQwMjowNDo1OSswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDI1LjEgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiMmM0YTYwOS1iZmE3LWE4NDAtYjhhZS05NzMxNmYzNWRiMjciIHN0RXZ0OndoZW49IjIwMjMtMTEtMTVUMDI6MDQ6NTkrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNS4xIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4OTe6GAAAAx0lEQVR42u3WMQoAIQxFwRzJys77X8vSLiRgITif7bYbgrwYc/mKXyBoY4VVBgsWLFiwYFmOlTv+9jfDOjHmr8u6eVkGCxYsWLBgmc5S8ApewXvgYRksWLBgKXidpeBdloL3wMOCBctgwVLwCl7BuyyDBQsWLFiwTGcpeAWv4D3wsAwWLFiwFLzOUvAuS8F74GHBgmWwYCl4Ba/gXZbBggULFixYprMUvIJX8B54WAYLFixYCl5nKXiXpeA98LBgwTJYsGC9tg1o8f4TTtqzNQAAAABJRU5ErkJggg==",
"CLEAR_BACKGROUND_COLOR": "#09090b",
"NODE_TITLE_COLOR": "#d4d4d8",
"NODE_SELECTED_TITLE_COLOR": "#ffffff",
"NODE_TEXT_SIZE": 14,
"NODE_TEXT_COLOR": "#ffffff",
"NODE_SUBTEXT_SIZE": 12,
"NODE_DEFAULT_COLOR": "#09090b",
"NODE_DEFAULT_BGCOLOR": "rgba(24,24,27,.9)",
"NODE_DEFAULT_BOXCOLOR": "rgba(255,255,255,.75)",
"NODE_DEFAULT_SHAPE": 2,
"NODE_BOX_OUTLINE_COLOR": "#60a5fa",
"NODE_BYPASS_BGCOLOR": "#FF00FF",
"NODE_ERROR_COLOUR": "#E00",
"DEFAULT_SHADOW_COLOR": "rgba(0,0,0,0)",
"DEFAULT_GROUP_FONT": 24,
"WIDGET_BGCOLOR": "#242427",
"WIDGET_OUTLINE_COLOR": "#3f3f46",
"WIDGET_TEXT_COLOR": "#d4d4d8",
"WIDGET_SECONDARY_TEXT_COLOR": "#d4d4d8",
"LINK_COLOR": "#9A9",
"EVENT_LINK_COLOR": "#A86",
"CONNECTING_LINK_COLOR": "#AFA"
},
"comfy_base": {
"fg-color": "#fff",
"bg-color": "#09090b",
"comfy-menu-bg": "rgba(24,24,24,.9)",
"comfy-input-bg": "#262626",
"input-text": "#ddd",
"descrip-text": "#999",
"drag-text": "#ccc",
"error-text": "#ff4444",
"border-color": "#29292c",
"tr-even-bg-color": "rgba(28,28,28,.9)",
"tr-odd-bg-color": "rgba(19,19,19,.9)"
}
}
},
"milk_white": {
"id": "milk_white",
"name": "Milk White",
"colors": {
"node_slot": {
"CLIP": "#FFA726",
"CLIP_VISION": "#5C6BC0",
"CLIP_VISION_OUTPUT": "#8D6E63",
"CONDITIONING": "#EF5350",
"CONTROL_NET": "#66BB6A",
"IMAGE": "#42A5F5",
"LATENT": "#AB47BC",
"MASK": "#9CCC65",
"MODEL": "#7E57C2",
"STYLE_MODEL": "#D4E157",
"VAE": "#FF7043",
"PIPE_LINE": "#7737AA",
"PIPE_LINE_SDXL": "#7737AA",
"INT": "#29699C",
"X_Y": "#38291f",
"XYPLOT": "#74DA5D",
"LORA_STACK": "#94dccd",
"CONTROL_NET_STACK": "#94dccd",
"FAST_MODEL_LOADER": "#ffd399",
"SAMPLING": "#60a5fa"
},
"litegraph_base": {
"BACKGROUND_IMAGE": "data:image/gif;base64,R0lGODlhZABkALMAAAAAAP///+vr6+rq6ujo6Ofn5+bm5uXl5d3d3f///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAABkAGQAAAT/UMhJq7046827HkcoHkYxjgZhnGG6si5LqnIM0/fL4qwwIMAg0CAsEovBIxKhRDaNy2GUOX0KfVFrssrNdpdaqTeKBX+dZ+jYvEaTf+y4W66mC8PUdrE879f9d2mBeoNLfH+IhYBbhIx2jkiHiomQlGKPl4uZe3CaeZifnnijgkESBqipqqusra6vsLGys62SlZO4t7qbuby7CLa+wqGWxL3Gv3jByMOkjc2lw8vOoNSi0czAncXW3Njdx9Pf48/Z4Kbbx+fQ5evZ4u3k1fKR6cn03vHlp7T9/v8A/8Gbp4+gwXoFryXMB2qgwoMMHyKEqA5fxX322FG8tzBcRnMW/zlulPbRncmQGidKjMjyYsOSKEF2FBlJQMCbOHP6c9iSZs+UnGYCdbnSo1CZI5F64kn0p1KnTH02nSoV3dGTV7FFHVqVq1dtWcMmVQZTbNGu72zqXMuW7danVL+6e4t1bEy6MeueBYLXrNO5Ze36jQtWsOG97wIj1vt3St/DjTEORss4nNq2mDP3e7w4r1bFkSET5hy6s2TRlD2/mSxXtSHQhCunXo26NevCpmvD/UU6tuullzULH76q92zdZG/Ltv1a+W+osI/nRmyc+fRi1Xdbh+68+0vv10dH3+77KD/i6IdnX669/frn5Zsjh4/2PXju8+8bzc9/6fj27LFnX11/+IUnXWl7BJfegm79FyB9JOl3oHgSklefgxAC+FmFGpqHIYcCfkhgfCohSKKJVo044YUMttggiBkmp6KFXw1oII24oYhjiDByaKOOHcp3Y5BD/njikSkO+eBREQAAOw==",
"CLEAR_BACKGROUND_COLOR": "lightgray",
"NODE_TITLE_COLOR": "#222",
"NODE_SELECTED_TITLE_COLOR": "#000",
"NODE_TEXT_SIZE": 14,
"NODE_TEXT_COLOR": "#444",
"NODE_SUBTEXT_SIZE": 12,
"NODE_DEFAULT_COLOR": "#F7F7F7",
"NODE_DEFAULT_BGCOLOR": "#F5F5F5",
"NODE_DEFAULT_BOXCOLOR": "#555",
"NODE_DEFAULT_SHAPE": 2,
"NODE_BOX_OUTLINE_COLOR": "#000",
"DEFAULT_SHADOW_COLOR": "rgba(0,0,0,0.1)",
"DEFAULT_GROUP_FONT": 24,
"WIDGET_BGCOLOR": "#D4D4D4",
"WIDGET_OUTLINE_COLOR": "#999",
"WIDGET_TEXT_COLOR": "#222",
"WIDGET_SECONDARY_TEXT_COLOR": "#555",
"LINK_COLOR": "#9A9",
"EVENT_LINK_COLOR": "#FF9800",
"CONNECTING_LINK_COLOR": "#222"
},
"comfy_base": {
"fg-color": "#222",
"bg-color": "#DDD",
"comfy-menu-bg": "#F5F5F5",
"comfy-input-bg": "#C9C9C9",
"input-text": "#222",
"descrip-text": "#444",
"drag-text": "#555",
"error-text": "#F44336",
"border-color": "#bbb",
"tr-even-bg-color": "#f9f9f9",
"tr-odd-bg-color": "#fff",
"content-bg": "#e0e0e0",
"content-fg": "#222",
"content-hover-bg": "#adadad",
"content-hover-fg": "#222"
}
}
},
"mydark": {
"id": "mydark",
"name": "myDark (Default)",
"colors": {
"node_slot": {
"CLIP": "#FFD500",
"CLIP_VISION": "#A8DADC",
"CLIP_VISION_OUTPUT": "#ad7452",
"CONDITIONING": "#FFA931",
"CONTROL_NET": "#6EE7B7",
"IMAGE": "#64B5F6",
"LATENT": "#FF9CF9",
"MASK": "#81C784",
"MODEL": "#B39DDB",
"STYLE_MODEL": "#C2FFAE",
"VAE": "#FF6E6E",
"NOISE": "#B0B0B0",
"GUIDER": "#66FFFF",
"SAMPLER": "#ECB4B4",
"SIGMAS": "#CDFFCD",
"TAESD": "#DCC274"
},
"litegraph_base": {
"BACKGROUND_IMAGE": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII=",
"CLEAR_BACKGROUND_COLOR": "#222",
"NODE_TITLE_COLOR": "#999",
"NODE_SELECTED_TITLE_COLOR": "#FFF",
"NODE_TEXT_SIZE": 14,
"NODE_TEXT_COLOR": "#AAA",
"NODE_TEXT_HIGHLIGHT_COLOR": "#FFF",
"NODE_SUBTEXT_SIZE": 12,
"NODE_DEFAULT_COLOR": "#333",
"NODE_DEFAULT_BGCOLOR": "#353535",
"NODE_DEFAULT_BOXCOLOR": "#666",
"NODE_DEFAULT_SHAPE": 1,
"NODE_BOX_OUTLINE_COLOR": "#FFF",
"NODE_BYPASS_BGCOLOR": "#FF00FF",
"NODE_ERROR_COLOUR": "#E00",
"DEFAULT_SHADOW_COLOR": "transparent",
"DEFAULT_GROUP_FONT": 24,
"WIDGET_BGCOLOR": "#222",
"WIDGET_OUTLINE_COLOR": "#666",
"WIDGET_TEXT_COLOR": "#DDD",
"WIDGET_SECONDARY_TEXT_COLOR": "#999",
"WIDGET_DISABLED_TEXT_COLOR": "#666",
"LINK_COLOR": "#9A9",
"EVENT_LINK_COLOR": "#A86",
"CONNECTING_LINK_COLOR": "#AFA",
"BADGE_FG_COLOR": "#FFF",
"BADGE_BG_COLOR": "#0F1F0F"
},
"comfy_base": {
"fg-color": "#fff",
"bg-color": "#202020",
"comfy-menu-bg": "#353535",
"comfy-menu-secondary-bg": "#303030",
"comfy-input-bg": "#222",
"input-text": "#ddd",
"descrip-text": "#999",
"drag-text": "#ccc",
"error-text": "#ff4444",
"border-color": "#4e4e4e",
"tr-even-bg-color": "#222",
"tr-odd-bg-color": "#353535",
"content-bg": "#4e4e4e",
"content-fg": "#fff",
"content-hover-bg": "#222",
"content-hover-fg": "#fff",
"bar-shadow": "rgba(16, 16, 16, 0.5) 0 0 0.5rem"
}
}
}
},
"Comfy.Validation.Workflows": true,
"Comfy.NodeBadge.NodeIdBadgeMode": "Show all",
"Comfy.WidgetControlMode": "before",
"Comfy.Canvas.SelectionToolbox": false,
"Comfy.SnapToGrid.GridSize": 5,
"pysssss.SnapToGrid": true,
"Comfy.ColorPalette": "mydark",
"Comfy.Sidebar.Size": "small",
"Comfy.Sidebar.Location": "right",
"Comfy.Sidebar.UnifiedWidth": true,
"Comfy.Workflow.WorkflowTabsPosition": "Sidebar",
"Comfy.Release.Version": "0.3.45",
"Comfy.Release.Status": "what's new seen",
"Comfy.Release.Timestamp": 1753355829993,
"Comfy.Graph.CanvasMenu": false,
"Comfy.Keybinding.NewBindings": [
{
"commandId": "Comfy.Canvas.ResetView",
"combo": {
"key": "v",
"ctrl": false,
"alt": false,
"shift": false
}
}
],
"Comfy.Keybinding.UnsetBindings": [],
"Comfy.DOMClippingEnabled": false,
"Comfy.EnableTooltips": false,
"VHS.MetadataImage": false,
"VHS.LatentPreview": true,
"AutocompletePlus.max_suggestions": 50,
"AutocompletePlus.use_fast_search": true,
"default_values_extension": false,
"jupo.ExTagComplete.insertSpace": false,
"jupo.ExTagComplete.insertOnEnter": false,
"jupo.ExTagComplete.suggestionCount": 50,
"jupo.ExTagComplete.wikiLink": true,
"jupo.ExTagComplete.enableEmbeddings": true,
"jupo.ExTagComplete.enableLoras": true,
"jupo.ExTagComplete.separator": "",
"jupo.ExTagComplete.replaceUnderbar": false,
"Comfy.EditAttention.Delta": 0.1,
"Comfy.MaskEditor.UseNewEditor": true,
"Comfy.DevMode": true
}
```
### What browsers do you use to access the UI ?
_No response_
### Other Information
_No response_
┆Issue is synchronized with this [Notion page](https://www.notion.so/Issue-4522-Bug-Cloning-a-Subgraph-node-creates-a-new-full-copy-of-the-subgraph-until-you-save-23a6d73d36508112ae8cdea72eb3a974) by [Unito](https://www.unito.io)
Contributor guide
Assessment
This issue has not been assessed yet.