LightDiffusion-Next / tests /unit /test_feature_triggers.py
Aatricks's picture
Deploy ZeroGPU Gradio Space snapshot
b701455
"""Unit tests for feature-trigger flags and context mapping.
Moved from top-level `tests/test_feature_triggers.py` and cleaned up to
avoid duplication with `tests/unit/test_model_detection.py`.
"""
import sys
from pathlib import Path
import pytest
# Add project root to path
project_root = Path(__file__).resolve().parent.parent
sys.path.append(str(project_root))
def test_hires_fix_is_called():
"""HiresFix flag should be enabled when requested."""
from src.Core import Context
from src.Processors import HiresFix
ctx = Context.from_kwargs(prompt="test prompt", w=512, h=512, hires_fix=True)
assert HiresFix.is_enabled(ctx) is True
def test_hires_fix_not_called_when_disabled():
from src.Core import Context
from src.Processors import HiresFix
ctx = Context.from_kwargs(prompt="test prompt", w=512, h=512, hires_fix=False)
assert HiresFix.is_enabled(ctx) is False
def test_adetailer_is_called():
from src.Core import Context
from src.Processors import Adetailer
ctx = Context.from_kwargs(prompt="test prompt", w=512, h=512, adetailer=True)
assert Adetailer.is_enabled(ctx) is True
def test_adetailer_not_called_when_disabled():
from src.Core import Context
from src.Processors import Adetailer
ctx = Context.from_kwargs(prompt="test prompt", w=512, h=512, adetailer=False)
assert Adetailer.is_enabled(ctx) is False
def test_img2img_is_called():
from src.Core import Context
from src.Processors import Img2Img
ctx = Context.from_kwargs(
prompt="test prompt",
w=512,
h=512,
img2img=True,
img2img_image="test.png",
)
assert Img2Img.is_enabled(ctx) is True
def test_context_from_kwargs_mappings():
"""Verify Context.from_kwargs maps legacy kwargs to the new Context."""
from src.Core import Context
ctx = Context.from_kwargs(
prompt="a beautiful landscape",
w=768,
h=512,
number=2,
batch=1,
scheduler="karras",
sampler="euler",
steps=30,
hires_fix=True,
adetailer=True,
stable_fast=True,
deepcache_enabled=True,
multiscale_preset="performance",
)
assert ctx.generation.width == 768
assert ctx.generation.height == 512
assert ctx.generation.number == 2
assert ctx.generation.stable_fast is True
assert ctx.sampling.steps == 30
assert ctx.sampling.sampler == "euler"
assert ctx.sampling.scheduler == "karras"
assert ctx.sampling.deepcache_enabled is True
assert ctx.features.hires_fix is True
assert ctx.features.adetailer is True
def test_hires_context_creation():
from src.Core import Context
ctx = Context.from_kwargs(prompt="test", w=512, h=512, steps=20)
hires_ctx = ctx.with_hires_settings(scale=2.0)
assert hires_ctx.generation.width == 1024
assert hires_ctx.generation.height == 1024
assert hires_ctx.sampling.steps == 10
assert hires_ctx.sampling.denoise == 0.45