"""FikoYT Flux Sampler — KSampler wrapper, Flux defaults, tam parametre."""
try:
    import comfy.samplers
    from nodes import common_ksampler
except ImportError:
    comfy = None
    common_ksampler = None

from ..core import normalize_seed


class FikoYTFluxSampler:
    @classmethod
    def INPUT_TYPES(cls):
        return {
            "required": {
                "model": ("MODEL",),
                "positive": ("CONDITIONING",),
                "negative": ("CONDITIONING",),
                "latent_image": ("LATENT",),
                "seed": ("INT", {"default": -1, "min": -1, "max": 0xFFFFFFFF}),
                "steps": ("INT", {"default": 20, "min": 1, "max": 200}),
                "cfg": ("FLOAT", {"default": 3.5, "min": 0.0, "max": 30.0, "step": 0.1}),
                "sampler_name": (comfy.samplers.KSampler.SAMPLERS, {"default": "euler"}),
                "scheduler": (comfy.samplers.KSampler.SCHEDULERS, {"default": "simple"}),
                "denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}),
            }
        }

    RETURN_TYPES = ("LATENT",)
    FUNCTION = "sample"
    CATEGORY = "FikoYT/image"

    def sample(self, model, positive, negative, latent_image, seed, steps, cfg, sampler_name, scheduler, denoise):
        seed = normalize_seed(seed)
        return common_ksampler(
            model, seed, steps, cfg, sampler_name, scheduler,
            positive, negative, latent_image, denoise=denoise,
        )


NODE_CLASS_MAPPINGS = {"FikoYTFluxSampler": FikoYTFluxSampler}
NODE_DISPLAY_NAME_MAPPINGS = {"FikoYTFluxSampler": "FikoYT • Flux Sampler"}
