Only remove whole word arts/dets in SD interactive prompts When matching FACE assume that the determiner has been removed Test cases: - send a photo of yourself - send a pic of your car - send a photo of your selfie - draw a picture of antelopes - render an image of Thebes - send a drawing of Skeletor's face

ce3fb2e9415fe912be4611b2b68efecc7064b70b

ceruleandeep <deep@cerulean.navy>

1 files changed, +6 -4Ignore whitespace
public/scripts/extensions/stable-diffusion/index.js+6 -4
@@ -118,13 +118,13 @@ const triggerWords = {
118};118};
119119
120const messageTrigger = {120const messageTrigger = {
121 activationRegex: /\b(send|mail|imagine|generate|make|create|draw|paint|render|show)\b.{0,10}\b(pic|picture|image|drawing|painting|photo|photograph)\b(?:\s+of)?(?:\s+(?:a|an|the|this|that|those|your)?)?(.+)/i,121 activationRegex: /\b(send|mail|imagine|generate|make|create|draw|paint|render|show)\b.{0,10}\b(pic|picture|image|drawing|painting|photo|photograph)\b(?:\s+of)?(?:\s+(?:a|an|the|this|that|those|your)?\s+)?(.+)/i,
122 specialCases: {122 specialCases: {
123 [generationMode.CHARACTER]: ['you', 'yourself'],123 [generationMode.CHARACTER]: ['you', 'yourself'],
124 [generationMode.USER]: ['me', 'myself'],124 [generationMode.USER]: ['me', 'myself'],
125 [generationMode.SCENARIO]: ['story', 'scenario', 'whole story'],125 [generationMode.SCENARIO]: ['story', 'scenario', 'whole story'],
126 [generationMode.NOW]: ['last message'],126 [generationMode.NOW]: ['last message'],
127 [generationMode.FACE]: ['your face', 'your portrait', 'your selfie'],127 [generationMode.FACE]: ['face', 'portrait', 'selfie'],
128 [generationMode.BACKGROUND]: ['background', 'scene background', 'scene', 'scenery', 'surroundings', 'environment'],128 [generationMode.BACKGROUND]: ['background', 'scene background', 'scene', 'scenery', 'surroundings', 'environment'],
129 },129 },
130};130};
@@ -343,7 +343,7 @@ function processTriggers(chat, _, abort) {
343 return;343 return;
344 }344 }
345345
346 console.log(`SD: Triggered by "${message}", detected subject: ${subject}"`);346 console.log(`SD: Triggered by "${message}", detected subject: "${subject}"`);
347347
348 outer: for (const [specialMode, triggers] of Object.entries(messageTrigger.specialCases)) {348 outer: for (const [specialMode, triggers] of Object.entries(messageTrigger.specialCases)) {
349 for (const trigger of triggers) {349 for (const trigger of triggers) {
@@ -2379,7 +2379,9 @@ async function generatePicture(initiator, args, trigger, message, callback) {
23792379
2380 trigger = trigger.trim();2380 trigger = trigger.trim();
2381 const generationType = getGenerationType(trigger);2381 const generationType = getGenerationType(trigger);
2382 console.log('Generation mode', generationType, 'triggered with', trigger);2382 const generationTypeKey = Object.keys(generationMode).find(key => generationMode[key] === generationType);
2383 console.log(`Generation mode ${generationTypeKey} triggered with "${trigger}"`);
2384
2383 const quietPrompt = getQuietPrompt(generationType, trigger);2385 const quietPrompt = getQuietPrompt(generationType, trigger);
2384 const context = getContext();2386 const context = getContext();
23852387