Files
2025-08-21 20:49:25 +02:00

52 lines
2.2 KiB
Python

# ComfyUI_DXF/dxf_preview.py
import time
import torch
# --- CORRECTION DE L'IMPORT : On ne charge plus la fonction supprimée ---
from .dxf_utils import (DXFDoc, _render_internal_rgb_and_mask,
_to_image_tensor, _to_mask_tensor)
class DXFPreview:
@classmethod
def INPUT_TYPES(cls):
return {"required": {
"dxf": ("DXF",),
# --- SIMPLIFICATION : Le paramètre "renderer" a été supprimé ---
"size": ("INT", {"default": 512, "min": 128, "max": 4096, "step": 64}),
"line_width": ("INT", {"default": 3, "min": 0, "max": 1000}),
"stroke_hex": ("STRING", {"default": "#000000"}),
"fill_enabled": ("BOOLEAN", {"default": False}),
"fill_hex": ("STRING", {"default": "#00A2FF"}),
"bg_enabled": ("BOOLEAN", {"default": True}),
"bg_hex": ("STRING", {"default": "#F5F5F5"}),
"show_grid": ("BOOLEAN", {"default": True}),
"transparent_bg": ("BOOLEAN", {"default": False}),
"emit_mask": ("BOOLEAN", {"default": False}),
}}
RETURN_TYPES = ("IMAGE", "MASK")
RETURN_NAMES = ("image", "mask")
FUNCTION = "preview"
CATEGORY = "DAO_master/DXF/Utils"
@classmethod
def IS_CHANGED(cls, **kwargs): return time.time_ns()
# --- SIMPLIFICATION : La logique "if renderer" a été supprimée ---
def preview(self, dxf: DXFDoc, size: int, line_width: int,
stroke_hex: str, fill_enabled: bool, fill_hex: str, bg_enabled: bool,
bg_hex: str, show_grid: bool, transparent_bg: bool, emit_mask: bool):
# On utilise directement et uniquement notre moteur de rendu interne
img, mask = _render_internal_rgb_and_mask(
dxf.msp, size, line_width, stroke_hex,
fill_enabled, fill_hex, bg_enabled, bg_hex,
show_grid, transparent_bg
)
img_t = _to_image_tensor(img)
mask_t = _to_mask_tensor(mask) if emit_mask else torch.zeros((1, img_t.shape[1], img_t.shape[2]), dtype=torch.float32)
return (img_t, mask_t)
NODE_CLASS_MAPPINGS = {"DXF Preview": DXFPreview}
NODE_DISPLAY_NAME_MAPPINGS = {"DXF Preview": "DXF Preview (from DXF)"}