Add Extension Hook for Stable Diffusion Prompt Processing (#4167) * Update index.js * Update index.js * Update script.js * Use a named constant in event emit --------- Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>

0a136cbb2ae5b202643b7a8b5a8a859a015a598b

coffeegrind123 <103264516+coffeegrind123@users.noreply.github.com>

Signed
2 files changed, +7 -1Ignore whitespace
public/script.js+1 -0
@@ -496,6 +496,7 @@ export const event_types = {
496496 GENERATION_STARTED: 'generation_started',
497497 GENERATION_STOPPED: 'generation_stopped',
498498 GENERATION_ENDED: 'generation_ended',
499+ SD_PROMPT_PROCESSING: 'sd_prompt_processing',
499500 EXTENSIONS_FIRST_LOAD: 'extensions_first_load',
500501 EXTENSION_SETTINGS_LOADED: 'extension_settings_loaded',
501502 SETTINGS_LOADED: 'settings_loaded',
public/scripts/extensions/stable-diffusion/index.js+6 -1
@@ -2468,9 +2468,14 @@ async function generatePicture(initiator, args, trigger, message, callback) {
24682468 const combineNegatives = (prefix) => { negativePromptPrefix = combinePrefixes(negativePromptPrefix, prefix); };
24692469
24702470 // generate the text prompt for the image
24712471 constlet prompt = await getPrompt(generationType, message, trigger, quietPrompt, combineNegatives);
24722472 console.log('Processed image prompt:', prompt);
24732473
2474+ // Extension hook for prompt processing
2475+ const eventData = { prompt, generationType, message, trigger };
2476+ await eventSource.emit(event_types.SD_PROMPT_PROCESSING, eventData);
2477+ prompt = eventData.prompt; // Allow extensions to modify the prompt
2478+
24742479 $(stopButton).show();
24752480 eventSource.once(CUSTOM_STOP_EVENT, stopListener);
24762481