"""FikoYT Aspect Preset — preset adına göre genişlik/yükseklik + boş LATENT döndürür."""
try:
    import torch
except ImportError:
    torch = None

from ..core import ASPECT_NAMES, resolve_aspect


class FikoYTAspectPreset:
    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                "preset": (ASPECT_NAMES, {"default": ASPECT_NAMES[0]}),
                "batch_size": ("INT", {"default": 1, "min": 1, "max": 64}),
            }
        }

    RETURN_TYPES = ("INT", "INT", "LATENT")
    RETURN_NAMES = ("width", "height", "latent")
    FUNCTION = "resolve"
    CATEGORY = "FikoYT/util"

    def resolve(self, preset, batch_size):
        w, h = resolve_aspect(preset)
        if torch is None:
            return (w, h, {"samples": None})
        latent = torch.zeros([int(batch_size), 4, h // 8, w // 8])
        return (w, h, {"samples": latent})


NODE_CLASS_MAPPINGS = {"FikoYTAspectPreset": FikoYTAspectPreset}
NODE_DISPLAY_NAME_MAPPINGS = {"FikoYTAspectPreset": "FikoYT • Aspect Preset"}
