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
| @@ -118,13 +118,13 @@ const triggerWords = { | |||
| 118 | }; | 118 | }; |
| 119 | 119 | ||
| 120 | const messageTrigger = { | 120 | const 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 | } |
| 345 | 345 | ||
| 346 | console.log(`SD: Triggered by "${message}", detected subject: ${subject}"`); | 346 | console.log(`SD: Triggered by "${message}", detected subject: "${subject}"`); |
| 347 | 347 | ||
| 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) { | |||
| 2379 | 2379 | ||
| 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(); |
| 2385 | 2387 | ||