Throughput without pretending we are a RIP
Multi-select is the batch
The hidden file input uses the multiple attribute. You can highlight a dozen JPEGs in Finder or Files and open them together. They decode into blob URLs in order. A layout for that count is selected by default. That saves the click-click-click of adding one photo at a time. It does not read nested folders, does not skip screenshots automatically, and does not pair “IMG_001 with IMG_002” into separate boards. If the album has 80 keepers, you will make several boards — or you will make a contact-sheet-like 16-cell dump that nobody can read. Choose.
Memory is the real limiter
Sixteen 12 MP photos is a lot of decoded RGBA in a phone tab. If Safari reloads, split the set or compress first. Desktop Chrome is more forgiving. This is the same ceiling as every other spoke; batch does not raise it. There is no AI that ranks smiles and builds ten boards. Default layout-for-count is a lookup table in layouts.ts, not a model.
Repeatable album pages
A practical bulk rhythm: sort the folder by time, grab frames 1–8, export “reception-a.jpg”, grab 9–16, export “reception-b.jpg”. Same ratio, same gap, same map if the counts match. That is as close as this studio gets to a photo-book imposition. For actual books, those JPGs become pictures in the vendor’s editor. Carousel mode is the other bulk story: many full-frame slides in one ZIP — different spoke cluster.