From e6762bb82a9daeb9b10bfaa1f05ed31912fb8371 Mon Sep 17 00:00:00 2001 From: doctorpangloss <@hiddenswitch.com> Date: Thu, 18 Sep 2025 13:42:05 -0700 Subject: [PATCH] Use pylint dynamic member correctly --- .pylintrc | 2 +- comfy/images.py | 2 +- comfy/open_exr.py | 6 +++--- comfy/text_encoders/spiece_tokenizer.py | 6 +++--- comfy_extras/nodes/nodes_apply_color_map.py | 4 ++-- comfy_extras/nodes/nodes_open_api.py | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.pylintrc b/.pylintrc index 3accdb6d6..79f4922b1 100644 --- a/.pylintrc +++ b/.pylintrc @@ -804,7 +804,7 @@ contextmanager-decorators=contextlib.contextmanager # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E1101 when accessed. Python regular # expressions are accepted. -generated-members= +generated-members=cv2.*,sentencepiece.* # Tells whether to warn about missing members when the owner of the attribute # is inferred to be None. diff --git a/comfy/images.py b/comfy/images.py index 85f6529b6..f5c3b2cf5 100644 --- a/comfy/images.py +++ b/comfy/images.py @@ -9,7 +9,7 @@ from . import node_helpers def _open_exr(exr_path) -> Image.Image: - return Image.fromarray(cv2.imread(exr_path, cv2.IMREAD_COLOR)) # pylint: disable=no-member + return Image.fromarray(cv2.imread(exr_path, cv2.IMREAD_COLOR)) @contextmanager diff --git a/comfy/open_exr.py b/comfy/open_exr.py index 9785800ea..1dd711aee 100644 --- a/comfy/open_exr.py +++ b/comfy/open_exr.py @@ -28,7 +28,7 @@ SOFTWARE. import copy from typing import Sequence, Tuple -import cv2 as cv +import cv2 import numpy as np import torch from torch import Tensor @@ -36,7 +36,7 @@ from torch import Tensor from .component_model.images_types import RgbMaskTuple -read_exr = lambda fp: cv.imread(fp, cv.IMREAD_UNCHANGED).astype(np.float32) # pylint: disable=no-member +read_exr = lambda fp: cv2.imread(fp, cv2.IMREAD_UNCHANGED).astype(np.float32) def mut_srgb_to_linear(np_array) -> None: less = np_array <= 0.0404482362771082 @@ -85,4 +85,4 @@ def save_exr(images: Tensor, filepaths_batched: Sequence[str], colorspace="linea bgr[:, :, :, 3] = np.clip(1 - linear[:, :, :, 3], 0, 1) # invert alpha for i in range(len(linear.shape[0])): - cv.imwrite(filepaths_batched[i], bgr[i]) # pylint: disable=no-member + cv2.imwrite(filepaths_batched[i], bgr[i]) diff --git a/comfy/text_encoders/spiece_tokenizer.py b/comfy/text_encoders/spiece_tokenizer.py index 760867905..13e8c4fc6 100644 --- a/comfy/text_encoders/spiece_tokenizer.py +++ b/comfy/text_encoders/spiece_tokenizer.py @@ -32,16 +32,16 @@ class SPieceTokenizer: self.end = self.tokenizer.eos_id() self.eos_token_id = self.end - self.eos_token = self.tokenizer.id_to_piece(self.eos_token_id) # pylint: disable=no-member + self.eos_token = self.tokenizer.id_to_piece(self.eos_token_id) self._vocab = { - self.tokenizer.id_to_piece(i): i for i in range(self.tokenizer.get_piece_size()) # pylint: disable=no-member + self.tokenizer.id_to_piece(i): i for i in range(self.tokenizer.get_piece_size()) } def get_vocab(self): return self._vocab def __call__(self, string): - out = self.tokenizer.encode(string) # pylint: disable=no-member + out = self.tokenizer.encode(string) return {"input_ids": out} def serialize_model(self): diff --git a/comfy_extras/nodes/nodes_apply_color_map.py b/comfy_extras/nodes/nodes_apply_color_map.py index 7daa519a8..308ff0a46 100644 --- a/comfy_extras/nodes/nodes_apply_color_map.py +++ b/comfy_extras/nodes/nodes_apply_color_map.py @@ -68,8 +68,8 @@ class ImageApplyColorMap(CustomNode): colored_image = normalized_depth_uint8 else: cv2_colormap = getattr(cv2, colormap) - colored_image = cv2.applyColorMap(normalized_depth_uint8, cv2_colormap) # pylint: disable=no-member - colored_image_rgb = cv2.cvtColor(colored_image, cv2.COLOR_BGR2RGB) # pylint: disable=no-member + colored_image = cv2.applyColorMap(normalized_depth_uint8, cv2_colormap) + colored_image_rgb = cv2.cvtColor(colored_image, cv2.COLOR_BGR2RGB) rgb_tensor = torch.tensor(colored_image_rgb).float() * 1.0 / 255.0 colored_images.append(rgb_tensor) diff --git a/comfy_extras/nodes/nodes_open_api.py b/comfy_extras/nodes/nodes_open_api.py index 290d26985..6a36def3d 100644 --- a/comfy_extras/nodes/nodes_open_api.py +++ b/comfy_extras/nodes/nodes_open_api.py @@ -674,7 +674,7 @@ class SaveImagesResponse(CustomNode): mut_srgb_to_linear(image_as_numpy_array[:, :, :3]) image_scaled = image_as_numpy_array.astype(np.float32) if bits == 16: - cv_save_options = [cv2.IMWRITE_EXR_TYPE, cv2.IMWRITE_EXR_TYPE_HALF] # pylint: disable=no-member + cv_save_options = [cv2.IMWRITE_EXR_TYPE, cv2.IMWRITE_EXR_TYPE_HALF] else: image_scaled = np.clip(image_as_numpy_array * 65535, 0, 65535).astype(np.uint16) @@ -769,7 +769,7 @@ class SaveImagesResponse(CustomNode): if save_method == 'pil': image_as_pil.save(local_path, format=save_format, **additional_args) else: - cv2.imwrite(local_path, image_scaled) # pylint: disable=no-member + cv2.imwrite(local_path, image_scaled) img_item: SaveNodeResultWithName = { "abs_path": str(abs_path),