Extract Insta pair builder orchestration
This commit is contained in:
@@ -45,6 +45,7 @@ import krea_cast # noqa: E402
|
||||
import krea_formatter # noqa: E402
|
||||
import location_config # noqa: E402
|
||||
import loop_nodes # noqa: E402
|
||||
import pair_builder # noqa: E402
|
||||
import pair_camera # noqa: E402
|
||||
import pair_cast # noqa: E402
|
||||
import pair_clothing # noqa: E402
|
||||
@@ -3066,6 +3067,50 @@ def smoke_pair_route_policy() -> None:
|
||||
_expect(clothing_route.requires_body_exposure_scene is True, "Typed pair clothing route lost exposure-scene flag")
|
||||
|
||||
|
||||
def smoke_pair_builder_policy() -> None:
|
||||
request = pair_builder.InstaPairBuildRequest(
|
||||
row_number=1,
|
||||
start_index=1,
|
||||
seed=2101,
|
||||
ethnicity="any",
|
||||
figure="random",
|
||||
no_plus_women=False,
|
||||
no_black=False,
|
||||
trigger=Trigger,
|
||||
prepend_trigger_to_prompt=True,
|
||||
options_json=_insta_options(),
|
||||
character_cast=_character_cast(),
|
||||
hardcore_position_config=_action_filter("penetration_only"),
|
||||
)
|
||||
built = pair_builder.build_insta_of_pair(request, pb._insta_pair_build_dependencies())
|
||||
delegated = pb.build_insta_of_pair(
|
||||
row_number=request.row_number,
|
||||
start_index=request.start_index,
|
||||
seed=request.seed,
|
||||
ethnicity=request.ethnicity,
|
||||
figure=request.figure,
|
||||
no_plus_women=request.no_plus_women,
|
||||
no_black=request.no_black,
|
||||
trigger=request.trigger,
|
||||
prepend_trigger_to_prompt=request.prepend_trigger_to_prompt,
|
||||
seed_config=request.seed_config,
|
||||
options_json=request.options_json,
|
||||
filter_config=request.filter_config,
|
||||
camera_config=request.camera_config,
|
||||
softcore_camera_config=request.softcore_camera_config,
|
||||
hardcore_camera_config=request.hardcore_camera_config,
|
||||
character_profile=request.character_profile,
|
||||
character_cast=request.character_cast,
|
||||
hardcore_position_config=request.hardcore_position_config,
|
||||
location_config=request.location_config,
|
||||
composition_config=request.composition_config,
|
||||
extra_positive=request.extra_positive,
|
||||
extra_negative=request.extra_negative,
|
||||
)
|
||||
_expect(built == delegated, "Prompt builder Insta/OF wrapper should delegate to pair_builder without output drift")
|
||||
_expect_pair(built, "pair_builder_policy")
|
||||
|
||||
|
||||
def _expect_pair(pair: dict[str, Any], name: str) -> None:
|
||||
_expect(pair.get("mode") == "Insta/OF", f"{name}.mode should be Insta/OF")
|
||||
_expect_row_base(pair.get("softcore_row") or {}, f"{name}.softcore_row")
|
||||
@@ -4968,6 +5013,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("krea_close_foreplay_route", smoke_krea_close_foreplay_route),
|
||||
("pair_options_policy", smoke_pair_options_policy),
|
||||
("pair_route_policy", smoke_pair_route_policy),
|
||||
("pair_builder_policy", smoke_pair_builder_policy),
|
||||
("insta_pair_same_cast", smoke_insta_pair),
|
||||
("krea_pair_clothing_state", smoke_krea_pair_clothing_state),
|
||||
("insta_pair_pov_man", smoke_insta_pair_pov),
|
||||
|
||||
Reference in New Issue
Block a user