Add prompt hygiene architecture pass

This commit is contained in:
2026-06-26 13:26:06 +02:00
parent c768b37399
commit b3cd8d77a1
7 changed files with 569 additions and 24 deletions
+28 -10
View File
@@ -4,6 +4,11 @@ import json
import re
from typing import Any
try:
from .prompt_hygiene import sanitize_negative_text, sanitize_tag_prompt
except ImportError: # Allows local smoke tests with `python -c`.
from prompt_hygiene import sanitize_negative_text, sanitize_tag_prompt
TRIGGER_CANDIDATES = (
"sxcpinup_coloredpencil",
@@ -432,11 +437,14 @@ def _assemble_prompt(
custom_quality: str,
extra_positive: str,
) -> str:
return _combine_tags(
_style_prefix(style_preset, trigger, prepend_trigger, custom_style),
body_tags,
_quality_tail(quality_preset, custom_quality),
extra_positive,
return sanitize_tag_prompt(
_combine_tags(
_style_prefix(style_preset, trigger, prepend_trigger, custom_style),
body_tags,
_quality_tail(quality_preset, custom_quality),
extra_positive,
),
triggers=(trigger,),
)
@@ -504,14 +512,22 @@ def format_sdxl_prompt(
extra_positive,
)
selected = hard_prompt if target == "hardcore" else soft_prompt
selected_negative = row.get("hardcore_negative_prompt") if target == "hardcore" else row.get("softcore_negative_prompt")
selected_negative = (
row.get("hardcore_negative_prompt") if target == "hardcore" else row.get("softcore_negative_prompt")
)
return {
"sdxl_prompt": selected,
"negative_prompt": _combine_negative(SDXL_DEFAULT_NEGATIVE, selected_negative, negative_prompt, extra_negative),
"negative_prompt": sanitize_negative_text(
_combine_negative(SDXL_DEFAULT_NEGATIVE, selected_negative, negative_prompt, extra_negative)
),
"sdxl_softcore_prompt": soft_prompt,
"sdxl_hardcore_prompt": hard_prompt,
"softcore_negative_prompt": _combine_negative(SDXL_DEFAULT_NEGATIVE, row.get("softcore_negative_prompt"), extra_negative),
"hardcore_negative_prompt": _combine_negative(SDXL_DEFAULT_NEGATIVE, row.get("hardcore_negative_prompt"), extra_negative),
"softcore_negative_prompt": sanitize_negative_text(
_combine_negative(SDXL_DEFAULT_NEGATIVE, row.get("softcore_negative_prompt"), extra_negative)
),
"hardcore_negative_prompt": sanitize_negative_text(
_combine_negative(SDXL_DEFAULT_NEGATIVE, row.get("hardcore_negative_prompt"), extra_negative)
),
"method": f"{method}:sdxl(insta_of_pair)",
}
@@ -534,7 +550,9 @@ def format_sdxl_prompt(
)
return {
"sdxl_prompt": prompt,
"negative_prompt": _combine_negative(SDXL_DEFAULT_NEGATIVE, extracted_negative, negative_prompt, extra_negative),
"negative_prompt": sanitize_negative_text(
_combine_negative(SDXL_DEFAULT_NEGATIVE, extracted_negative, negative_prompt, extra_negative)
),
"sdxl_softcore_prompt": "",
"sdxl_hardcore_prompt": "",
"softcore_negative_prompt": "",