Severe regression: workflow load rewrites node values (ckpt/lora and others), sometimes resetting to 0, destroying JSON integrity
- Dominant language
- Python
- Stars
- 133k
- Forks
- 15.7k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 158
Description
### Summary
This is a severe regression that makes workflows unreliable.
When loading a workflow, node values are being silently rewritten.
This affects not only checkpoint/lora fields but also other nodes,
where values are unexpectedly reset (e.g. to 0).
Even worse, the original JSON is effectively destroyed after loading and saving.
---
### What happens
- Workflow JSON contains correct values
- Load workflow in ComfyUI
- Values are modified without user action:
- ckpt/lora replaced with different values
- some node parameters reset to 0
- Save workflow again
→ original data is permanently lost
---
### Expected behavior
- Workflow loader must preserve stored values exactly
- Missing resources should NOT trigger value replacement
- Invalid values can be marked, but never silently rewritten
---
### Actual behavior
- Values are rewritten during load
- Some nodes reset values (e.g. to 0)
- Workflow becomes non-reproducible
- JSON integrity is broken
---
### Reproduction (minimal)
1. Create a workflow with:
- CheckpointLoader / LoraLoader
- any node with numeric parameters
2. Save workflow
3. Modify JSON manually:
- set ckpt/lora to non-existent value
- set numeric fields to specific values
4. Load workflow
→ observe:
- ckpt/lora replaced
- some values reset (e.g. 0)
- after saving, original JSON is lost
---
### Impact
This completely breaks:
- workflow portability
- reproducibility
- archive reliability (PNG workflows)
- long-term project stability
This behavior makes ComfyUI workflows unsafe to use as saved artifacts.
---
### Notes
- This did NOT happen ~1 month ago
- This appears to be a regression in workflow loading / widget handling
- Not sure if this belongs to frontend or frontend/backend boundary
---
### Additional comment
This is not a minor issue.
If workflows cannot be trusted to preserve their own values,
it seriously undermines the usability of the entire project.
At this point, it feels like core functionality is breaking faster than it is being stabilized.
Contributor guide
Assessment
This issue has not been assessed yet.