mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Regenerate SD messages
This commit is contained in:
@ -383,11 +383,7 @@ async function generatePicture(_, trigger, message, callback) {
|
|||||||
|
|
||||||
console.log('Processed Stable Diffusion prompt:', prompt);
|
console.log('Processed Stable Diffusion prompt:', prompt);
|
||||||
|
|
||||||
if (extension_settings.sd.horde) {
|
await sendGenerationRequest(prompt, callback);
|
||||||
await generateHordeImage(prompt, callback);
|
|
||||||
} else {
|
|
||||||
await generateExtrasImage(prompt, callback);
|
|
||||||
}
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.trace(err);
|
console.trace(err);
|
||||||
throw new Error('SD prompt text generation failed.')
|
throw new Error('SD prompt text generation failed.')
|
||||||
@ -398,6 +394,14 @@ async function generatePicture(_, trigger, message, callback) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function sendGenerationRequest(prompt, callback) {
|
||||||
|
if (extension_settings.sd.horde) {
|
||||||
|
await generateHordeImage(prompt, callback);
|
||||||
|
} else {
|
||||||
|
await generateExtrasImage(prompt, callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function generateExtrasImage(prompt, callback) {
|
async function generateExtrasImage(prompt, callback) {
|
||||||
const url = new URL(getApiUrl());
|
const url = new URL(getApiUrl());
|
||||||
url.pathname = '/api/image';
|
url.pathname = '/api/image';
|
||||||
@ -547,24 +551,32 @@ addSDGenButtons();
|
|||||||
setInterval(moduleWorker, UPDATE_INTERVAL);
|
setInterval(moduleWorker, UPDATE_INTERVAL);
|
||||||
|
|
||||||
function sdMessageButton(e) {
|
function sdMessageButton(e) {
|
||||||
|
const context = getContext();
|
||||||
const $mes = $(e.currentTarget).closest('.mes');
|
const $mes = $(e.currentTarget).closest('.mes');
|
||||||
const character = $mes.find('.name_text').text(),
|
const characterName = $mes.find('.name_text').text();
|
||||||
message = $mes.find('.mes_text').text();
|
const messageText = $mes.find('.mes_text').text();
|
||||||
|
const message_id = $mes.attr('mesid');
|
||||||
|
const message = context.chat[message_id];
|
||||||
|
const hasSavedImage = message?.extra?.image && message?.extra?.title;
|
||||||
|
|
||||||
console.log("doing /sd raw last");
|
if (hasSavedImage) {
|
||||||
generatePicture('sd', 'raw_last', `${character} said: ${message}`, saveGeneratedImage);
|
const prompt = message?.extra?.title;
|
||||||
|
console.log('Regenerating an image, using existing prompt:', prompt);
|
||||||
|
sendGenerationRequest(prompt, saveGeneratedImage);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("doing /sd raw last");
|
||||||
|
generatePicture('sd', 'raw_last', `${characterName} said: ${messageText}`, saveGeneratedImage);
|
||||||
|
}
|
||||||
|
|
||||||
function saveGeneratedImage(prompt, image) {
|
function saveGeneratedImage(prompt, image) {
|
||||||
const context = getContext();
|
|
||||||
const message_id = $mes.attr('mesid');
|
|
||||||
const message = context.chat[message_id];
|
|
||||||
|
|
||||||
// Some message sources may not create the extra object
|
// Some message sources may not create the extra object
|
||||||
if (typeof message.extra !== 'object') {
|
if (typeof message.extra !== 'object') {
|
||||||
message.extra = {};
|
message.extra = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
message.extra.inline_image = true;
|
// If already contains an image and it's not inline - leave it as is
|
||||||
|
message.extra.inline_image = message.extra.image && !message.extra.inline_image ? false : true;
|
||||||
message.extra.image = image;
|
message.extra.image = image;
|
||||||
message.extra.title = prompt;
|
message.extra.title = prompt;
|
||||||
appendImageToMessage(message, $mes);
|
appendImageToMessage(message, $mes);
|
||||||
|
@ -3337,7 +3337,7 @@ a {
|
|||||||
display: none;
|
display: none;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 0.75em;
|
padding: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mes_img_controls .right_menu_button {
|
.mes_img_controls .right_menu_button {
|
||||||
|
Reference in New Issue
Block a user