Extract builder config route

This commit is contained in:
2026-06-27 12:09:41 +02:00
parent f1567118b4
commit 9a5809deaa
5 changed files with 196 additions and 35 deletions
+32 -34
View File
@@ -5,6 +5,7 @@ from pathlib import Path
from typing import Any
try:
from . import builder_config_route as builder_config_route_policy
from .category_library import (
compatible_entries as _compatible_entries,
compatible_entry as _compatible_entry,
@@ -51,6 +52,7 @@ try:
sanitize_hardcore_environment_anchors as _sanitize_hardcore_environment_anchors,
)
except ImportError: # Allows local smoke tests with `python -c`.
import builder_config_route as builder_config_route_policy
from category_library import (
compatible_entries as _compatible_entries,
compatible_entry as _compatible_entry,
@@ -2609,6 +2611,16 @@ def build_prompt(
return row
def _prompt_from_configs_dependencies() -> builder_config_route_policy.PromptFromConfigsDependencies:
return builder_config_route_policy.PromptFromConfigsDependencies(
parse_category_config=_parse_category_config,
parse_cast_config=_parse_cast_config,
parse_generation_profile=_parse_generation_profile,
parse_filter_config=_parse_filter_config,
build_prompt=build_prompt,
)
def build_prompt_from_configs(
row_number: int,
start_index: int,
@@ -2627,40 +2639,26 @@ def build_prompt_from_configs(
extra_positive: str = "",
extra_negative: str = "",
) -> dict[str, Any]:
category, subcategory = _parse_category_config(category_config)
cast = _parse_cast_config(cast_config)
profile = _parse_generation_profile(generation_profile)
filters = _parse_filter_config(filter_config)
return build_prompt(
category=category,
subcategory=subcategory,
row_number=row_number,
start_index=start_index,
seed=seed,
clothing=profile["clothing"],
ethnicity=filters["ethnicity"],
poses=profile["poses"],
expression_enabled=profile["expression_enabled"],
expression_intensity=profile["expression_intensity"],
backside_bias=profile["backside_bias"],
figure=filters["figure"],
no_plus_women=filters["no_plus_women"],
no_black=filters["no_black"],
women_count=int(cast["women_count"]),
men_count=int(cast["men_count"]),
minimal_clothing_ratio=profile["minimal_clothing_ratio"],
standard_pose_ratio=profile["standard_pose_ratio"],
trigger=profile["trigger"],
prepend_trigger_to_prompt=profile["prepend_trigger_to_prompt"],
extra_positive=extra_positive or "",
extra_negative=extra_negative or "",
seed_config=seed_config or "",
camera_config=camera_config or "",
character_profile=character_profile or "",
character_cast=character_cast or "",
hardcore_position_config=hardcore_position_config or "",
location_config=location_config or "",
composition_config=composition_config or "",
return builder_config_route_policy.build_prompt_from_configs(
builder_config_route_policy.PromptFromConfigsRequest(
row_number=row_number,
start_index=start_index,
seed=seed,
category_config=category_config,
cast_config=cast_config,
generation_profile=generation_profile,
filter_config=filter_config,
seed_config=seed_config,
camera_config=camera_config,
character_profile=character_profile,
character_cast=character_cast,
hardcore_position_config=hardcore_position_config,
location_config=location_config,
composition_config=composition_config,
extra_positive=extra_positive,
extra_negative=extra_negative,
),
_prompt_from_configs_dependencies(),
)