brad-did-something / tests /probe_comic.py
qFelix's picture
Brad Did Something - Gradio/FastAPI Space on HF
78c0f6e
Raw
History Blame Contribute Delete
1.72 kB
"""Manual probe: render a few comic prompts on the live FLUX endpoint, print
latency, and save the PNGs for visual sign-off on the comic style.
Usage: set FLUX_URL and FLUX_TOKEN, then python tests/probe_comic.py
Saved samples land in tests/comic_samples/ .
"""
import base64
import os
import sys
import time
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from game import comic # noqa: E402
from game.prompts import COMIC_STYLE # noqa: E402
if not comic.flux_available():
print("FLUX_URL not set — nothing to probe (comic falls back to no overlay).")
sys.exit(1)
OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "comic_samples")
os.makedirs(OUT, exist_ok=True)
PROMPTS = [
COMIC_STYLE + ". Panel 1: a chibi office worker sweating, wide-eyed, hands "
"on his face at a laptop. Panel 2: the whole office turning to stare at him.",
COMIC_STYLE + ". Single panel: a chibi worker hiding under her desk hugging "
"a coffee mug, forced nervous smile.",
COMIC_STYLE + ". Panel 1: a fat envelope of cash on a desk. Panel 2: a boss "
"raising one eyebrow, arms crossed. Panel 3: the envelope being slid back.",
]
failures = 0
for i, prompt in enumerate(PROMPTS, 1):
t0 = time.time()
img = comic.generate_comic(prompt)
ms = int((time.time() - t0) * 1000)
if img:
path = os.path.join(OUT, f"comic_{i}.png")
with open(path, "wb") as f:
f.write(base64.b64decode(img))
print(f"OK panel {i} {ms:6d}ms {len(img):>8}b -> {path}")
else:
failures += 1
print(f"FAIL panel {i} {ms:6d}ms (no image — would fall back to no overlay)")
sys.exit(1 if failures else 0)