Honor softcore clothing restore for atlas prompts
This commit is contained in:
+23
-1
@@ -105,6 +105,28 @@ def _unique_texts(values: list[Any]) -> list[str]:
|
||||
return texts
|
||||
|
||||
|
||||
def _restored_visible_details(axis_values: dict[str, Any]) -> list[str]:
|
||||
restored_details = _list_values(axis_values.get("restored_prompt_details"))
|
||||
restored_axes = _list_values(axis_values.get("restored_prompt_axes"))
|
||||
if restored_axes and len(restored_axes) == len(restored_details):
|
||||
return _unique_texts(
|
||||
[
|
||||
detail
|
||||
for axis, detail in zip(restored_axes, restored_details)
|
||||
if axis != "clothing_detail"
|
||||
]
|
||||
)
|
||||
|
||||
clothing_detail = _clean(axis_values.get("clothing_detail")).lower()
|
||||
return _unique_texts(
|
||||
[
|
||||
detail
|
||||
for detail in restored_details
|
||||
if not clothing_detail or _clean(detail).lower() != clothing_detail
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def _krea2_atlas_variant_sentence(axis_values: Any) -> str:
|
||||
variant = _selected_krea2_atlas_variant(axis_values)
|
||||
if not variant:
|
||||
@@ -123,7 +145,7 @@ def _krea2_atlas_variant_sentence(axis_values: Any) -> str:
|
||||
cues = _unique_texts(cue_sets[selected_index] if cue_sets else [variant.get("canonical_geometry")])
|
||||
sentence = _clean(". ".join(cues)).rstrip(".")
|
||||
if isinstance(axis_values, dict):
|
||||
restored_details = _unique_texts(_list_values(axis_values.get("restored_prompt_details")))
|
||||
restored_details = _restored_visible_details(axis_values)
|
||||
if restored_details:
|
||||
sentence = f"{sentence}. Additional visible detail: {'; '.join(restored_details)}"
|
||||
return sentence
|
||||
|
||||
Reference in New Issue
Block a user