Replace PIL-level conditional resize with PyTorch F.interpolate so that
shape comparison and resizing happen at the tensor level, fixing the
torch.stack size mismatch error when selecting images of different
resolutions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
_fmt_illusts now includes original_url from browse data (meta_single_page /
meta_pages). The confirm button writes id|url pairs to the widget. The node
parses the pairs and downloads directly, removing N extra API calls that
were being rate-limited and silently failing for multi-image selections.
Falls back to get_original_url for legacy plain-ID widget values.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Multiple selected artworks can have different resolutions; torch.stack
requires equal shapes. Resize all to the first image's dimensions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Track auth time; re-auth after 55 min so node execution doesn't hit
expired access tokens (1-hour TTL)
- Use API's additional_headers in download_image_bytes for consistency
- Collect per-image error messages and include them in the ValueError
so the ComfyUI error dialog shows the actual failure reason
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>