Spaces:
Configuration error
Configuration error
| // Monitors the gallery and sends a browser notification when the leading image is new. | |
| let lastHeadImg = null; | |
| let notificationButton = null; | |
| onUiUpdate(function(){ | |
| if(notificationButton == null){ | |
| notificationButton = gradioApp().getElementById('request_notifications') | |
| if(notificationButton != null){ | |
| notificationButton.addEventListener('click', () => { | |
| void Notification.requestPermission(); | |
| },true); | |
| } | |
| } | |
| const galleryPreviews = gradioApp().querySelectorAll('div[id^="tab_"][style*="display: block"] div[id$="_results"] .thumbnail-item > img'); | |
| if (galleryPreviews == null) return; | |
| const headImg = galleryPreviews[0]?.src; | |
| if (headImg == null || headImg == lastHeadImg) return; | |
| lastHeadImg = headImg; | |
| // play notification sound if available | |
| gradioApp().querySelector('#audio_notification audio')?.play(); | |
| if (document.hasFocus()) return; | |
| // Multiple copies of the images are in the DOM when one is selected. Dedup with a Set to get the real number generated. | |
| const imgs = new Set(Array.from(galleryPreviews).map(img => img.src)); | |
| const notification = new Notification( | |
| 'Stable Diffusion', | |
| { | |
| body: `Generated ${imgs.size > 1 ? imgs.size - opts.return_grid : 1} image${imgs.size > 1 ? 's' : ''}`, | |
| icon: headImg, | |
| image: headImg, | |
| } | |
| ); | |
| notification.onclick = function(_){ | |
| parent.focus(); | |
| this.close(); | |
| }; | |
| }); | |