kneifftools / tests /test_workbench.py
kneiff's picture
refactor(captions)!: finalize Kneifftags migration
45f194e
Raw
History Blame Contribute Delete
4.16 kB
from __future__ import annotations
import json
from kneiff.app.workbench import (
EXAMPLE_TAGS,
EXAMPLE_VALIDATION_PROMPT_CONFIG,
PROFILE_CHROMA_LABEL,
PROFILE_NLG_LABEL,
build_demo,
generate_validation_prompts,
render_tags,
)
NEGATIVE_CONTROL_KEYS = (
"negative_control_wolf",
"negative_control_human_residential_street",
"negative_control_human_office_worker",
)
def test_render_tags_defaults_to_existing_hybrid_caption() -> None:
caption, diagnostics = render_tags(EXAMPLE_TAGS)
assert caption.startswith("Character_Token, species_token, solo, front_view")
assert (
"\nThis realistic image shows a standing character in a full-body front-view."
in caption
)
assert "realistic" in caption
assert "Validation: ok" in diagnostics
def test_render_tags_renders_nlg_zimage_profile() -> None:
caption, diagnostics = render_tags(EXAMPLE_TAGS, PROFILE_NLG_LABEL)
assert caption.startswith(
"This realistic image shows a standing character in a full-body front-view."
)
assert "The character is looking to the side" in caption
assert "character:" not in caption
assert "species:" not in caption
assert "Validation: ok" in diagnostics
def test_render_tags_renders_chroma_profile() -> None:
caption, diagnostics = render_tags(EXAMPLE_TAGS, PROFILE_CHROMA_LABEL)
assert caption.startswith("identity_reference. full_body_reference.")
assert "character:Character_Token." in caption
assert "species:species_token." in caption
assert "Validation: ok" in diagnostics
def test_render_tags_reports_unknown_profile() -> None:
caption, diagnostics = render_tags(EXAMPLE_TAGS, "Nope")
assert caption == ""
assert "Validation: Unknown profile: Nope" in diagnostics
def test_render_tags_preserves_unknown_inputs() -> None:
caption, diagnostics = render_tags("solo, workbench_unknown")
assert "workbench_unknown" in caption
assert "Unknown tags preserved: workbench_unknown" in diagnostics
def test_generate_validation_prompts_renders_controls_and_subsets() -> None:
prompt_json, diagnostics = generate_validation_prompts(
EXAMPLE_VALIDATION_PROMPT_CONFIG
)
prompts = json.loads(prompt_json)
assert list(prompts) == [
*NEGATIVE_CONTROL_KEYS,
"activation_control",
"subset_expression",
"subset_identity",
]
assert "male wolf character" in prompts["negative_control_wolf"].lower()
assert prompts["negative_control_human_residential_street"].startswith(
"A young human man walks alone"
)
assert prompts["negative_control_human_office_worker"].startswith(
"A tired human office worker sits"
)
assert prompts["activation_control"].startswith("Character_Token.")
assert "smiling" in prompts["subset_expression"]
assert "front-view portrait" in prompts["subset_expression"]
assert "looking at the viewer and smiling" in prompts["subset_expression"]
assert "Prompt count: 6" in diagnostics
assert "Validation: ok" in diagnostics
def test_generate_validation_prompts_reports_invalid_yaml() -> None:
prompt_json, diagnostics = generate_validation_prompts(
"profile: nlg\nprofile: chroma\n"
)
assert prompt_json == ""
assert "Validation: Duplicate YAML key 'profile'" in diagnostics
def test_generate_validation_prompts_reports_unknown_tags() -> None:
prompt_json, diagnostics = generate_validation_prompts(
EXAMPLE_VALIDATION_PROMPT_CONFIG.replace("smile", "not_a_real_tag")
)
assert prompt_json == ""
assert "unknown tags: not_a_real_tag" in diagnostics
def test_generate_validation_prompts_allows_warn_policy_axis_conflicts() -> None:
prompt_json, diagnostics = generate_validation_prompts(
EXAMPLE_VALIDATION_PROMPT_CONFIG.replace(
"front_view, full_body",
"front_view, side_view, full_body",
)
)
assert json.loads(prompt_json)
assert "Validation: ok" in diagnostics
def test_build_demo_constructs_blocks() -> None:
demo = build_demo()
assert demo is not None