Comfy-Org / Comfy-Org/ComfyUI_frontend

Allow converting compatible node inputs into widgets

Open
#14,087 0 comments 0 reactions 0 assignees View on GitHub
area:widgets enhancement
Dominant language
TypeScript
Stars
2k
Forks
699
Avg merge
1d 7h
Merged PRs (30d)
490

Description

### What problem are you experiencing?

### What would your feature do?

Add a **"Convert input to widget"** option for compatible node inputs, allowing certain inputs to be replaced by the corresponding selector/widget directly inside the node.

A good example is the **Apply ControlNet** node.

Currently, `Apply ControlNet` requires a separate **Load ControlNet Model** node connected to its `control_net` input, even when that loader is only used by a single node.

It would be much more convenient if the `control_net` input could be converted into a widget, providing the same ControlNet model selector directly inside **Apply ControlNet**.

Image

### When does this problem occur?

- Whenever the Apply ControlNet node is needed

### How often do you encounter this problem?

Daily

### How much does this problem affect your workflow?

Minor annoyance

### Current workarounds

Using unreliable third-party plugins,

### Ideas for solutions (Optional)

Right-click the `control_net` input on **Apply ControlNet** → **Convert input to widget**

The input would then become something like:

`control_net: [model.safetensors ▼]`

This would allow a common two-node setup:

`Load ControlNet Model → Apply ControlNet`

to be simplified into a single **Apply ControlNet** node when a separate loader is not needed.

Ideally, the widget could also be converted back into an input at any time.

This would not replace or deprecate **Load ControlNet Model**. Separate loaders would still be useful when sharing the same loaded model between multiple nodes or for more advanced workflows.

### Additional context

While ControlNet is a particularly useful example, a generic **"Convert input to widget"** mechanism could potentially simplify many other loader-backed inputs throughout ComfyUI as well.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how Apply ControlNet inputs and widgets are represented and handled in the frontend, then compare the existing loader-backed input behavior. The work is done when a compatible input can be converted into the corresponding widget, restored to an input, and the Apply ControlNet workflow continues to behave correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.