From e816bfa0f995945188f313aaa37a26b77fa2d5da Mon Sep 17 00:00:00 2001 From: painter890602 <124643595+princepainter@users.noreply.github.com> Date: Fri, 23 Jan 2026 13:25:51 +0800 Subject: [PATCH] Add files via upload --- PainterFrameMath.py | 28 ++++++++++++++++++++++++++++ __init__.py | 9 +++++++++ 2 files changed, 37 insertions(+) create mode 100644 PainterFrameMath.py create mode 100644 __init__.py diff --git a/PainterFrameMath.py b/PainterFrameMath.py new file mode 100644 index 0000000..2307c08 --- /dev/null +++ b/PainterFrameMath.py @@ -0,0 +1,28 @@ +from typing import Tuple + +class PainterFrameMath: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "frame_number": ("INT", {"default": 1, "min": 1, "max": 999999, "step": 1, "forceInput": True}), + } + } + + RETURN_TYPES = ("INT",) + RETURN_NAMES = ("aligned_frame",) + FUNCTION = "align_frame" + CATEGORY = "Prince" + + def align_frame(self, frame_number: int) -> Tuple[int]: + # Calculate remainder when (frame_number - 1) is divided by 4 + remainder = (frame_number - 1) % 4 + + # If remainder is 0, frame_number is already in 4N+1 format + # Otherwise, add the difference to reach next 4N+1 number + if remainder == 0: + aligned = frame_number + else: + aligned = frame_number + (4 - remainder) + + return (aligned,) diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..d5c2ba8 --- /dev/null +++ b/__init__.py @@ -0,0 +1,9 @@ +from .PainterFrameMath import PainterFrameMath + +NODE_CLASS_MAPPINGS = { + "PainterFrameMath": PainterFrameMath, +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "PainterFrameMath": "PainterFrameMath", +}