Extract Krea action detail helpers

This commit is contained in:
2026-06-26 16:12:48 +02:00
parent ce90fb7593
commit c08af2c14a
4 changed files with 413 additions and 366 deletions
+7 -5
View File
@@ -154,14 +154,16 @@ Already isolated:
density limiting for Krea action prose.
- `krea_action_positions.py` owns non-POV pose anchors, body-arrangement text,
rear-entry detection, and action-position phrasing.
- `krea_actions.py` owns non-POV hardcore action sentence rewriting, item/detail
cleanup, and climax detail cleanup.
- `krea_action_details.py` owns non-climax item/detail cleanup for foreplay,
outercourse, oral, penetration, toy/double-contact, and anchor dedupe paths.
- `krea_actions.py` owns non-POV hardcore action sentence dispatch and
climax-specific role/detail cleanup.
- `krea_pov_actions.py` owns POV hardcore action sentence rewriting and
first-person body geometry.
Improve later:
- split `krea_actions.py` by action family once the extracted module is stable;
- split remaining climax-specific cleanup out of `krea_actions.py`;
- add route-level smoke fixtures for representative metadata rows;
- make `krea_actions.hardcore_action_sentence` dispatch by action family instead
of long conditional chains.
@@ -342,8 +344,8 @@ Medium-term:
## Recommended Next Passes
1. Split `krea_actions.py` by action family, using `krea_cast.py` as the
pattern for stable import aliases and smoke coverage.
1. Split climax-specific role/detail cleanup out of `krea_actions.py`, using
`krea_cast.py` as the pattern for stable import aliases and smoke coverage.
2. Split `__init__.py` node classes by family after behavior is covered by smoke
checks.
3. Add metadata fields such as `action_family` / `position_family` to reduce
+10 -4
View File
@@ -277,6 +277,7 @@ Edit targets:
`build_hardcore_action_filter_json`, `_apply_hardcore_position_config_to_subcategory`.
- Krea2 action rewrite orchestration: `krea_formatter.py`.
- Krea2 non-POV position anchors/arrangements: `krea_action_positions.py`.
- Krea2 non-climax item/detail cleanup: `krea_action_details.py`.
- Krea2 non-POV action rewrite: `krea_actions.py`.
- Krea2 POV position rewrite: `krea_pov_actions.py`.
@@ -467,8 +468,11 @@ What each part owns:
model-readable prose.
- `krea_action_positions.py`: resolves non-POV pose anchors, body-arrangement
text, duplicate arrangement checks, and action-position phrases.
- `krea_actions.py`: rewrites non-POV hardcore action sentences, item/detail
dedupe, and climax cleanup.
- `krea_action_details.py`: normalizes non-climax item/detail text and dedupes
foreplay, outercourse, oral, penetration, toy/double-contact, and anchor
details.
- `krea_actions.py`: rewrites non-POV hardcore action sentences and handles
climax-specific role/detail cleanup.
- `krea_pov_actions.py`: rewrites POV variants with first-person geometry.
Current broad hardcore families:
@@ -557,6 +561,7 @@ Key Krea2 ownership:
`krea_cast.natural_label_text`.
- Action context and family predicates: `krea_action_context.py`.
- Non-POV pose anchors and arrangements: `krea_action_positions.py`.
- Non-climax item/detail cleanup: `krea_action_details.py`.
- Non-POV hardcore action sentence: `krea_actions.hardcore_action_sentence`.
- POV labels, filtering, and camera/composition support: `krea_pov.py`.
- Detail clause splitting and density limiting: `krea_detail.py`.
@@ -746,8 +751,9 @@ Use these traces to narrow a problem in one pass.
`item_templates`, `axes`, and `weight`.
4. If raw `item` differs but Krea output looks identical, inspect
`krea_action_context.py` family predicates first, then
`krea_action_positions.py` pose anchors/arrangements and `krea_actions.py`
item detail cleanup/action sentence dispatch.
`krea_action_positions.py` pose anchors/arrangements,
`krea_action_details.py` item/detail cleanup, and `krea_actions.py` action
sentence dispatch.
### POV position is spatially wrong