diff --git a/src/nodes/_diffusers_pipeline_loader.py b/src/nodes/_diffusers_pipeline_loader.py index 38edf10..f6e76db 100644 --- a/src/nodes/_diffusers_pipeline_loader.py +++ b/src/nodes/_diffusers_pipeline_loader.py @@ -28,6 +28,7 @@ class DiffusersPipelineLoader: checkpoint_name: str, handler: PipelineHandler = Provide[Container.pipeline_handler], ) -> tuple[ComfyUIPipelineDTO]: - pipeline_model = handler.create(checkpoint_name) + checkpoint_path = folder_paths.get_full_path("checkpoints", checkpoint_name) + pipeline_model = handler.create(checkpoint_path) pipeline_dto = ComfyUIPipelineDTO.from_domain(pipeline_model) return (pipeline_dto,) diff --git a/src/nodes/_diffusers_vae_loader.py b/src/nodes/_diffusers_vae_loader.py index ab5408b..019917c 100644 --- a/src/nodes/_diffusers_vae_loader.py +++ b/src/nodes/_diffusers_vae_loader.py @@ -28,6 +28,7 @@ class DiffusersVaeLoader: vae_name: str, handler: AutoencoderHandler = Provide[Container.autoencoder_handler], ) -> tuple[ComfyUIAutoencoderDTO]: - autoencoder_model = handler.create(vae_name) + vae_path = folder_paths.get_full_path("vae", vae_name) + autoencoder_model = handler.create(vae_path) autoencoder_dto = ComfyUIAutoencoderDTO.from_domain(autoencoder_model) return (autoencoder_dto,) diff --git a/src/ui/_autoencoder_handler.py b/src/ui/_autoencoder_handler.py index c546177..bbc09a8 100644 --- a/src/ui/_autoencoder_handler.py +++ b/src/ui/_autoencoder_handler.py @@ -1,7 +1,5 @@ import os -import folder_paths # pyright: ignore[reportMissingImports] - from ..domain.model import Autoencoder from ..service import AutoencoderService @@ -10,8 +8,10 @@ class AutoencoderHandler: def __init__(self, autoencoder_service: AutoencoderService) -> None: self.create_autoencoder_service = autoencoder_service - def create(self, checkpoint_name: str) -> Autoencoder: - checkpoint_path = folder_paths.get_full_path("vae", checkpoint_name) - if not os.path.exists(checkpoint_path): - raise FileNotFoundError(f"VAE file not found: {checkpoint_name}") - return self.create_autoencoder_service.create_from_checkpoint(checkpoint_path) + def create(self, vae_path: str) -> Autoencoder: + if not os.path.exists(vae_path): + raise FileNotFoundError(f"VAE file not found: {vae_path}") + autoencoder = self.create_autoencoder_service.create_from_checkpoint(vae_path) + if autoencoder is None: + raise RuntimeError(f"Failed to create autoencoder from checkpoint: {vae_path}") + return autoencoder diff --git a/src/ui/_pipeline_handler.py b/src/ui/_pipeline_handler.py index 02eaefd..d0c744b 100644 --- a/src/ui/_pipeline_handler.py +++ b/src/ui/_pipeline_handler.py @@ -1,7 +1,5 @@ import os -import folder_paths # pyright: ignore[reportMissingImports] - from ..domain.model import Pipeline from ..service import PipelineService @@ -10,8 +8,10 @@ class PipelineHandler: def __init__(self, pipeline_service: PipelineService) -> None: self.create_pipeline_service = pipeline_service - def create(self, checkpoint_name: str) -> Pipeline: - checkpoint_path = folder_paths.get_full_path("checkpoints", checkpoint_name) + def create(self, checkpoint_path: str) -> Pipeline: if not os.path.exists(checkpoint_path): - raise FileNotFoundError(f"Checkpoint file not found: {checkpoint_name}") - return self.create_pipeline_service.create_from_checkpoint(checkpoint_path) + raise FileNotFoundError(f"Checkpoint file not found: {checkpoint_path}") + pipeline = self.create_pipeline_service.create_from_checkpoint(checkpoint_path) + if pipeline is None: + raise RuntimeError(f"Failed to create pipeline from checkpoint: {checkpoint_path}") + return pipeline