{"record":{"id":"9ae66fe4f1c761de","repo":"affaan-m/ECC","slug":"pack-genre-has-no-stills-run-mint-py-first-mint3d","errorCode":null,"errorMessage":"pack '{genre}' has no stills - run mint.py first","messagePattern":"pack '(.+?)' has no stills - run mint\\.py first","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"error","filePath":"skills/taste-application/scripts/mint3d.py","lineNumber":157,"sourceCode":"        world = \", \".join(str(v) for v in (spec.get(\"mood_adjectives\") or [])[:3])\n        plate_prompt = f\"{prompt}. {PLATE_RULES}\"\n        if world:\n            plate_prompt += f\" The object belongs to a world that reads as: {world}.\"\n        print(f\"  plate          : generating clean single-object reference ...\")\n        plate_urls = falapi.text_to_image(plate_prompt)\n        record[\"plate_prompt\"] = plate_prompt\n        record[\"plate_url\"] = plate_urls[0]\n        if not falapi.is_dry_run():\n            plate_path = props_dir / f\"{asset}_plate.png\"\n            falapi.download(plate_urls[0], plate_path)\n            record[\"plate\"] = str(plate_path)\n            print(f\"      plate -> {plate_path}\")\n        print(f\"  image-to-3d    : from generated plate\")\n        mesh_url = falapi.image_to_3d(plate_urls[0], pbr=pbr, face_count=face_count)\n    else:\n        stills = sp.stills()\n        if not stills:\n            raise SystemExit(f\"pack '{genre}' has no stills - run mint.py first\")\n        n = max(1, min(int(from_stills or 1), 8, len(stills)))\n        chosen = stills[:n]\n        print(f\"  image-to-3d    : {n} view(s) - {', '.join(p.name for p in chosen)}\")\n        urls = [falapi.upload(p) for p in chosen]\n        mesh_url = falapi.image_to_3d(urls, pbr=pbr, face_count=face_count)\n        record[\"stills\"] = [p.name for p in chosen]\n\n    record[\"mesh_url\"] = mesh_url\n    # The generated PBR original remains canonical, even if remeshing loses\n    # materials. Persist it before requesting any optional derivative.\n    mesh_path = props_dir / f\"{asset}.glb\"\n    falapi.download(mesh_url, mesh_path)\n    record[\"mesh\"] = str(mesh_path)\n    print(f\"  mesh           : {mesh_path}\")\n\n    if retopo:\n        print(\"  retopology     : quad remesh ...\")\n        try:","sourceCodeStart":139,"sourceCodeEnd":175,"githubUrl":"https://github.com/affaan-m/ECC/blob/8321021c54d670126ce3b2969d5deb880b4b0c2a/skills/taste-application/scripts/mint3d.py#L139-L175","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\npython mint3d.py noir --prompt \"rusty lamp\"   # pack has no stills\n// after\npython mint.py noir --refs ref.mp4\npython mint3d.py noir --prompt \"rusty lamp\"","handlingStrategy":"validation","validationCode":"from pathlib import Path\nstills_dir = Path(root) / genre\nhas_stills = any(stills_dir.rglob(\"*.png\")) or any(stills_dir.rglob(\"*.jpg\"))\nif not has_stills:\n    raise SystemExit(\"run mint.py first: no stills in pack\")","typeGuard":null,"tryCatchPattern":"try:\n    mint3d(...)\nexcept SystemExit as e:\n    if 'has no stills' in str(e):\n        run_mint_first(genre, refs)","preventionTips":["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"],"tags":["prerequisite","missing-data","pipeline-order"],"backgroundTag":"resource-not-found","analyzedSha":"8321021c54d670126ce3b2969d5deb880b4b0c2a","analyzedAt":"2026-09-16T10:08:13.343Z","contentChangedAt":"2026-09-16T10:08:13.343Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}