Extract Krea normal row formatter route

This commit is contained in:
2026-06-27 11:20:50 +02:00
parent 5ec17df1a4
commit 09fc31f078
5 changed files with 259 additions and 77 deletions
@@ -340,6 +340,10 @@ Already isolated:
`KreaConfiguredCastDependencies`, and `KreaConfiguredCastPrompt`;
`krea_formatter.py` keeps configured-cast detection and compatibility
wrapper helpers.
- `krea_normal_formatter.py` owns normal metadata single/couple/generic Krea
prose assembly behind `KreaNormalRowRequest`, `KreaNormalRowDependencies`,
and `KreaNormalRowPrompt`; `krea_formatter.py` keeps common row-field
extraction and route selection.
- `krea_pair_formatter.py` owns Insta/OF pair soft/hard Krea prose assembly
behind `KreaPairFormatRequest`, `KreaPairFormatDependencies`, and
`KreaPairPrompts`; `krea_formatter.py` keeps the `_insta_pair_to_krea`
+7 -3
View File
@@ -653,7 +653,9 @@ Important POV rule:
- Normal configured-cast metadata row:
`krea_configured_cast_formatter.format_configured_cast_result` through the
`_normal_row_to_krea` compatibility wrapper.
- Other normal metadata rows: `_normal_row_to_krea`.
- Other normal metadata rows:
`krea_normal_formatter.format_normal_row_result` through the
`_normal_row_to_krea` compatibility wrapper.
- Plain text fallback: `_fallback_text_to_krea`.
Key Krea2 ownership:
@@ -671,6 +673,8 @@ Key Krea2 ownership:
`krea_pair_formatter.format_insta_pair_result`.
- Normal configured-cast Krea prose assembly:
`krea_configured_cast_formatter.format_configured_cast_result`.
- Normal single/couple/generic Krea prose assembly:
`krea_normal_formatter.format_normal_row_result`.
- Shared POV labels/filtering/composition cleanup: `pov_policy.py`.
- Krea POV camera support: `krea_pov.py`.
- Detail clause splitting and density limiting: `krea_detail.py`.
@@ -682,8 +686,8 @@ Krea2 field consumption:
| Branch | Reads most from | Key functions |
| --- | --- | --- |
| Normal single row | `subject_type`, `item`, `pose`, `scene_text`, `expression`, `composition`, `camera_*`, style fields | `_normal_row_to_krea` |
| Normal configured cast/hardcore row | `cast_descriptor_text`, `women_count`, `men_count`, `source_role_graph`, `role_graph`, `item`, `item_axis_values`, `source_composition`, `pov_character_labels` | `_normal_row_to_krea`, `krea_actions.hardcore_action_sentence`, `krea_pov_actions.pov_action_phrase` |
| Normal single/couple/generic row | `subject_type`, `item`, `pose`, `scene_text`, `expression`, `composition`, `camera_*`, style fields | `krea_normal_formatter.format_normal_row_result` |
| Normal configured cast/hardcore row | `cast_descriptor_text`, `women_count`, `men_count`, `source_role_graph`, `role_graph`, `item`, `item_axis_values`, `source_composition`, `pov_character_labels` | `krea_configured_cast_formatter.format_configured_cast_result`, `krea_actions.hardcore_action_sentence`, `krea_pov_actions.pov_action_phrase` |
| Insta/OF pair softcore | `shared_descriptor`, `softcore_row`, `softcore_partner_styling`, options, soft camera fields | `krea_pair_formatter.format_insta_pair_result` |
| Insta/OF pair hardcore | `hardcore_row`, `shared_cast_descriptors`, `hardcore_clothing_state`, `hardcore_detail_density`, hard camera fields, POV labels | `krea_pair_formatter.format_insta_pair_result`, `krea_actions.hardcore_action_sentence`, `krea_pov_actions.pov_action_phrase`, `krea_clothing.natural_clothing_state` |
| Plain text fallback | `source_text` only | `_fallback_text_to_krea` |