mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Busy icon for inline SD gens
This commit is contained in:
@ -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">
|
||||||
|
Reference in New Issue
Block a user