// various functions for interation with ui.py not large enough to warrant putting them in separate files function selected_gallery_index(){ var buttons = gradioApp().querySelectorAll('[style="display: block;"].tabitem .gallery-item') var button = gradioApp().querySelector('[style="display: block;"].tabitem .gallery-item.\\!ring-2') var result = -1 buttons.forEach(function(v, i){ if(v==button) { result = i } }) return result } function extract_image_from_gallery(gallery){ if(gallery.length == 1){ return gallery[0] } index = selected_gallery_index() if (index < 0 || index >= gallery.length){ return [null] } return gallery[index]; } function args_to_array(args){ res = [] for(var i=0;i { const isEuler = radio.value === 'Euler'; const label = radio.closest('label'); radio.disabled = !isEuler; radio.checked = isEuler; label.classList[isEuler ? 'remove' : 'add']('!cursor-not-allowed'); label.title = !isEuler ? `${altScriptName} only works with the Euler method` : ''; }); } else { // reset to previous method methodRadios.forEach(radio => { const label = radio.closest('label'); radio.disabled = false; radio.checked = radio === prev_sampling_method; label.classList.remove('!cursor-not-allowed'); label.title = ''; }); } }); })