Read output names from info.outputs (serialized node data) instead of
hidden widget values, which ComfyUI may not persist across reloads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Defer removal of the 32 default Python outputs from onNodeCreated using
queueMicrotask so they remain available during graph loading. ComfyUI
creates all nodes before configuring them, and nodes like Kijai's SetNode
resolve links during their configure step — if outputs were already
removed, the resolution failed with "node input undefined". The deferred
cleanup only runs for new nodes; loaded workflows set _configured=true
in onConfigure first. Also adds a fallback to sync widget values from
serialized outputs when widget restoration fails.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the file at json_path didn't exist, clicking Refresh Outputs
returned empty keys causing all outputs and links to be removed.
Now the API returns an error flag and the frontend bails out early,
preserving existing outputs.
Bump version to 1.2.1.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Previews an image (like PreviewImage) and saves a copy to input/ so a
LoadImage node can reference it. JS extension adds a target-node-ID
widget and "Send to Load Image" button that updates the target's combo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Auto-discovers JSON keys and exposes them as typed output slots.
Includes JS frontend for refresh, connection-safe updates, and
workflow persistence of keys and types.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>