mirror of
https://git.datalinker.icu/ltdrdata/ComfyUI-Manager
synced 2025-12-09 22:24:23 +08:00
Enhances ComfyUI Manager with robust batch execution tracking and unified data model architecture: - Implemented automatic batch history serialization with before/after system state snapshots - Added comprehensive state management capturing installed nodes, models, and ComfyUI version info - Enhanced task queue with proper client ID handling and WebSocket notifications - Migrated all data models to OpenAPI-generated Pydantic models for consistency - Added documentation for new TaskQueue methods (done_count, total_count, finalize) - Fixed 64 linting errors with proper imports and code cleanup Technical improvements: - All models now auto-generated from openapi.yaml ensuring API/implementation consistency - Batch tracking captures complete system state at operation start and completion - Enhanced REST endpoints with comprehensive documentation - Removed manual model files in favor of single source of truth - Added helper methods for system state capture and batch lifecycle management
Data Models
This directory contains Pydantic models for ComfyUI Manager, providing type safety, validation, and serialization for the API and internal data structures.
Overview
generated_models.py- All models auto-generated from OpenAPI spec__init__.py- Package exports for all models
Note: All models are now auto-generated from the OpenAPI specification. Manual model files (task_queue.py, state_management.py) have been deprecated in favor of a single source of truth.
Generating Types from OpenAPI
The state management models are automatically generated from the OpenAPI specification using datamodel-codegen. This ensures type safety and consistency between the API specification and the Python code.
Prerequisites
Install the code generator:
pipx install datamodel-code-generator
Generation Command
To regenerate all models after updating the OpenAPI spec:
datamodel-codegen \
--use-subclass-enum \
--field-constraints \
--strict-types bytes \
--input openapi.yaml \
--output comfyui_manager/data_models/generated_models.py \
--output-model-type pydantic_v2.BaseModel
When to Regenerate
You should regenerate the models when:
- Adding new API endpoints that return new data structures
- Modifying existing schemas in the OpenAPI specification
- Adding new state management features that require new models
Important Notes
- Single source of truth: All models are now generated from
openapi.yaml - No manual models: All previously manual models have been migrated to the OpenAPI spec
- OpenAPI requirements: New schemas must be referenced in API paths to be generated by datamodel-codegen
- Validation: Always validate the OpenAPI spec before generation:
python3 -c "import yaml; yaml.safe_load(open('openapi.yaml'))"
Example: Adding New State Models
- Add your schema to
openapi.yamlundercomponents/schemas/ - Reference the schema in an API endpoint response
- Run the generation command above
- Update
__init__.pyto export the new models - Import and use the models in your code
Troubleshooting
- Models not generated: Ensure schemas are under
components/schemas/(notparameters/) - Missing models: Verify schemas are referenced in at least one API path
- Import errors: Check that new models are added to
__init__.pyexports