Summary
2.1.0 focused on exporter correctness, installation/frontend compatibility, and generated-script runtime lifecycle behavior.
Highlights
Exporter correctness
- Fixed string-seed randomization in generated code.
- Added focused regression coverage for generator edge cases, including:
- string seed nodes
- Windows-style path strings
- trailing backslashes in strings
- unsafe rgthree kwargs
- subgraph/upscaler identifier handling
- Added new fixture coverage so these cases stay locked down.
Compatibility and installation
- Declared official Python support as
3.12+. - Removed the hidden import-time
pipbootstrap behavior and replaced it with explicituv syncguidance. - Updated the Web UI save flow to avoid
prompt(), improving compatibility with ComfyUI Desktop. - Standardized the default downloaded script filename to
workflow_api.py. - Added contract tests covering supported Python metadata and frontend save defaults.
Generated runtime behavior
- Generated scripts now perform best-effort ComfyUI cleanup after workflow execution.
- Exported
main()now runs cleanup in afinallyblock. - Added opt-in aggressive unload support for embedded/repeated-call use cases:
main(unload_models=True)COMFYUI_TOPYTHON_UNLOAD_MODELS=1
- Documented supported ComfyUI runtime / VRAM-related flags for generated scripts.
- Guarded cleanup hooks so teardown errors do not override the real workflow failure.
User-visible changes
- Better behavior when exporting workflows that contain tricky string values or previously fragile node shapes.
- Clearer environment expectations: Python
3.12+anduvare now the supported setup path. - Better Desktop compatibility for
File -> Save As Script. - Generated scripts now clean up ComfyUI runtime state more safely after execution, while still allowing model reuse by
default.
What's Changed
- Make generator codegen regressions explicit and fix string seed rand by @pydn in #151
- Clarify Python support and harden export/install compatibility by @pydn in #152
- Add generated runtime cleanup after workflow execution by @pydn in #153
Full Changelog: v2.0.0...v2.1.0