Preserve semen wording in Krea2 climax prompts
This commit is contained in:
@@ -123,6 +123,29 @@ Avoid generic fallback wording:
|
||||
|
||||
Use generic wording only when no source outfit exists.
|
||||
|
||||
## Climax / Ejaculation Wording
|
||||
|
||||
Krea2 needs the visible fluid action stated directly in climax routes. Keep
|
||||
`semen` in the action sentence when the generator intends an ejaculation or
|
||||
post-ejaculation image.
|
||||
|
||||
Works better:
|
||||
|
||||
- `the man ejaculates semen across her body`
|
||||
- `visible semen lands across her body`
|
||||
- `ejaculates semen across her lower back, ass, and thighs`
|
||||
|
||||
Avoid relying only on softer aftermath wording:
|
||||
|
||||
- `visible ejaculation`
|
||||
- `visible orgasm aftermath`
|
||||
- `cum on hands and body`
|
||||
|
||||
Seed `42052` exposed this as a structural formatter issue: the route selected a
|
||||
standing/kneeling climax pose, but the Krea prompt dropped `semen` and kept only
|
||||
generic aftermath language. The generator now preserves direct `ejaculates
|
||||
semen` wording for this path before the prompt reaches Krea2.
|
||||
|
||||
## POV Outercourse
|
||||
|
||||
### Boobjob / Titjob
|
||||
|
||||
@@ -53,7 +53,7 @@ def build_climax_role_graph(
|
||||
if "kneeling with mouth open" in context:
|
||||
return f"{woman} kneels in front of {man} at hip height while {man} ejaculates semen onto her face, lips, and chest."
|
||||
if "kneeling in front of a standing partner" in context:
|
||||
return f"{woman} kneels in front of {man} at hip height while {man} stands over her for visible ejaculation."
|
||||
return f"{woman} kneels in front of {man} at hip height while {man} stands over her and ejaculates semen across her body."
|
||||
if "standing with cum on the body" in context:
|
||||
return f"{woman} stands braced in front of {man} while he stays close at hip level and ejaculates semen across her body."
|
||||
if "squatting on top of a partner" in context:
|
||||
|
||||
@@ -96,7 +96,7 @@ def climax_role_graph(role_graph: str, hard_item: str, axis_values: Any = None)
|
||||
if "kneeling with mouth open" in text:
|
||||
return "the woman kneels in front of the man at hip height as he ejaculates semen onto her face, lips, and chest"
|
||||
if "kneeling in front of a standing partner" in text:
|
||||
return "the woman kneels in front of the man at hip height while he stands over her for visible ejaculation"
|
||||
return "the woman kneels in front of the man at hip height while he stands over her and ejaculates semen across her body"
|
||||
if "standing with cum on the body" in text:
|
||||
return "the woman stands braced in front of the man while he stands close at hip level and ejaculates semen across her body"
|
||||
if "squatting on top of a partner" in text:
|
||||
|
||||
@@ -7082,6 +7082,8 @@ def smoke_krea2_eval_log_policy() -> None:
|
||||
|
||||
def smoke_krea2_prompt_guide_policy() -> None:
|
||||
guide = (ROOT / "docs" / "krea2-prompt-guide.md").read_text(encoding="utf-8")
|
||||
_expect("## Climax / Ejaculation Wording" in guide, "Krea2 prompt guide lost climax wording section")
|
||||
_expect("ejaculates semen" in guide, "Krea2 prompt guide lost explicit semen wording rule")
|
||||
_expect("## Stronger-Control / Low-Priority Cases" in guide, "Krea2 prompt guide lost stronger-control section")
|
||||
_expect("pov_sixty_nine_close_reversed_oral" in guide, "Krea2 prompt guide lost sixty-nine unstable route")
|
||||
_expect("hardest" in guide and "low-priority" in guide, "Krea2 prompt guide lost hardest low-priority wording")
|
||||
@@ -9132,6 +9134,11 @@ def smoke_prompt_route_simulation_policy() -> None:
|
||||
pair_seed_checks["pair_seed.pose_reroll"].get("changed") is True,
|
||||
"Pair pose reroll should prove soft pose or hard action can reroll while cast/scene axes stay locked",
|
||||
)
|
||||
climax_regression = prompt_route_simulation.run_simulation(seed=42052, include_prompts=False)
|
||||
_expect(
|
||||
climax_regression.get("summary", {}).get("issues") == 0,
|
||||
f"Prompt route simulation climax regression reported issues: {climax_regression.get('issues')}",
|
||||
)
|
||||
sweep = prompt_route_simulation.run_simulation_sweep(seed=3901, count=3, seed_step=101, include_prompts=False)
|
||||
sweep_summary = sweep.get("summary") or {}
|
||||
sweep_quality = sweep.get("quality") or {}
|
||||
|
||||
Reference in New Issue
Block a user