diff --git a/public/index.html b/public/index.html index eb136b760..db1cca137 100644 --- a/public/index.html +++ b/public/index.html @@ -1386,9 +1386,9 @@
`); $('#extensionsMenu').prepend(sendButton); - $(sendButton).hide(); $(sendButton).on('click', () => { if (isImageInliningSupported()) { console.log('Native image inlining is supported. Skipping captioning.'); @@ -320,12 +350,13 @@ jQuery(function () { const hasCaptionModule = (modules.includes('caption') && extension_settings.caption.source === 'extras') || - (extension_settings.caption.source === 'openai' && secret_state[SECRET_KEYS.OPENAI]) || + (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'openai' && secret_state[SECRET_KEYS.OPENAI]) || + (extension_settings.caption.source === 'multimodal' && extension_settings.caption.multimodal_api === 'openrouter' && secret_state[SECRET_KEYS.OPENROUTER]) || extension_settings.caption.source === 'local' || extension_settings.caption.source === 'horde'; if (!hasCaptionModule) { - toastr.error('No captioning module is available. Choose other captioning source in the extension settings.'); + toastr.error('Choose other captioning source in the extension settings.', 'Captioning is not available'); return; } @@ -343,6 +374,29 @@ jQuery(function () { $('#form_sheld').append(imgForm); $('#img_file').on('change', onSelectImage); } + function switchMultimodalBlocks() { + const isMultimodal = extension_settings.caption.source === 'multimodal'; + $('#caption_multimodal_block').toggle(isMultimodal); + $('#caption_prompt_block').toggle(isMultimodal); + $('#caption_multimodal_api').val(extension_settings.caption.multimodal_api); + $('#caption_multimodal_model').val(extension_settings.caption.multimodal_model); + $('#caption_multimodal_model option').each(function () { + const type = $(this).data('type'); + $(this).toggle(type === extension_settings.caption.multimodal_api); + }); + $('#caption_multimodal_api').on('change', () => { + const api = String($('#caption_multimodal_api').val()); + const model = String($(`#caption_multimodal_model option[data-type="${api}"]`).first().val()); + extension_settings.caption.multimodal_api = api; + extension_settings.caption.multimodal_model = model; + saveSettingsDebounced(); + switchMultimodalBlocks(); + }); + $('#caption_multimodal_model').on('change', () => { + extension_settings.caption.multimodal_model = String($('#caption_multimodal_model').val()); + saveSettingsDebounced(); + }); + } function addSettings() { const html = `
@@ -355,12 +409,31 @@ jQuery(function () { - - +
+
+ + +
+
+ + +
+
+
+ + +