Workflow Migration Tool
Rescue your saved workflows after an Eclipse update
- logs
Every ComfyUI power user has the same scar: you update a custom node pack, restart, load your favorite workflow, and half the nodes are suddenly "missing" because their type IDs changed. Eclipse hit this hard with version 4.0.0, which stripped out all legacy/deprecated nodes - including the whole RvTools_v2 family. This node is the author's answer to the mass breakage: point it at your workflow files and it rewrites the old node IDs to the new ones, with backups.
What it does
It scans a workflow .json file (or an entire folder of them, recursively) and applies a search-and-replace across legacy Eclipse node type IDs, mapping them to the unified v4.0.0 IDs. The mapping files - tools/migration_eclipse.txt, tools/migration_rvtoolsv1.txt, tools/migration_rvtoolsv2.txt - ship with the pack and define which old ID becomes which new one. The mapping_file input even accepts multiple comma-separated files, so you can layer your own custom mappings on top of the shipped ones.
The two safety switches are the heart of it:
run_migration- off (default) is a dry run: it reads your files, reports what legacy nodes it found and how many replacements it would make, and writes nothing. On, it actually applies the changes.create_backup- on by default, so every modified file gets a<filename>.json.bakcopy before being touched.
Output is a single logs string - a full report of files checked, skipped, replaced, and backed up. Wire it into Show Text [Eclipse] to read it on the canvas.
Why you'll need it
If you've never touched Eclipse, you might not need this node at all - it only matters when upgrading old workflows. But the situation is common enough that the pack README makes it a headline warning: workflows created with RvTools_v2 are not compatible with the new version, and if your saved workflows fail to load due to "version tag removals," you're supposed to migrate them. The in-canvas node is the friendly way; there's also a command-line twin if you prefer scripts:
python custom_nodes/ComfyUI_Eclipse/tools/migrate_workflow.py /path/to/workflow.json
Best practice
Dry run first, always. Point it at a single workflow, leave run_migration off, read the log, and confirm the replacements look right before flipping it on. Keep backups on for at least your first few migrations - the .bak files cost nothing and save you from a bad mapping. ComfyUI's own saved-workflow location to feed it is typically ComfyUI/user/default/workflows/, though any exported .json works. And migrate copies of files, not the only copy of your precious workflow, until you trust the output.
Install it
Ships in ComfyUI_Eclipse. ComfyUI Manager → search "Eclipse" → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse
Under Eclipse → Tools. Standard pack deps (opencv-python, pilgram, PyYAML, aiohttp; portable installs may need pip install -r custom_nodes/ComfyUI_Eclipse/requirements.txt).
Gotchas
It rewrites node type IDs in the JSON - it doesn't guarantee the new nodes behave identically to the old ones, so validate a migrated workflow by running it before trusting it. Also, it only knows the mappings in its files: nodes it doesn't recognize are reported and skipped, not silently mangled, which is the good kind of behavior. And a path that doesn't exist isn't an error you can miss - the log will tell you zero files found. If that happens, double-check the absolute path; the node wants an absolute path, not a relative one.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| path | STRING | Absolute path to a single .json workflow file or a folder containing workflows | |
| mapping_file | STRING | tools/migration_eclipse.txt, tools/migration_rvtoolsv1.txt, tools/migration_rvtoolsv2.txt | Filename or path (absolute or relative to repo root) to a custom migration mappings text file (comma-separated for multiple files) |
| run_migration | BOOLEAN | false | If disabled, only simulates changes (dry run). If enabled, writes updates and creates backups. |
| create_backup | BOOLEAN | true | Create a <filename>.json.bak backup before modifying any file. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| logs | STRING | — |