Files
AiVideo/engine/prompt_injector.py
2026-03-25 19:35:37 +08:00

24 lines
860 B
Python

from __future__ import annotations
from typing import Any
def inject_prompt(global_cfg: dict[str, Any] | None, scene: dict[str, Any]) -> dict[str, str]:
"""
Unified positive/negative prompt builder.
Note: current pipeline already injects some globals into `scene["image_prompt"]`.
"""
global_cfg = global_cfg or {}
character = str(global_cfg.get("character", "") or "").strip()
style = str(global_cfg.get("style", "") or "").strip()
negative = str(global_cfg.get("negative_prompt", "") or "").strip()
base = str(scene.get("prompt") or scene.get("image_prompt") or "").strip()
if not base:
base = str(scene.get("image_prompt") or "")
positive_parts = [p for p in [character, style, base] if p]
positive = ", ".join(positive_parts).strip(", ")
return {"positive": positive, "negative": negative}