diff --git a/krea_normal_formatter.py b/krea_normal_formatter.py index 023274d..16f006f 100644 --- a/krea_normal_formatter.py +++ b/krea_normal_formatter.py @@ -126,7 +126,7 @@ def format_normal_row_result( style if detail_level != "concise" else "", ] return KreaNormalRowPrompt( - deps.paragraph([", ".join(part for part in parts[:6] if part), *parts[6:]]), + deps.paragraph([", ".join(part for part in parts[:5] if part), *parts[5:]]), "metadata(single)", ) diff --git a/tools/prompt_route_simulation.py b/tools/prompt_route_simulation.py index 2ae1cbf..88d3773 100644 --- a/tools/prompt_route_simulation.py +++ b/tools/prompt_route_simulation.py @@ -539,13 +539,16 @@ def _caption_expression_grammar_issues(name: str, caption_text: str) -> list[str def _krea_grammar_issues(name: str, krea_prompt: str) -> list[str]: + issues: list[str] = [] if re.search( r"\b(?:woman|man|person),\s+with\s+[^.;]{0,120}\bfigure\s+with\b", krea_prompt, flags=re.IGNORECASE, ): - return [f"{name}.krea_prompt: subject_appearance_with_grammar"] - return [] + issues.append(f"{name}.krea_prompt: subject_appearance_with_grammar") + if re.search(r",\s+[A-Z][A-Za-z -]+ camera layout\b", krea_prompt): + issues.append(f"{name}.krea_prompt: comma_joined_camera_layout") + return issues def _composition_label_issues(name: str, prompts: dict[str, str]) -> list[str]: diff --git a/tools/prompt_smoke.py b/tools/prompt_smoke.py index cf60b55..bd59743 100644 --- a/tools/prompt_smoke.py +++ b/tools/prompt_smoke.py @@ -1426,6 +1426,7 @@ def smoke_krea_normal_row_routes() -> None: "item": "silk dress", "pose": "standing beside a window", "scene_text": "quiet studio with warm daylight", + "camera_scene_directive": "Camera-aware studio layout with window depth.", "expression": "soft smile", "composition": "vertical centered portrait", "camera_directive": "Camera: eye-level medium shot", @@ -1454,6 +1455,14 @@ def smoke_krea_normal_row_routes() -> None: "adult woman, showing slim busty figure with" not in figure_note_prompt, "Krea single route kept awkward showing figure-note grammar", ) + _expect( + "warm daylight, Camera-aware studio layout" not in figure_note_prompt, + "Krea single route joined camera-scene directive to scene with a comma", + ) + _expect( + "warm daylight. Camera-aware studio layout" in figure_note_prompt, + "Krea single route did not split camera-scene directive into its own sentence", + ) style_metadata = dict( single, style="metadata style phrase",