Centralize negative prompt hygiene

This commit is contained in:
2026-06-27 14:01:10 +02:00
parent 333fa5eae6
commit 4fdef3875b
7 changed files with 38 additions and 9 deletions
+24
View File
@@ -63,6 +63,7 @@ import pair_camera # noqa: E402
import pair_cast # noqa: E402
import pair_clothing # noqa: E402
import pair_rows # noqa: E402
import prompt_hygiene # noqa: E402
import prompt_builder as pb # noqa: E402
import pov_policy # noqa: E402
import row_normalization # noqa: E402
@@ -2412,6 +2413,28 @@ def smoke_row_normalization_policy() -> None:
_expect_no_duplicate_comma_items("row_normalization.pair.hard_row_negative", pair["hardcore_row"].get("negative_prompt"))
def smoke_prompt_hygiene_policy() -> None:
merged = prompt_hygiene.combine_negative_text(
"bad anatomy, bad anatomy",
"low quality",
"bad anatomy",
"",
)
_expect(merged == "bad anatomy, low quality", "Prompt hygiene negative merge/dedupe changed")
_expect(
row_normalization.combined_negative("bad anatomy, bad anatomy", "low quality, bad anatomy") == merged,
"Row normalization negative merge should delegate to prompt hygiene",
)
_expect(
krea_formatter._combine_negative("bad anatomy, bad anatomy", "low quality", "bad anatomy") == merged,
"Krea negative merge should delegate to prompt hygiene",
)
_expect(
prompt_hygiene.sanitize_prose_text("Scene: . A sentence. A sentence.") == "A sentence.",
"Prompt hygiene prose cleanup changed",
)
def smoke_row_rendering_policy() -> None:
_expect(pb.SINGLE_TEMPLATE == row_rendering.SINGLE_TEMPLATE, "Prompt builder single template should delegate to row_rendering")
_expect(
@@ -6662,6 +6685,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
("character_config_policy", smoke_character_config_policy),
("character_profile_policy", smoke_character_profile_policy),
("row_normalization_policy", smoke_row_normalization_policy),
("prompt_hygiene_policy", smoke_prompt_hygiene_policy),
("row_rendering_policy", smoke_row_rendering_policy),
("row_role_graph_policy", smoke_row_role_graph_policy),
("row_assembly_policy", smoke_row_assembly_policy),