Centralize formatter target policy

This commit is contained in:
2026-06-27 13:42:06 +02:00
parent 194eb06465
commit c4d5477bf9
7 changed files with 137 additions and 16 deletions
+18 -6
View File
@@ -82,6 +82,15 @@ routes:
It must not make formatter-style decisions. Krea prose, SDXL tags, and training
caption sentence shape stay in their formatter modules.
Formatter target handling now has one home:
- `formatter_target.py`
It owns route-neutral target normalization for `auto`, `single`, `softcore`,
and `hardcore`, including pair-side semantics. Single-output formatters select
the softcore side for pair `auto`/`single` targets, while caption pair routing
can still include both sides for combined training captions.
Shared hardcore phrase cleanup now has one home:
- `hardcore_text_cleanup.py`
@@ -345,7 +354,8 @@ Already isolated:
- `krea_format_route.py` owns top-level Krea dispatch, including option
normalization, metadata-vs-text input selection, single-vs-pair branching,
extra positive/negative merging, final prose hygiene, and output shape;
shared target normalization via `formatter_target.py`, extra
positive/negative merging, final prose hygiene, and output shape;
`krea_formatter.py` keeps the public wrapper.
- `krea_configured_cast_formatter.py` owns normal metadata configured-cast
Krea prose assembly behind `KreaConfiguredCastRequest`,
@@ -417,9 +427,10 @@ Keep here:
Already isolated:
- `sdxl_format_route.py` owns top-level SDXL dispatch, including formatter
profile application, target and nude-weight normalization, metadata-vs-text
input selection, single-vs-pair branching, final prompt/negative output
shape, and fallback routing; `sdxl_formatter.py` keeps the public wrapper.
profile application, shared target normalization via `formatter_target.py`,
nude-weight normalization, metadata-vs-text input selection, single-vs-pair
branching, final prompt/negative output shape, and fallback routing;
`sdxl_formatter.py` keeps the public wrapper.
- `sdxl_tag_routes.py` owns normal metadata row tags and Insta/OF pair soft/hard
tag extraction behind `SDXLRowTagRequest`, `SDXLPairTagRequest`,
`SDXLTagRouteDependencies`, and `SDXLTagRoute`; `sdxl_formatter.py` keeps
@@ -455,8 +466,9 @@ Keep here:
Already isolated:
- `caption_format_route.py` owns top-level caption dispatch, including input
hint normalization, caption profile application, metadata-vs-text branching,
trigger wrapping, final prose hygiene, and method/output shape;
hint normalization, shared target normalization via `formatter_target.py`,
caption profile application, metadata-vs-text branching, trigger wrapping,
final prose hygiene, and method/output shape;
`caption_naturalizer.py` keeps the public wrapper.
- `caption_metadata_routes.py` owns metadata row natural-language assembly for
single, couple, configured-cast, group/layout, and Insta/OF pair routes behind