Comfy-Org / Comfy-Org/ComfyUI_frontend

Node replacement ignores DynamicCombo child mappings with dot notation

Open
#11,185 2 comments 0 reactions 0 assignees View on GitHub
Potential Bug Public API
Dominant language
TypeScript
Stars
2k
Forks
699
Avg merge
1d 7h
Merged PRs (30d)
490

Description

### Prerequisites

- [x] I am running the latest version of ComfyUI
- [x] I have custom nodes enabled

### What happened?

When replacing a missing node using NodeReplace, mappings that target DynamicCombo child fields (dot notation) are not applied.

Example mappings like:
- {"new_id": "operation.operand_a", "old_id": "mode_settings.value_a"}
- {"new_id": "operation.operand_b", "old_id": "mode_settings.value_b"}
do not transfer values, even though the replacement is otherwise executed (node is replaced, non-nested mappings may work, outputs may remap).

This appears inconsistent with docs/core examples that use dot notation for complex inputs (e.g. resize_type.multiplier).
Mapping between two nodes with DynamicCombo that has different child widget count also seem to not work as expected.

### Steps to Reproduce

**1. Create an old node with a mode widget + numeric widgets (or old DynamicCombo fields), e.g.:**

- mode_settings
- mode_settings.value_a
- mode_settings.value_b

**2. Create a new node using io.DynamicCombo.Input("operation", ...) with child fields:**

- operation.operand_a
- operation.operand_b

**3. Register a replacement with dot-notation child mappings, e.g.:**

- operation <- mode_settings
- operation.operand_a <- mode_settings.value_a
- operation.operand_b <- mode_settings.value_b

**4. Load a workflow containing the old node as missing, then click Replace.**

**5. Observe the replaced node:**

- parent mode may transfer
- child fields (operand_a, operand_b) remain defaults instead of transferred values.

### How is this affecting you?

Feature doesn't work as expected

### ComfyUI Frontend Version

1.42.10

### Browser

Chrome/Chromium

### Console Errors

```javascript

```

### Logs

```shell

```

### Additional Context

_No response_

┆Issue is synchronized with this [Notion page](https://www.notion.so/Issue-11185-Node-replacement-ignores-DynamicCombo-child-mappings-with-dot-notation-3416d73d365081a591cbf17ae688a65e) by [Unito](https://www.unito.io)

Contributor guide

Open the contributing guide

Research direction

Start at the NodeReplace replacement-mapping logic and trace how DynamicCombo inputs and dot-notation child fields are handled. Reproduce the workflow with operation.operand_a/operand_b mapped from mode_settings.value_a/value_b; done means the parent and child values transfer correctly, including when the DynamicCombo child counts differ.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.