Is there any way to check for a high dpi display and serve a Large 2048 sizes for retina instead of the full size?
Juicebox-Pro supports only a single folder of main images. You could perhaps create two different Juicebox galleries (with different main images), perform a check (using JavaScript) to determine what device the gallery is being displayed on and then display the appropriate Juicebox gallery depending on the result.
I tried looking at the Flickr API to see if there was a way to use the Large 2048 version of the image instead of just Large but couldn't figure it out.
The Juicebox-Pro flickrImageSize configuration option does not support a value to select Flickr's 'Large 2048' image size and, from the look of this web page, Flickr has not yet added the 'Large 2048' image size to their API.
Also, I believe even if you had juicebox use the original size image, which is very slow, Juicebox would need to use scale_down or the image wouldn't fit the gallery
That is correct. No matter what the pixel density of the user's display is, Juicebox will look at the resolution of the image (e.g. 1024 x 768) and scale it appropriately depending on the imageScaleMode used. For example, if using the default imageScaleMode of 'SCALE_DOWN', a larger image (e.g. 2048 x 1536) will be scaled down and will be displayed in its entirety (just like a smaller 1024 x 768 image) within the image area.
If using imageScaleMode="NONE", you would see more of the 1024 x 768 image than the 2048 x 1536 image within a small image area but, depending on the size of the user's browser window, there is no guarantee that even the 1024 x 768 image would be displayed in its entirety using this imageScaleMode.