Centralize formatter detail levels

This commit is contained in:
2026-06-27 13:56:21 +02:00
parent 6f6afb4d22
commit 333fa5eae6
8 changed files with 70 additions and 9 deletions
+1
View File
@@ -38,6 +38,7 @@ CRITICAL_ROUTE_MODULES: tuple[tuple[str, str], ...] = (
("krea_format_route.py", "krea_format_route_policy"),
("sdxl_format_route.py", "sdxl_format_route_policy"),
("caption_format_route.py", "caption_format_route_policy"),
("formatter_detail.py", "formatter_detail_policy"),
("formatter_input.py", "formatter_input_policy"),
("formatter_target.py", "formatter_target_policy"),
("pair_builder.py", "pair_builder_policy"),
+24
View File
@@ -41,6 +41,7 @@ import character_slot # noqa: E402
import category_cast_config # noqa: E402
import category_library # noqa: E402
import filter_config # noqa: E402
import formatter_detail # noqa: E402
import formatter_input # noqa: E402
import formatter_target # noqa: E402
import hardcore_position_config # noqa: E402
@@ -2842,6 +2843,26 @@ def smoke_formatter_target_policy() -> None:
_expect(not hard_pair.include_softcore and hard_pair.include_hardcore, "Pair hardcore should include only hard side")
def smoke_formatter_detail_policy() -> None:
_expect(
formatter_detail.detail_level_choices() == ["balanced", "concise", "dense"],
"Formatter detail choices changed",
)
_expect(formatter_detail.normalize_detail_level("dense") == "dense", "Formatter detail lost dense")
_expect(formatter_detail.normalize_detail_level("BAD") == "balanced", "Formatter detail should normalize invalid values")
_expect(formatter_detail.detail_allows("concise") is False, "Formatter detail concise gate changed")
_expect(formatter_detail.detail_allows("dense", dense_only=True) is True, "Formatter detail dense-only gate changed")
_expect(caption_policy.DETAIL_LEVELS is formatter_detail.DETAIL_LEVELS, "Caption detail levels should delegate")
_expect(
caption_policy.normalize_detail_level("bad") == formatter_detail.normalize_detail_level("bad"),
"Caption detail normalization should delegate",
)
_expect(
caption_policy.detail_allows("dense", dense_only=True) == formatter_detail.detail_allows("dense", dense_only=True),
"Caption detail gate should delegate",
)
def smoke_krea_format_route_policy() -> None:
row = _prompt_row(
name="krea_format_route_single",
@@ -6264,8 +6285,10 @@ def smoke_node_formatter_registration() -> None:
_expect("caption_profile" in caption_inputs, "Caption Naturalizer lost caption_profile input")
_expect("target" in caption_inputs, "Caption Naturalizer lost target input")
_expect(caption_inputs["target"][0] == formatter_target.target_choices(), "Caption Naturalizer target choices drifted")
_expect(caption_inputs["detail_level"][0] == formatter_detail.detail_level_choices(), "Caption Naturalizer detail choices drifted")
_expect("tooltip" in caption_inputs["caption_profile"][1], "Caption profile tooltip injection missing")
_expect(krea_inputs["target"][0] == formatter_target.target_choices(), "Krea2 Formatter target choices drifted")
_expect(krea_inputs["detail_level"][0] == formatter_detail.detail_level_choices(), "Krea2 Formatter detail choices drifted")
krea_output = krea_node().build(
"sxcppnl7 A woman standing by a window",
@@ -6644,6 +6667,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
("row_assembly_policy", smoke_row_assembly_policy),
("formatter_input_policy", smoke_formatter_input_policy),
("formatter_target_policy", smoke_formatter_target_policy),
("formatter_detail_policy", smoke_formatter_detail_policy),
("krea_format_route_policy", smoke_krea_format_route_policy),
("formatter_cast_policy", smoke_formatter_cast_policy),
("caption_policy", smoke_caption_policy),