Extract row route metadata policy
This commit is contained in:
+42
-30
@@ -42,13 +42,13 @@ try:
|
||||
from . import row_item as row_item_policy
|
||||
from . import row_location as row_location_policy
|
||||
from . import row_pools as row_pool_policy
|
||||
from . import row_route_metadata as row_route_policy
|
||||
from . import seed_config as seed_policy
|
||||
from . import subject_context as subject_context_policy
|
||||
from .hardcore_text_cleanup import (
|
||||
sanitize_hardcore_axis_values as _sanitize_hardcore_axis_values,
|
||||
sanitize_hardcore_environment_anchors as _sanitize_hardcore_environment_anchors,
|
||||
)
|
||||
from .hardcore_action_metadata import source_hardcore_action_family
|
||||
from .hardcore_role_graphs import build_hardcore_role_graph
|
||||
except ImportError: # Allows local smoke tests with `python -c`.
|
||||
from category_library import (
|
||||
@@ -86,13 +86,13 @@ except ImportError: # Allows local smoke tests with `python -c`.
|
||||
import row_item as row_item_policy
|
||||
import row_location as row_location_policy
|
||||
import row_pools as row_pool_policy
|
||||
import row_route_metadata as row_route_policy
|
||||
import seed_config as seed_policy
|
||||
import subject_context as subject_context_policy
|
||||
from hardcore_text_cleanup import (
|
||||
sanitize_hardcore_axis_values as _sanitize_hardcore_axis_values,
|
||||
sanitize_hardcore_environment_anchors as _sanitize_hardcore_environment_anchors,
|
||||
)
|
||||
from hardcore_action_metadata import source_hardcore_action_family
|
||||
from hardcore_role_graphs import build_hardcore_role_graph
|
||||
|
||||
|
||||
@@ -259,6 +259,31 @@ def _merge_position_keys(primary: list[str], fallback: list[str]) -> list[str]:
|
||||
return item_template_policy.merge_position_keys(primary, fallback)
|
||||
|
||||
|
||||
def _action_position_route_metadata(
|
||||
*,
|
||||
is_pose_category: bool,
|
||||
subcategory: dict[str, Any],
|
||||
hardcore_position_config: dict[str, Any] | None,
|
||||
item_template_metadata: dict[str, Any] | None,
|
||||
item_text: Any,
|
||||
source_role_graph: Any,
|
||||
source_composition: Any,
|
||||
pose: Any,
|
||||
item_axis_values: dict[str, Any] | None = None,
|
||||
) -> dict[str, Any]:
|
||||
return row_route_policy.resolve_action_position_route(
|
||||
is_pose_category=is_pose_category,
|
||||
subcategory=subcategory,
|
||||
hardcore_position_config=hardcore_position_config,
|
||||
item_template_metadata=item_template_metadata,
|
||||
item_text=item_text,
|
||||
source_role_graph=source_role_graph,
|
||||
source_composition=source_composition,
|
||||
pose=pose,
|
||||
item_axis_values=item_axis_values,
|
||||
)
|
||||
|
||||
|
||||
def _oral_acts_for_position(values: list[Any], position: str) -> list[Any]:
|
||||
return row_item_policy.oral_acts_for_position(values, position)
|
||||
|
||||
@@ -2201,34 +2226,21 @@ def _build_custom_row(
|
||||
if is_pose_category:
|
||||
source_composition = _sanitize_hardcore_environment_anchors(source_composition)
|
||||
composition = _pov_composition_prompt(source_composition, pov_character_labels)
|
||||
position_family = ""
|
||||
position_keys: list[str] = []
|
||||
position_key = ""
|
||||
action_family = ""
|
||||
if is_pose_category:
|
||||
template_position_family = _template_position_family(item_template_metadata)
|
||||
position_family = template_position_family or _hardcore_source_position_family(
|
||||
subcategory,
|
||||
parsed_hardcore_position_config,
|
||||
)
|
||||
inferred_position_keys = _hardcore_position_keys(
|
||||
item_text,
|
||||
source_role_graph,
|
||||
source_composition,
|
||||
pose,
|
||||
axis_values=item_axis_values,
|
||||
)
|
||||
position_keys = _merge_position_keys(_template_position_keys(item_template_metadata), inferred_position_keys)
|
||||
position_key = position_keys[0] if position_keys else ""
|
||||
action_family = _template_action_family(item_template_metadata)
|
||||
if not action_family:
|
||||
action_family = source_hardcore_action_family(
|
||||
position_family,
|
||||
source_role_graph,
|
||||
item_text,
|
||||
source_composition,
|
||||
item_axis_values,
|
||||
)
|
||||
action_route = _action_position_route_metadata(
|
||||
is_pose_category=is_pose_category,
|
||||
subcategory=subcategory,
|
||||
hardcore_position_config=parsed_hardcore_position_config,
|
||||
item_template_metadata=item_template_metadata,
|
||||
item_text=item_text,
|
||||
source_role_graph=source_role_graph,
|
||||
source_composition=source_composition,
|
||||
pose=pose,
|
||||
item_axis_values=item_axis_values,
|
||||
)
|
||||
position_family = str(action_route.get("position_family") or "")
|
||||
position_keys = list(action_route.get("position_keys") or [])
|
||||
position_key = str(action_route.get("position_key") or "")
|
||||
action_family = str(action_route.get("action_family") or "")
|
||||
|
||||
negative_prompt = str(_merged_field(category, subcategory, item, "negative_prompt", g.NEGATIVE_PROMPT))
|
||||
positive_suffix = str(_merged_field(category, subcategory, item, "positive_suffix", GENERIC_POSITIVE_SUFFIX))
|
||||
|
||||
Reference in New Issue
Block a user