Skip to content

Commit 266cd54

Browse files
committed
refactor: add back ProjectFileParameter to LoadImage, clarify purpose
1 parent f6e3181 commit 266cd54

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

griptape_nodes_library/image/load_image.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from griptape.artifacts import ImageUrlArtifact
44
from griptape_nodes.exe_types.core_types import NodeMessageResult, Parameter, ParameterMode
55
from griptape_nodes.exe_types.node_types import BaseNode, SuccessFailureNode
6+
from griptape_nodes.exe_types.param_components.project_file_parameter import ProjectFileParameter
67
from griptape_nodes.retained_mode.griptape_nodes import logger
78
from griptape_nodes.traits.button import Button, ButtonDetailsMessagePayload
89
from griptape_nodes.traits.options import Options
@@ -12,13 +13,12 @@
1213
ArtifactTetheringConfig,
1314
default_extract_url_from_artifact_value,
1415
)
15-
from griptape_nodes_library.utils.file_utils import generate_filename
1616
from griptape_nodes_library.utils.image_utils import (
1717
SUPPORTED_IMAGE_EXTENSIONS,
1818
dict_to_image_url_artifact,
1919
extract_channel_from_image,
20+
image_to_bytes,
2021
load_pil_from_url,
21-
save_pil_image_with_named_filename,
2222
)
2323
from griptape_nodes_library.utils.macro_path_utils import (
2424
copy_external_file_to_project,
@@ -96,6 +96,13 @@ def __init__(self, **kwargs) -> None:
9696
)
9797
self.add_parameter(channel_param)
9898

99+
self._mask_output_file = ProjectFileParameter(
100+
node=self,
101+
name="mask_output_file",
102+
default_filename="mask.png",
103+
)
104+
self._mask_output_file.add_parameter()
105+
99106
self.add_parameter(
100107
Parameter(
101108
name="output_mask",
@@ -318,13 +325,11 @@ def _extract_channel_as_mask(self, image_artifact: ImageUrlArtifact, channel: st
318325
# Extract the specified channel as mask
319326
mask = extract_channel_from_image(image_pil, channel, "image")
320327

321-
# Save output mask and create URL artifact with proper filename
322-
filename = generate_filename(
323-
node_name=self.name,
324-
suffix="_load_mask",
325-
extension="png",
326-
)
327-
output_artifact = save_pil_image_with_named_filename(mask, filename, "PNG")
328+
# Save output mask and create URL artifact
329+
image_bytes = image_to_bytes(mask, "PNG")
330+
dest = self._mask_output_file.build_file()
331+
saved = dest.write_bytes(image_bytes)
332+
output_artifact = ImageUrlArtifact(saved.location)
328333
self.set_parameter_value("output_mask", output_artifact)
329334
self.publish_update_to_parameter("output_mask", output_artifact)
330335

0 commit comments

Comments
 (0)