diff --git a/README.md b/README.md index 6489d36..7c98c36 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Currently we just have a few nodes used by other nodes I maintain. - `mask_bypass` (MASK, Optional): This input complements `image_bypass`. - `base_url` (STRING): The URL of the directory containing the image file. - `filename` (STRING): The name of the image file to download (e.g., photo.jpg, art.png). + - `local_name` (STRING, optional): The name used locally. Leave blank to use `filename`. - **Output:** - `image` (IMAGE): The loaded image. - `alpha_mask` (MASK): The alpha mask for the loaded image. diff --git a/src/nodes/nodes_img.py b/src/nodes/nodes_img.py index d5df1ae..bd2041d 100644 --- a/src/nodes/nodes_img.py +++ b/src/nodes/nodes_img.py @@ -75,6 +75,10 @@ if has_load_image: "tooltip": "If this image is present will be used instead of the downloaded one" }), "mask_bypass": ("MASK", {"tooltip": "If this mask is present will be used instead of the downloaded one"}), + "local_name": ("STRING", { + "default": "", + "tooltip": "The name used locally. Leave empty to use `filename`" + }), } } @@ -92,7 +96,7 @@ if has_load_image: OUTPUT_NODE = True def load_or_download_image(self, base_url: str, filename: str, image_bypass: Optional[torch.Tensor] = None, - mask_bypass: Optional[torch.Tensor] = None): + mask_bypass: Optional[torch.Tensor] = None, local_name: str = None): # If we have something at the bypass inputs use it if image_bypass is not None or mask_bypass is not None: if image_bypass is None: @@ -107,7 +111,8 @@ if has_load_image: return (image_bypass, mask_bypass) save_dir = get_input_directory() - local_filepath = os.path.join(save_dir, filename) + dest_fname = local_name or filename + local_filepath = os.path.join(save_dir, dest_fname) if not os.path.exists(local_filepath): logger.info(f"File '{filename}' not found locally. Attempting to download.") @@ -117,7 +122,7 @@ if has_load_image: download_url = base_url + filename try: - download_file(logger, url=download_url, save_dir=save_dir, file_name=filename, kind="image") + download_file(logger, url=download_url, save_dir=save_dir, file_name=dest_fname, kind="image") except Exception as e: logger.error(f"Download failed for {download_url}: {e}", exc_info=True) raise