The illustrations were sitting in art/creatures/, where nothing looked for them. build-packs resolves a creature's picture by stem under art/portraits/, so none of the 47 reached the game. tools/make-art.py (was make-tokens.py) now derives both from one plate: art/portraits/<key>.webp and art/tokens/<key>.webp. Same drawing, so the token cannot disagree with the portrait — the argument mj-queue already makes for deriving prompts from statblocks. Webp because every one of the 309 art files already here is one, at 160-220 KB. The raw Midjourney plates are 2.3 MB each; 47 of them would have put 93 MB into a 29 MB repository permanently, for pictures nothing renders at that size. At quality 88 a plate is ~300 KB with the pencil hatching intact. The plates stay on disk as working files and are gitignored. The token lookup in build-packs was a hardcoded `.png`, so the first webp token would have silently fallen back to the portrait and Foundry would have gone back to cropping a 2:3 plate into a circle. Portraits and tokens now share one resolver and one extension list. 146 of 147 npcs carry a portrait and 46 a derived token. Also: the gryphon came back as a mech a second time. The first fix branched the armour SIMILE on era while both arms still opened with the word "armoured", and that word is what Midjourney draws — changing the reasoning is not the same as changing the cause. No natural creature's prompt contains "armour" now, and negativesFor() asks for plate, machinery and worn armour to be left out, because a word choice is an argument and a --no is closer to a guarantee. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
218 KiB
896x1344px
218 KiB
896x1344px