Files
Limitex-ComfyUI-Diffusers/src/di/di.py
T
2025-11-05 22:06:01 +09:00

81 lines
2.3 KiB
Python

"""Dependency injection container configuration."""
from dependency_injector import containers, providers
from ..infra.diffusers import (
DiffusersAutoencoderRepository,
DiffusersPipelineRepository,
DiffusersSamplingRepository,
DiffusersSchedulerRepository,
DiffusersTextEncoderRepository,
)
from ..service import (
AutoencoderService,
ClipTextEncodeService,
PipelineService,
SamplingService,
SchedulerService,
)
from ..ui import (
AutoencoderHandler,
ClipTextEncodeHandler,
PipelineHandler,
SamplerHandler,
SchedulerHandler,
)
class Container(containers.DeclarativeContainer):
"""Dependency injection container for the application."""
# 1. Repositories
pipeline_repository = providers.Factory(DiffusersPipelineRepository)
autoencoder_repository = providers.Factory(DiffusersAutoencoderRepository)
text_encoder_repository = providers.Factory(DiffusersTextEncoderRepository)
sampling_repository = providers.Factory(DiffusersSamplingRepository)
scheduler_repository = providers.Factory(DiffusersSchedulerRepository)
# 2. Services
pipeline_service = providers.Factory(
PipelineService,
pipeline_repo=pipeline_repository,
)
autoencoder_service = providers.Factory(
AutoencoderService,
autoencoder_repo=autoencoder_repository,
)
clip_text_encode_service = providers.Factory(
ClipTextEncodeService,
text_encoder_repo=text_encoder_repository,
)
sampling_service = providers.Factory(
SamplingService,
sampling_repo=sampling_repository,
)
scheduler_service = providers.Factory(
SchedulerService,
scheduler_repo=scheduler_repository,
)
# 3. Handler
pipeline_handler = providers.Factory(
PipelineHandler,
pipeline_service=pipeline_service,
)
autoencoder_handler = providers.Factory(
AutoencoderHandler,
autoencoder_service=autoencoder_service,
)
clip_text_encode_handler = providers.Factory(
ClipTextEncodeHandler,
clip_text_encode_service=clip_text_encode_service,
)
sampler_handler = providers.Factory(
SamplerHandler,
sampling_service=sampling_service,
)
scheduler_handler = providers.Factory(
SchedulerHandler,
scheduler_service=scheduler_service,
)