mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Add caption ask prompt mode
This commit is contained in:
		| @@ -217,7 +217,16 @@ async function captionHorde(base64Img) { | ||||
|  * @returns {Promise<{caption: string}>} Generated caption | ||||
|  */ | ||||
| async function captionMultimodal(base64Img) { | ||||
|     const prompt = extension_settings.caption.prompt || PROMPT_DEFAULT; | ||||
|     let prompt = extension_settings.caption.prompt || PROMPT_DEFAULT; | ||||
|  | ||||
|     if (extension_settings.caption.prompt_ask) { | ||||
|         const customPrompt = await callPopup('<h3>Enter a comment or question:</h3>', 'input', prompt, { rows: 2 }); | ||||
|         if (!customPrompt) { | ||||
|             throw new Error('User aborted the caption sending.'); | ||||
|         } | ||||
|         prompt = String(customPrompt).trim(); | ||||
|     } | ||||
|  | ||||
|     const caption = await getMultimodalCaption(base64Img, prompt); | ||||
|     return { caption }; | ||||
| } | ||||
| @@ -374,6 +383,10 @@ jQuery(function () { | ||||
|                     <div id="caption_prompt_block"> | ||||
|                         <label for="caption_prompt">Caption Prompt</label> | ||||
|                         <textarea id="caption_prompt" class="text_pole" rows="1" placeholder="< Use default >">${PROMPT_DEFAULT}</textarea> | ||||
|                         <label class="checkbox_label margin-bot-10px" for="caption_prompt_ask" title="Ask for a custom prompt every time an image is captioned."> | ||||
|                             <input id="caption_prompt_ask" type="checkbox" class="checkbox"> | ||||
|                             Ask every time | ||||
|                         </label> | ||||
|                     </div> | ||||
|                     <label for="caption_template">Message Template <small>(use <code>{{caption}}</code> macro)</small></label> | ||||
|                     <textarea id="caption_template" class="text_pole" rows="2" placeholder="< Use default >">${TEMPLATE_DEFAULT}</textarea> | ||||
| @@ -397,6 +410,7 @@ jQuery(function () { | ||||
|  | ||||
|     $('#caption_refine_mode').prop('checked', !!(extension_settings.caption.refine_mode)); | ||||
|     $('#caption_allow_reverse_proxy').prop('checked', !!(extension_settings.caption.allow_reverse_proxy)); | ||||
|     $('#caption_prompt_ask').prop('checked', !!(extension_settings.caption.prompt_ask)); | ||||
|     $('#caption_source').val(extension_settings.caption.source); | ||||
|     $('#caption_prompt').val(extension_settings.caption.prompt); | ||||
|     $('#caption_template').val(extension_settings.caption.template); | ||||
| @@ -418,4 +432,8 @@ jQuery(function () { | ||||
|         extension_settings.caption.allow_reverse_proxy = $('#caption_allow_reverse_proxy').prop('checked'); | ||||
|         saveSettingsDebounced(); | ||||
|     }); | ||||
|     $('#caption_prompt_ask').on('input', () => { | ||||
|         extension_settings.caption.prompt_ask = $('#caption_prompt_ask').prop('checked'); | ||||
|         saveSettingsDebounced(); | ||||
|     }); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user