From df4c936aae1d8e528ae967c85ba26fb1aa2b53aa Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Mon, 20 Jul 2026 15:41:32 +0000 Subject: [PATCH] Only prepend referenced character descriptions --- ltx_director.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ltx_director.py b/ltx_director.py index 7971973..8483426 100644 --- a/ltx_director.py +++ b/ltx_director.py @@ -375,12 +375,20 @@ def _character_prompt_replacements(characters: list[dict]) -> dict[str, str]: return replacements -def _prepend_character_descriptions(global_prompt: str, characters: list[dict] | None = None) -> str: - descriptions = [ - (character.get("description", "") or "").strip() - for character in (characters or []) - if (character.get("description", "") or "").strip() - ] +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 "" @@ -2099,7 +2107,7 @@ class LTXDirector(io.ComfyNode): image_cache=image_cache, input_dir=input_dir, ) - global_prompt = _prepend_character_descriptions(global_prompt, characters) + global_prompt = _prepend_referenced_character_descriptions(global_prompt, local_prompts, 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]