Revert "Remove character description global prompt prefixing"
This reverts commit 5347ca3dbc.
This commit is contained in:
@@ -375,6 +375,29 @@ def _character_prompt_replacements(characters: list[dict]) -> dict[str, str]:
|
|||||||
return replacements
|
return replacements
|
||||||
|
|
||||||
|
|
||||||
|
def _prepend_referenced_character_descriptions(
|
||||||
|
global_prompt: str,
|
||||||
|
local_prompts: str,
|
||||||
|
characters: list[dict] | None = None,
|
||||||
|
) -> str:
|
||||||
|
prompt_text = f"{global_prompt or ''} {local_prompts or ''}"
|
||||||
|
descriptions = []
|
||||||
|
for character, tags in zip(characters or [], _build_character_tag_groups(characters or [])):
|
||||||
|
description = (character.get("description", "") or "").strip()
|
||||||
|
if not description:
|
||||||
|
continue
|
||||||
|
if any(tag in prompt_text for tag in tags):
|
||||||
|
descriptions.append(description)
|
||||||
|
|
||||||
|
if not descriptions:
|
||||||
|
return global_prompt or ""
|
||||||
|
|
||||||
|
prefix = ". ".join(descriptions)
|
||||||
|
if not (global_prompt or "").strip():
|
||||||
|
return prefix
|
||||||
|
return f"{prefix}. {global_prompt.strip()}"
|
||||||
|
|
||||||
|
|
||||||
def _preprocess_prompts_with_characters(global_prompt, local_prompts, characters: list[dict] | None = None):
|
def _preprocess_prompts_with_characters(global_prompt, local_prompts, characters: list[dict] | None = None):
|
||||||
"""Invisibly swaps out @characterN/@charN/@alias tags with their character descriptions."""
|
"""Invisibly swaps out @characterN/@charN/@alias tags with their character descriptions."""
|
||||||
if "@" not in (global_prompt or "") and "@" not in (local_prompts or ""):
|
if "@" not in (global_prompt or "") and "@" not in (local_prompts or ""):
|
||||||
@@ -2084,6 +2107,7 @@ class LTXDirector(io.ComfyNode):
|
|||||||
image_cache=image_cache,
|
image_cache=image_cache,
|
||||||
input_dir=input_dir,
|
input_dir=input_dir,
|
||||||
)
|
)
|
||||||
|
global_prompt = _prepend_referenced_character_descriptions(global_prompt, local_prompts, characters)
|
||||||
char_slot_images = [list(character.get("images") or []) for character in characters]
|
char_slot_images = [list(character.get("images") or []) for character in characters]
|
||||||
char_images = [img for slot_images in char_slot_images for img in slot_images]
|
char_images = [img for slot_images in char_slot_images for img in slot_images]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user