From 5727217c2f1bb8161a460ba3a499e4982b20d1d1 Mon Sep 17 00:00:00 2001 From: Benjamin Berman Date: Tue, 17 Jun 2025 21:08:25 -0700 Subject: [PATCH] gracefully handle skia import failure --- comfy_extras/nodes/nodes_paligemma.py | 2 +- comfy_extras/nodes/nodes_svg.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/comfy_extras/nodes/nodes_paligemma.py b/comfy_extras/nodes/nodes_paligemma.py index 8d13acff2..10ed9f587 100644 --- a/comfy_extras/nodes/nodes_paligemma.py +++ b/comfy_extras/nodes/nodes_paligemma.py @@ -238,7 +238,7 @@ class PaligemmaOutputToMask(CustomNode): def execute(self, paligemma_output: PostProcessResult) -> tuple[MaskBatch]: masks = [torch.from_numpy(p["mask"]) for p in paligemma_output if "mask" in p] if len(masks) == 0: - return torch.zeroes((0, 0, 0)), + return torch.zeros((0, 0, 0)), return torch.stack(masks, dim=0), diff --git a/comfy_extras/nodes/nodes_svg.py b/comfy_extras/nodes/nodes_svg.py index 7099c7555..7679ecc65 100644 --- a/comfy_extras/nodes/nodes_svg.py +++ b/comfy_extras/nodes/nodes_svg.py @@ -1,14 +1,16 @@ import logging import numpy as np -import skia import torch import vtracer +import logging from PIL import Image from comfy.nodes.package_typing import CustomNode from comfy.utils import tensor2pil +logger = logging.getLogger(__name__) + def RGB2RGBA(image: Image, mask: Image) -> Image: (R, G, B) = image.convert('RGB').split() @@ -99,6 +101,11 @@ class SVGToImage(CustomNode): return svg_string[svg_start:] def convert_to_image(self, svg, scale): + try: + import skia + except (ImportError, ModuleNotFoundError) as exc_info: + logger.error("failed to import skia", exc_info=exc_info) + return (torch.zeros((0, 1, 1, 3)),) raster_images = [] for i, svg_string in enumerate(svg):