Fix exact Krea2 POV oral routing
This commit is contained in:
@@ -8336,6 +8336,80 @@ def smoke_pov_oral_position_routes() -> None:
|
||||
_expect("eye-level shot" not in top_prompt, f"Top-view variant prompt kept contradictory eye-level camera text: {top_prompt}")
|
||||
_expect("tongue extended toward genitals" not in top_prompt, f"Top-view variant prompt kept contradictory tongue-extension expression: {top_prompt}")
|
||||
|
||||
sitting_variant_config = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPKrea2POVOralFilter"]().build(
|
||||
"replace",
|
||||
"",
|
||||
include_blowjob_sitting_upright_oral=True,
|
||||
)[0]
|
||||
sitting_variant_pair = pb.build_insta_of_pair(
|
||||
row_number=1,
|
||||
start_index=1,
|
||||
seed=3831,
|
||||
ethnicity="any",
|
||||
figure="random",
|
||||
no_plus_women=False,
|
||||
no_black=False,
|
||||
trigger=Trigger,
|
||||
prepend_trigger_to_prompt=True,
|
||||
options_json=_insta_options(
|
||||
softcore_camera_mode="from_camera_config",
|
||||
hardcore_camera_mode="from_camera_config",
|
||||
camera_detail="compact",
|
||||
),
|
||||
character_cast=_character_cast(pov_man=True),
|
||||
hardcore_position_config=sitting_variant_config,
|
||||
location_config=_coworking_location_config(),
|
||||
hardcore_camera_config=_orbit_camera(
|
||||
horizontal_angle=45,
|
||||
vertical_angle=0,
|
||||
zoom=7.5,
|
||||
subject_focus="action",
|
||||
),
|
||||
)
|
||||
_expect_pair(sitting_variant_pair, "pov_oral_sitting_variant_filter")
|
||||
sitting_variant_row = sitting_variant_pair.get("hardcore_row") or {}
|
||||
sitting_variant_config_row = sitting_variant_row.get("hardcore_position_config") or {}
|
||||
_expect(
|
||||
sitting_variant_config_row.get("krea2_variant_keys") == ["pov_blowjob_sitting_upright_oral"],
|
||||
"Sitting oral POV filter lost exact variant key in row metadata",
|
||||
)
|
||||
_expect(
|
||||
"blowjob_sitting" in (sitting_variant_config_row.get("positions") or []),
|
||||
"Sitting oral POV filter lost exact sitting route position in row config",
|
||||
)
|
||||
sitting_axis_values = sitting_variant_row.get("item_axis_values") or {}
|
||||
_expect(
|
||||
sitting_axis_values.get("krea2_variant_keys") == ["pov_blowjob_sitting_upright_oral"],
|
||||
"Sitting oral POV filter exact variant key did not reach formatter axis metadata",
|
||||
)
|
||||
sitting_variant_krea = krea_formatter.format_krea2_prompt("", metadata_json=_json(sitting_variant_pair), target="hardcore")
|
||||
sitting_variant_prompt = _expect_text(
|
||||
"pov_oral_sitting_variant_filter.krea_prompt",
|
||||
sitting_variant_krea.get("krea_prompt"),
|
||||
60,
|
||||
).lower()
|
||||
for term in (
|
||||
"pov upright sitting oral position",
|
||||
"woman sits low between his open thighs",
|
||||
"face lowered close to the exact center contact point",
|
||||
"open mouth covers the tip",
|
||||
"hands stay low at the base",
|
||||
):
|
||||
_expect(term in sitting_variant_prompt, f"Sitting oral variant prompt missing {term!r}: {sitting_variant_prompt}")
|
||||
_expect(
|
||||
"pov open-thigh cunnilingus position" not in sitting_variant_prompt,
|
||||
f"Sitting oral variant drifted into generic cunnilingus route: {sitting_variant_prompt}",
|
||||
)
|
||||
_expect(
|
||||
"viewer kneels between her legs" not in sitting_variant_prompt,
|
||||
f"Sitting oral variant kept generic kneeling-between-legs route: {sitting_variant_prompt}",
|
||||
)
|
||||
_expect(
|
||||
"tongue extended toward genitals" not in sitting_variant_prompt,
|
||||
f"Sitting oral variant kept contradictory tongue-extension expression: {sitting_variant_prompt}",
|
||||
)
|
||||
_expect("eye-level shot" not in sitting_variant_prompt, f"Sitting oral variant kept contradictory eye-level camera text: {sitting_variant_prompt}")
|
||||
|
||||
side_body_item = "side-lying oral position while blowjob with lips wrapped around the viewer's penis"
|
||||
side_body_axis = {"position": "side-lying oral position"}
|
||||
side_body_role_graph = hardcore_role_oral.build_oral_role_graph(
|
||||
@@ -11009,6 +11083,24 @@ def smoke_node_hardcore_position_registration() -> None:
|
||||
)
|
||||
_expect("variants=pov_blowjob_top_down_vertical_shaft" in top_summary, "POV Oral Filter summary lost top-view variant key")
|
||||
|
||||
sitting_config, sitting_keys, sitting_positions, _sitting_notes, sitting_summary, _sitting_variants_json = oral_filter().build(
|
||||
"replace",
|
||||
"",
|
||||
include_blowjob_sitting_upright_oral=True,
|
||||
)
|
||||
parsed_sitting_config = json.loads(sitting_config)
|
||||
_expect(sitting_keys == "pov_blowjob_sitting_upright_oral", "POV Oral Filter returned wrong exact sitting oral variant key")
|
||||
_expect(
|
||||
parsed_sitting_config.get("krea2_variant_keys") == ["pov_blowjob_sitting_upright_oral"],
|
||||
"POV Oral Filter lost exact sitting oral variant metadata",
|
||||
)
|
||||
_expect(
|
||||
"blowjob_sitting" in (parsed_sitting_config.get("positions") or []),
|
||||
"POV Oral Filter dropped sitting oral route position from config",
|
||||
)
|
||||
_expect("blowjob_sitting" in sitting_positions.split(","), "POV Oral Filter dropped sitting oral route position summary")
|
||||
_expect("variants=pov_blowjob_sitting_upright_oral" in sitting_summary, "POV Oral Filter summary lost sitting oral variant key")
|
||||
|
||||
doggy_config, doggy_keys, doggy_positions, doggy_notes, doggy_summary, doggy_variants_json = penetration_filter().build(
|
||||
"replace",
|
||||
"",
|
||||
|
||||
Reference in New Issue
Block a user