From d088a182162b888510f55c6b20bd23872564c859 Mon Sep 17 00:00:00 2001 From: liz <liz.delizious@gmail.com> Date: Sat, 30 Mar 2024 14:31:49 +1300 Subject: [PATCH] allow expression overrides from rules assistant --- devTools/types/FC/RA.d.ts | 2 ++ src/js/DefaultRules.js | 16 ++++++++++++++++ src/js/rulesAssistant.js | 2 ++ src/js/rulesAssistantOptions.js | 18 ++++++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/devTools/types/FC/RA.d.ts b/devTools/types/FC/RA.d.ts index 8c7e433207d..d4070eacddc 100644 --- a/devTools/types/FC/RA.d.ts +++ b/devTools/types/FC/RA.d.ts @@ -218,6 +218,8 @@ declare namespace FC { choosesOwnClothes: 0 | 1; pronoun: number; posePrompt: string; + expressionPositivePrompt: string; + expressionNegativePrompt: string; positivePrompt: string; negativePrompt: string; overridePrompts: boolean; diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index dd3fcec25fe..fe073d4400b 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -3318,6 +3318,22 @@ globalThis.DefaultRules = function(slave) { } } + // custom expression positive prompt + if (rule.expressionPositivePrompt != null && rule.expressionPositivePrompt !== '') { + if (slave.custom.aiPrompts.expressionPositive !== rule.expressionPositivePrompt) { + slave.custom.aiPrompts.expressionPositive = rule.expressionPositivePrompt; + message(`${slave.slaveName} has had ${his} positive expression prompt set.`, sourceRecord.expressionPositivePromptPrompt); + } + } + + // custom expression negative prompt + if (rule.expressionNegativePrompt != null && rule.expressionNegativePrompt !== '') { + if (slave.custom.aiPrompts.expressionNegative !== rule.expressionNegativePrompt) { + slave.custom.aiPrompts.expressionNegative = rule.expressionNegativePrompt; + message(`${slave.slaveName} has had ${his} negative expression prompt set.`, sourceRecord.expressionNegativePromptPrompt); + } + } + // custom positive prompts if (rule.positivePrompt != null && rule.positivePrompt !== '') { assignPrompts("positive"); diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js index 99b90cde54d..30a93a68ced 100644 --- a/src/js/rulesAssistant.js +++ b/src/js/rulesAssistant.js @@ -301,6 +301,8 @@ App.RA.newRule = function() { labelTagsClear: null, pronoun: null, posePrompt: null, + expressionPositivePrompt: null, + expressionNegativePrompt: null, positivePrompt: null, negativePrompt: null, overridePrompts: null, diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index f000b6149fb..9f0f3b993b7 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1560,6 +1560,8 @@ App.RA.options = (function() { } if (V.imageChoice === 6) { // If using AI generated images this.appendChild(new OverridePosePrompt()); + this.appendChild(new OverrideExpressionPositivePrompt()); + this.appendChild(new OverrideExpressionNegativePrompt()); this.appendChild(new OverridePromptSwitch()); this.appendChild(new AddCustomPosPrompt()); this.appendChild(new AddCustomNegPrompt()); @@ -4236,6 +4238,22 @@ App.RA.options = (function() { } } + class OverrideExpressionPositivePrompt extends StringEditor { + constructor() { + super("Override positive expression prompt", [], true, false); + this.setValue(current_rule.set.expressionPositivePrompt); + this.onchange = (value) => current_rule.set.expressionPositivePrompt = value; + } + } + + class OverrideExpressionNegativePrompt extends StringEditor { + constructor() { + super("Override negative expression prompt", [], true, false); + this.setValue(current_rule.set.expressionNegativePrompt); + this.onchange = (value) => current_rule.set.expressionNegativePrompt = value; + } + } + class AddCustomPosPrompt extends StringEditor { constructor() { super("Add custom positive prompt(s) to slave", [], true, false); -- GitLab