|
|
@@ -838,7 +838,7 @@ def smoke_scene_camera_adapter_pov_profile_policy() -> None:
|
|
|
|
_expect(foreground not in pov, f"{key} POV scene directive reused profile foreground anchor as viewer-side text")
|
|
|
|
_expect(foreground not in pov, f"{key} POV scene directive reused profile foreground anchor as viewer-side text")
|
|
|
|
_expect("from POV" in pov, f"{key} POV scene directive lost POV marker")
|
|
|
|
_expect("from POV" in pov, f"{key} POV scene directive lost POV marker")
|
|
|
|
_expect(
|
|
|
|
_expect(
|
|
|
|
"lower foreground is reserved for POV body or hand cues" in pov,
|
|
|
|
"POV body or hand cues stay in the lower foreground" in pov,
|
|
|
|
f"{key} POV scene directive lost lower-foreground body-cue reservation",
|
|
|
|
f"{key} POV scene directive lost lower-foreground body-cue reservation",
|
|
|
|
)
|
|
|
|
)
|
|
|
|
plural_directive = scene_camera_adapters.scene_camera_directive(
|
|
|
|
plural_directive = scene_camera_adapters.scene_camera_directive(
|
|
|
@@ -874,7 +874,8 @@ def smoke_row_camera_policy() -> None:
|
|
|
|
_expect(updated.get("camera_directive") == "", "POV row camera policy should suppress normal camera directive")
|
|
|
|
_expect(updated.get("camera_directive") == "", "POV row camera policy should suppress normal camera directive")
|
|
|
|
scene_directive = _expect_text("row_camera_policy.camera_scene_directive", updated.get("camera_scene_directive"), 40)
|
|
|
|
scene_directive = _expect_text("row_camera_policy.camera_scene_directive", updated.get("camera_scene_directive"), 40)
|
|
|
|
_expect("Coworking camera layout from POV" in scene_directive, "row camera policy missed POV coworking layout")
|
|
|
|
_expect("Coworking camera layout from POV" in scene_directive, "row camera policy missed POV coworking layout")
|
|
|
|
_expect("first-person spatial geometry" in scene_directive, "row camera policy lost POV geometry instruction")
|
|
|
|
_expect("POV body or hand cues stay in the lower foreground" in scene_directive, "row camera policy lost POV foreground cue")
|
|
|
|
|
|
|
|
_expect("use the multiangle camera" not in scene_directive, "row camera policy leaked internal multiangle instruction")
|
|
|
|
_expect("Camera:" not in updated.get("prompt", ""), "row camera policy should not add normal Camera label")
|
|
|
|
_expect("Camera:" not in updated.get("prompt", ""), "row camera policy should not add normal Camera label")
|
|
|
|
_expect("45-degree front-right quarter view" not in updated.get("caption", ""), "POV row camera policy should not append camera caption")
|
|
|
|
_expect("45-degree front-right quarter view" not in updated.get("caption", ""), "POV row camera policy should not append camera caption")
|
|
|
|
_expect(
|
|
|
|
_expect(
|
|
|
@@ -1023,7 +1024,7 @@ def smoke_row_camera_policy() -> None:
|
|
|
|
_expect("Hotel corridor camera layout from POV" in semi_public_scene, "row camera semi-public scene did not use hotel corridor profile")
|
|
|
|
_expect("Hotel corridor camera layout from POV" in semi_public_scene, "row camera semi-public scene did not use hotel corridor profile")
|
|
|
|
_expect("back view" not in semi_public_scene, "POV camera scene should not inject orbit back view as body orientation")
|
|
|
|
_expect("back view" not in semi_public_scene, "POV camera scene should not inject orbit back view as body orientation")
|
|
|
|
_expect("partner's back" not in semi_public_scene, "POV camera scene should not force the visible partner's back")
|
|
|
|
_expect("partner's back" not in semi_public_scene, "POV camera scene should not force the visible partner's back")
|
|
|
|
_expect("first-person spatial geometry" in semi_public_scene, "row camera semi-public POV scene lost first-person geometry")
|
|
|
|
_expect("POV body or hand cues stay in the lower foreground" in semi_public_scene, "row camera semi-public POV scene lost foreground cue")
|
|
|
|
_expect(updated_semi_public.get("scene_camera_profile_key") == "hotel_corridor", "row camera semi-public scene did not expose text-matched profile key")
|
|
|
|
_expect(updated_semi_public.get("scene_camera_profile_key") == "hotel_corridor", "row camera semi-public scene did not expose text-matched profile key")
|
|
|
|
_expect("hotel corridor" in semi_public_composition.lower(), "row camera semi-public composition did not become location-aware")
|
|
|
|
_expect("hotel corridor" in semi_public_composition.lower(), "row camera semi-public composition did not become location-aware")
|
|
|
|
_expect("bag" not in semi_public_composition.lower() and "shoes" not in semi_public_composition.lower(), "row camera semi-public composition leaked outfit-check props")
|
|
|
|
_expect("bag" not in semi_public_composition.lower() and "shoes" not in semi_public_composition.lower(), "row camera semi-public composition leaked outfit-check props")
|
|
|
@@ -6669,14 +6670,16 @@ def smoke_pov_camera_scene() -> None:
|
|
|
|
"POV camera scene should not reuse coworking foreground anchors as viewer-side objects",
|
|
|
|
"POV camera scene should not reuse coworking foreground anchors as viewer-side objects",
|
|
|
|
)
|
|
|
|
)
|
|
|
|
_expect(
|
|
|
|
_expect(
|
|
|
|
"lower foreground is reserved for POV body or hand cues" in scene_directive,
|
|
|
|
"POV body or hand cues stay in the lower foreground" in scene_directive,
|
|
|
|
"POV camera scene should reserve the lower foreground for first-person body cues",
|
|
|
|
"POV camera scene should keep first-person body cues in the lower foreground",
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
_expect("use the multiangle camera" not in scene_directive, "POV camera scene leaked internal multiangle instruction")
|
|
|
|
krea = krea_formatter.format_krea2_prompt("", metadata_json=_json(pair), target="hardcore")
|
|
|
|
krea = krea_formatter.format_krea2_prompt("", metadata_json=_json(pair), target="hardcore")
|
|
|
|
prompt = krea.get("krea_prompt") or ""
|
|
|
|
prompt = krea.get("krea_prompt") or ""
|
|
|
|
_expect("from POV" in prompt, "Krea POV prompt lost camera-scene directive")
|
|
|
|
_expect("from POV" in prompt, "Krea POV prompt lost camera-scene directive")
|
|
|
|
_expect("laptop corner" not in prompt, "Krea POV prompt leaked foreground desk anchor into camera scene")
|
|
|
|
_expect("laptop corner" not in prompt, "Krea POV prompt leaked foreground desk anchor into camera scene")
|
|
|
|
_expect("lower foreground is reserved for POV body or hand cues" in prompt, "Krea POV prompt lost POV foreground reservation")
|
|
|
|
_expect("POV body or hand cues stay in the lower foreground" in prompt, "Krea POV prompt lost POV foreground cue")
|
|
|
|
|
|
|
|
_expect("use the multiangle camera" not in prompt, "Krea POV prompt leaked internal multiangle instruction")
|
|
|
|
_expect("Camera:" not in prompt, "Krea POV prompt should not emit normal third-person camera directive")
|
|
|
|
_expect("Camera:" not in prompt, "Krea POV prompt should not emit normal third-person camera directive")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -6715,8 +6718,16 @@ def smoke_krea_pov_penetration_route() -> None:
|
|
|
|
lower = prompt.lower()
|
|
|
|
lower = prompt.lower()
|
|
|
|
_expect("metadata" in krea.get("method", ""), "POV penetration route did not use metadata")
|
|
|
|
_expect("metadata" in krea.get("method", ""), "POV penetration route did not use metadata")
|
|
|
|
_expect("viewer" in lower and "first-person" in lower, "POV penetration lost first-person wording")
|
|
|
|
_expect("viewer" in lower and "first-person" in lower, "POV penetration lost first-person wording")
|
|
|
|
|
|
|
|
cast_index = lower.find("adult woman")
|
|
|
|
|
|
|
|
viewer_index = lower.find("viewer")
|
|
|
|
|
|
|
|
_expect(
|
|
|
|
|
|
|
|
0 <= cast_index < viewer_index,
|
|
|
|
|
|
|
|
"POV hardcore prompt should establish the visible woman before viewer/action wording",
|
|
|
|
|
|
|
|
)
|
|
|
|
_expect("penetrates" in lower or "penetration" in lower, "POV penetration lost penetration action wording")
|
|
|
|
_expect("penetrates" in lower or "penetration" in lower, "POV penetration lost penetration action wording")
|
|
|
|
_expect("woman" in lower and "thigh" in lower, "POV penetration lost body-position anchors")
|
|
|
|
_expect("woman" in lower and "thigh" in lower, "POV penetration lost body-position anchors")
|
|
|
|
|
|
|
|
_expect("action geography" not in lower, "POV penetration leaked abstract action-geography wording")
|
|
|
|
|
|
|
|
_expect("use the multiangle camera" not in lower, "POV penetration leaked internal multiangle instruction")
|
|
|
|
_expect("camera:" not in prompt, "POV penetration emitted normal third-person camera directive")
|
|
|
|
_expect("camera:" not in prompt, "POV penetration emitted normal third-person camera directive")
|
|
|
|
_expect("role graph:" not in lower and "sexual scene:" not in lower, "POV penetration leaked raw prompt labels")
|
|
|
|
_expect("role graph:" not in lower and "sexual scene:" not in lower, "POV penetration leaked raw prompt labels")
|
|
|
|
style_index = lower.find("explicit consensual")
|
|
|
|
style_index = lower.find("explicit consensual")
|
|
|
|