emo-online-api / emo /backend /tests /test_image_tools.py
Emo Online
Deploy Emo API
dd87944
Raw
History Blame Contribute Delete
1.56 kB
"""Tests for image prompt building and precision routing."""
from image_tools import build_image_prompt, _extract_subject, _hf_model_order, _needs_precision
def test_extract_subject_avec_marque():
raw = "genere moi une image avec marque test en noir sur blanc"
assert _extract_subject(raw) == "marque test en noir sur blanc"
def test_extract_subject_colon_format():
raw = 'Génère une image: fond blanc pur, texte "PRECISION" en rouge'
assert _extract_subject(raw) == 'fond blanc pur, texte "PRECISION" en rouge'
def test_extract_subject_mot_banane():
raw = "Genere moi une image avec le mot banane dessus et c'est tout"
assert "banane" in _extract_subject(raw)
assert "une image" not in _extract_subject(raw).lower()
def test_precision_detects_text_and_hex_color():
built = build_image_prompt(
'fond blanc, texte "TEST" en rouge #FF0000 centré',
)
assert built["precision"] is True
assert "legible text" in built["negative"] or "misspelled" in built["negative"]
assert "pixel-perfect" in built["final_prompt"] or "exact colors" in built["final_prompt"]
def test_precision_routes_sdxl_first():
order = _hf_model_order('logo rouge avec texte "EMO"')
assert order[0] == "stabilityai/stable-diffusion-xl-base-1.0"
def test_non_precision_routes_flux_first():
order = _hf_model_order("chat orange sur canapé bleu")
assert order[0] == "black-forest-labs/FLUX.1-schnell"
def test_needs_precision_marque():
assert _needs_precision("marque test en noir sur blanc") is True