Busy icon for inline SD gens

This commit is contained in:
SillyLossy
2023-05-17 20:50:25 +03:00
parent 9156e7f43d
commit cf4492b7e4

View File

@ -609,23 +609,44 @@ addSDGenButtons();
setInterval(moduleWorker, UPDATE_INTERVAL); setInterval(moduleWorker, UPDATE_INTERVAL);
function sdMessageButton(e) { async function sdMessageButton(e) {
function setBusyIcon(isBusy) {
$icon.toggleClass('fa-paintbrush', !isBusy);
$icon.toggleClass(busyClass, isBusy);
}
const busyClass = 'fa-hourglass';
const context = getContext(); const context = getContext();
const $mes = $(e.currentTarget).closest('.mes'); const $icon = $(e.currentTarget);
const $mes = $icon.closest('.mes');
const characterName = $mes.find('.name_text').text(); const characterName = $mes.find('.name_text').text();
const messageText = $mes.find('.mes_text').text(); const messageText = $mes.find('.mes_text').text();
const message_id = $mes.attr('mesid'); const message_id = $mes.attr('mesid');
const message = context.chat[message_id]; const message = context.chat[message_id];
const hasSavedImage = message?.extra?.image && message?.extra?.title; const hasSavedImage = message?.extra?.image && message?.extra?.title;
if (hasSavedImage) { if ($icon.hasClass(busyClass)) {
const prompt = message?.extra?.title; console.log('Previous image is still being generated...');
console.log('Regenerating an image, using existing prompt:', prompt); return;
sendGenerationRequest(prompt, saveGeneratedImage);
} }
else {
console.log("doing /sd raw last"); try {
generatePicture('sd', 'raw_last', `${characterName} said: ${messageText}`, saveGeneratedImage); setBusyIcon(true);
if (hasSavedImage) {
const prompt = message?.extra?.title;
console.log('Regenerating an image, using existing prompt:', prompt);
await sendGenerationRequest(prompt, saveGeneratedImage);
}
else {
console.log("doing /sd raw last");
await generatePicture('sd', 'raw_last', `${characterName} said: ${messageText}`, saveGeneratedImage);
}
}
catch (error) {
console.error('Could not generate inline image: ', error);
}
finally {
setBusyIcon(false);
} }
function saveGeneratedImage(prompt, image) { function saveGeneratedImage(prompt, image) {
@ -689,7 +710,7 @@ jQuery(async () => {
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<small><i>Use slash commands or the bottom Paintbrush buttron to generate images. Type <span class="monospace">/help</span> in chat for more details</i></small> <small><i>Use slash commands or the bottom Paintbrush button to generate images. Type <span class="monospace">/help</span> in chat for more details</i></small>
<br> <br>
<small><i>Hint: Save an API key in Horde KoboldAI API settings to use it here.</i></small> <small><i>Hint: Save an API key in Horde KoboldAI API settings to use it here.</i></small>
<div class="flex-container flexGap5 marginTop10 margin-bot-10px"> <div class="flex-container flexGap5 marginTop10 margin-bot-10px">