affaan-m/ECC · error · SystemExit
pack ' ' has no stills - run mint.py first
Error message
pack '{genre}' has no stills - run mint.py first What it means
mint3d.py, in the stills-based (non-plate) mode, calls sp.stills() and aborts with SystemExit when the stylepack contains no still images. Image-to-3D generation needs at least one reference view from the previously minted pack.
Solutions
- Run mint.py for the genre first: python mint.py --genre <genre> --refs <media>
- Ensure mint3d uses the same --root as the mint run (default 'stylepacks')
- Verify stylepacks/<genre>/ contains still images in the stills directory
- If a previous mint failed, fix the references and re-mint before mint3d
Example fix
// before python mint3d.py noir --prompt "rusty lamp" # pack has no stills // after python mint.py noir --refs ref.mp4 python mint3d.py noir --prompt "rusty lamp"
Defensive patterns
Strategy: validation
Validate before calling
from pathlib import Path
stills_dir = Path(root) / genre
has_stills = any(stills_dir.rglob("*.png")) or any(stills_dir.rglob("*.jpg"))
if not has_stills:
raise SystemExit("run mint.py first: no stills in pack") Try / catch
try:
mint3d(...)
except SystemExit as e:
if 'has no stills' in str(e):
run_mint_first(genre, refs) Prevention
- Always run mint.py before mint3d in the same --root
- Verify stills exist after each mint run
- Keep the pack directory intact between pipeline stages
When it happens
Trigger: Running mint3d on a genre whose stylepack directory has no stills - typically because mint.py was never run for that genre/root, was run with different --root, or its references were unreadable so no stills were exported.
Common situations: Forgetting the mint.py step in the chain, pointing mint3d at a different --root than mint used, pack directory wiped between steps, or mint run that hit the 'no readable references' error so no stills were produced.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- no media and no stills in the pack - nothing to lay down
- cadence has no measured shot durations to plan from
- no pack at and no --refs given; nothing to measure
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/9ae66fe4f1c761de.
Report an issue: GitHub.
Appendix: source
Thrown at skills/taste-application/scripts/mint3d.py:157
world = ", ".join(str(v) for v in (spec.get("mood_adjectives") or [])[:3])
plate_prompt = f"{prompt}. {PLATE_RULES}"
if world:
plate_prompt += f" The object belongs to a world that reads as: {world}."
print(f" plate : generating clean single-object reference ...")
plate_urls = falapi.text_to_image(plate_prompt)
record["plate_prompt"] = plate_prompt
record["plate_url"] = plate_urls[0]
if not falapi.is_dry_run():
plate_path = props_dir / f"{asset}_plate.png"
falapi.download(plate_urls[0], plate_path)
record["plate"] = str(plate_path)
print(f" plate -> {plate_path}")
print(f" image-to-3d : from generated plate")
mesh_url = falapi.image_to_3d(plate_urls[0], pbr=pbr, face_count=face_count)
else:
stills = sp.stills()
if not stills:
raise SystemExit(f"pack '{genre}' has no stills - run mint.py first")
n = max(1, min(int(from_stills or 1), 8, len(stills)))
chosen = stills[:n]
print(f" image-to-3d : {n} view(s) - {', '.join(p.name for p in chosen)}")
urls = [falapi.upload(p) for p in chosen]
mesh_url = falapi.image_to_3d(urls, pbr=pbr, face_count=face_count)
record["stills"] = [p.name for p in chosen]
record["mesh_url"] = mesh_url
# The generated PBR original remains canonical, even if remeshing loses
# materials. Persist it before requesting any optional derivative.
mesh_path = props_dir / f"{asset}.glb"
falapi.download(mesh_url, mesh_path)
record["mesh"] = str(mesh_path)
print(f" mesh : {mesh_path}")
if retopo:
print(" retopology : quad remesh ...")
try:View on GitHub (pinned to 8321021c54)