Expand hardcore interaction pools
This commit is contained in:
@@ -85,6 +85,7 @@ These recipes identify the intended road before editing prompt text.
|
||||
| Keep character/location but change only sexual pose | `Global Seed` or fixed seed config -> builder/pair | Keep `person_seed` and `scene_seed` fixed; change `pose_seed` and usually `role_seed`; for hardcore categories check `content_seed_axis` | `sexual_poses.json`, `hardcore_position_config`, Krea `_hardcore_action_sentence` |
|
||||
| Generate a specific hardcore oral/blowjob scene | `Hardcore Position Pool` -> `Hardcore Action Filter` -> `Insta/OF Prompt Pair` or `Prompt Builder` | Use `focus=oral_only` or disable non-oral families; keep `allow_oral=true`; constrain position pool to kneeling/standing/oral variants when needed | `sexual_poses.json` oral subcategory/templates, `_apply_hardcore_position_config_to_subcategory`, `_hardcore_action_sentence` |
|
||||
| Generate POV oral or POV penetration | `Man Slot` with POV presence -> `character_cast` -> pair/builder -> Krea2 formatter | POV man must be in the cast; use metadata into Krea2; normal camera directive is suppressed by POV | `_pov_hardcore_pose_sentence`, `_pov_action_phrase`, `_cast_prose` omit-label handling |
|
||||
| Generate porn-scene interaction beats | `Hardcore Position Pool` -> `Hardcore Action Filter` -> pair/builder | Use `focus=interaction_only` for kissing/body worship/transitions/guidance/camera/watching/aftercare, or `focus=manual_only` for fingering/clit/manual stimulation; constrain keys such as `camera_showing`, `wrist_pinning`, `fingering`, `aftercare` | `sexual_poses.json` interaction/manual subcategories, `_role_graph`, Krea `_is_foreplay_text` / `_hardcore_action_sentence` |
|
||||
| Same woman, same room, softcore and hardcore outputs | `Character Slot/Profile` -> `Insta/OF Options` -> `Insta/OF Prompt Pair` | `continuity=same_creator_same_room`; set `softcore_cast` as needed; use pair metadata into formatter | `build_insta_of_pair`, `softcore_row`, `hardcore_row`, pair metadata fields |
|
||||
| Same cast in softcore and hardcore | Character slot chain -> `Insta/OF Options` | `softcore_cast=same_as_hardcore`; configure partner slots/outfits if needed | `_insta_of_partner_styling`, character slot clothing, pair Krea branch |
|
||||
| Change only outfit/clothing | Character clothing or category content route | Keep `person_seed`, `scene_seed`, `pose_seed`; change `content_seed`; slot `softcore_outfit` overrides Insta/OF outfit | `SxCP Character Clothing`, `INSTA_OF_SOFTCORE_OUTFITS`, category item templates |
|
||||
@@ -205,7 +206,7 @@ This table is the first stop when the selected content is wrong.
|
||||
| `default_categories.json` men casual subcategories | Male casual outfit/items and men-specific casual pools | Same as above | Medium if men are part of a mixed cast and clothing detail is too strong |
|
||||
| `default_categories.json` couple casual subcategories | Couple outfit/action-ish soft poses and couple pools | Same as above | Medium because labels and partner styling can duplicate pair mode |
|
||||
| `erotic_clothes.json` | Provocative/erotic clothing categories and softcore creator scenes | `content`, `scene`, `expression`, `composition` | Medium because nude/implied-nude wording can conflict with clothes |
|
||||
| `sexual_poses.json` foreplay/oral/outercourse/penetration/etc. | Hardcore action item templates, role graphs, axis values, hardcore pool references | `pose` for pose-content route, also `role`; sometimes `content` aliases matter | High because Krea2 rewrites action and POV position text |
|
||||
| `sexual_poses.json` foreplay/interaction/manual/oral/outercourse/penetration/etc. | Hardcore action and porn-scene interaction templates, role graphs, axis values, hardcore pool references | `pose` for pose-content route, also `role`; sometimes `content` aliases matter | High because Krea2 rewrites action and POV position text |
|
||||
| `location_pools.json` | Reusable scene pools and legacy scene extensions | `scene` | Medium when a camera-aware adapter changes scene/composition wording |
|
||||
| `expression_composition_pools.json` | Reusable expressions and framing/composition pools | `expression`, `composition` | Medium because formatter may label or suppress expressions |
|
||||
| `generate_prompt_batches.py` legacy pools | Built-in generator clothing, pose, expression, scene, composition lists | Main row seed plus axis config through legacy adapter | Medium because legacy prompt format is field-label heavy |
|
||||
@@ -268,6 +269,10 @@ Edit targets:
|
||||
|
||||
- Normal pose pools: legacy `g.POSES`, `g.EVOCATIVE_POSES`, or JSON `poses`.
|
||||
- Hardcore positions/actions: `categories/sexual_poses.json`.
|
||||
- Hardcore interaction beats: `categories/sexual_poses.json` subcategories
|
||||
`foreplay_teasing`, `manual_stimulation`, `body_worship_touching`,
|
||||
`clothing_position_transitions`, `dominant_guidance`,
|
||||
`camera_performance`, `group_coordination`, and `aftercare_cleanup`.
|
||||
- Position filtering UI: `build_hardcore_position_pool_json`,
|
||||
`build_hardcore_action_filter_json`, `_apply_hardcore_position_config_to_subcategory`.
|
||||
- Krea2 action rewrite, POV position rewrite, cleanup: `krea_formatter.py`.
|
||||
@@ -358,8 +363,8 @@ Hardcore row:
|
||||
|
||||
- Category is always `Hardcore sexual poses`.
|
||||
- Cast count comes from `SxCP Insta/OF Options`.
|
||||
- Position/action can be constrained by `SxCP Hardcore Position Pool` and
|
||||
`SxCP Hardcore Action Filter`.
|
||||
- Position/action/interaction can be constrained by `SxCP Hardcore Position
|
||||
Pool` and `SxCP Hardcore Action Filter`.
|
||||
- Clothing comes from character slot hardcore clothing first, then fallback
|
||||
`hardcore_clothing_continuity`.
|
||||
- Men receive default hardcore clothing if visible and not configured.
|
||||
@@ -410,7 +415,7 @@ plain prompt text. When debugging, inspect these fields before editing pools.
|
||||
| `character_cast_slots` | Character slot chain | POV/camera/formatters | Raw configured slots. |
|
||||
| `character_slot_status`, `character_profile_status` | Character/profile application | Debug | Explains whether slot/profile was applied or skipped. |
|
||||
| `pov_character_labels` | Character slot presence mode | Krea/prompt/camera | Labels omitted from visible cast and rewritten as first-person POV. |
|
||||
| `hardcore_position_config` | Hardcore position/filter nodes | Debug | Active hardcore family/position/action constraints. |
|
||||
| `hardcore_position_config` | Hardcore position/filter nodes | Debug | Active hardcore family/position/action/interaction constraints, including `interaction_only` and `manual_only`. |
|
||||
| `negative_prompt` | Category/pair/default negative route | Formatter output | Base negative text before formatter extras. |
|
||||
| `trigger` | Builder input | Formatter/fallback/debug | Active trigger after fallback to default. |
|
||||
|
||||
@@ -453,11 +458,40 @@ flowchart TD
|
||||
What each part owns:
|
||||
|
||||
- `sexual_poses.json`: available positions, families, action templates, role
|
||||
graph templates, and action-specific pool references.
|
||||
graph templates, interaction templates, and action-specific pool references.
|
||||
- `prompt_builder.py`: filters which templates/axes remain available.
|
||||
- `krea_formatter.py`: rewrites the selected action into model-readable prose,
|
||||
including POV variants and cleanup.
|
||||
|
||||
Current broad hardcore families:
|
||||
|
||||
| Family / focus | Subcategories |
|
||||
| --- | --- |
|
||||
| `penetrative` / `penetration_only` | `penetrative_sex` |
|
||||
| `foreplay` / `foreplay_only` | `foreplay_teasing` |
|
||||
| `interaction` / `interaction_only` | `foreplay_teasing`, `body_worship_touching`, `clothing_position_transitions`, `dominant_guidance`, `camera_performance`, `group_coordination`, `aftercare_cleanup` |
|
||||
| `manual` / `manual_only` | `manual_stimulation` |
|
||||
| `oral` / `oral_only` | `oral_sex` |
|
||||
| `outercourse` / `outercourse_only` | `outercourse_sex`, `manual_stimulation` |
|
||||
| `anal` / `anal_only` | `anal_double_penetration` |
|
||||
| `climax` / `climax_only` | `cumshot_climax` |
|
||||
| `threesome` / `threesome_only` | `threesomes` |
|
||||
| `group` / `group_only` | `group_sex_orgy` |
|
||||
|
||||
The action filter also has independent gates for toys, double-contact,
|
||||
penetration, foreplay, interaction, manual stimulation, oral, outercourse, anal,
|
||||
and climax. Keep `allow_interaction=true` when using the broader interaction
|
||||
family; keep `allow_manual=true` when manual stimulation should remain possible.
|
||||
`allow_anal=false` blocks anal-sex wording, not ordinary ass-touching interaction
|
||||
phrases such as ass grabbing or body worship.
|
||||
|
||||
Interaction selector keys include kissing/caressing/undressing, body worship,
|
||||
nipple play, ass grabbing, thigh kissing, hair holding, wrist pinning, dirty
|
||||
talk, position transitions, guided positioning, camera presentation, watching,
|
||||
aftercare, cleanup, fingering, clit rubbing, and mutual masturbation. These keys
|
||||
are still routed through `hardcore_position_config.positions`, so they are
|
||||
controlled by the same `pose`/`role` debug path as other hardcore action keys.
|
||||
|
||||
If one action keeps recurring, inspect:
|
||||
|
||||
1. The enabled position family/action flags.
|
||||
@@ -614,6 +648,7 @@ or pool appears there but not in this map, update the relevant route table.
|
||||
| Wrong expression intensity | Character slot expression settings, `_expression_entries_for_intensity`, expression pools. |
|
||||
| Expression appears when disabled | `_disable_row_expression`, formatter expression extraction. |
|
||||
| Same hardcore action repeats | Hardcore filter config, `sexual_poses.json` weights, `_apply_hardcore_position_config_to_subcategory`. |
|
||||
| Hardcore interaction beat falls back to penetration/oral | `sexual_poses.json` interaction subcategory, `_role_graph`, and Krea `_is_foreplay_text` / `_hardcore_pose_anchor`. |
|
||||
| Raw hardcore prompt position is vague | `sexual_poses.json` item templates and role graph templates. |
|
||||
| Krea2 hardcore prompt position is vague | `_hardcore_action_sentence` or `_pov_hardcore_pose_sentence`. |
|
||||
| Man appears described in POV | POV labels, `_cast_prose` omit labels, `_pov_action_phrase`. |
|
||||
|
||||
Reference in New Issue
Block a user