bymyself c8882dcb7c [feat] Implement comprehensive batch tracking and OpenAPI-driven data models
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
2025-06-13 19:36:55 -07:00
..

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:

  1. Adding new API endpoints that return new data structures
  2. Modifying existing schemas in the OpenAPI specification
  3. 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

  1. Add your schema to openapi.yaml under components/schemas/
  2. Reference the schema in an API endpoint response
  3. Run the generation command above
  4. Update __init__.py to export the new models
  5. Import and use the models in your code

Troubleshooting

  • Models not generated: Ensure schemas are under components/schemas/ (not parameters/)
  • Missing models: Verify schemas are referenced in at least one API path
  • Import errors: Check that new models are added to __init__.py exports