aboutsummaryrefslogtreecommitdiffstats
path: root/javascript
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-09-30 06:49:37 +0000
committerGitHub <noreply@github.com>2023-09-30 06:49:37 +0000
commitfcfe5c179b56abb3d43783dd1b7bd6689d2320ad (patch)
tree434173595e5b74d183ef386b868e939a864b9beb /javascript
parenta0e979badba4eb64ae75ad8fdd1cecf7caa979ff (diff)
parent26d0d87f5b05c345abfec8eb0f8bd703cacd9619 (diff)
downloadstable-diffusion-webui-gfx803-fcfe5c179b56abb3d43783dd1b7bd6689d2320ad.tar.gz
stable-diffusion-webui-gfx803-fcfe5c179b56abb3d43783dd1b7bd6689d2320ad.tar.bz2
stable-diffusion-webui-gfx803-fcfe5c179b56abb3d43783dd1b7bd6689d2320ad.zip
Merge pull request #12877 from zixaphir/removeExtraNetworksFromPrompt_fix
account for customizable extra network separators in remove code
Diffstat (limited to 'javascript')
-rw-r--r--javascript/extraNetworks.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/javascript/extraNetworks.js b/javascript/extraNetworks.js
index e927346c..9cd80961 100644
--- a/javascript/extraNetworks.js
+++ b/javascript/extraNetworks.js
@@ -140,14 +140,15 @@ function setupExtraNetworks() {
onUiLoaded(setupExtraNetworks);
-var re_extranet = /<([^:]+:[^:]+):[\d.]+>(.*)/;
-var re_extranet_g = /\s+<([^:]+:[^:]+):[\d.]+>/g;
+var re_extranet = /<([^:^>]+:[^:]+):[\d.]+>(.*)/;
+var re_extranet_g = /<([^:^>]+:[^:]+):[\d.]+>/g;
function tryToRemoveExtraNetworkFromPrompt(textarea, text) {
var m = text.match(re_extranet);
var replaced = false;
var newTextareaText;
if (m) {
+ var extraTextBeforeNet = opts.extra_networks_add_text_separator;
var extraTextAfterNet = m[2];
var partToSearch = m[1];
var foundAtPosition = -1;
@@ -161,8 +162,13 @@ function tryToRemoveExtraNetworkFromPrompt(textarea, text) {
return found;
});
- if (foundAtPosition >= 0 && newTextareaText.substr(foundAtPosition, extraTextAfterNet.length) == extraTextAfterNet) {
- newTextareaText = newTextareaText.substr(0, foundAtPosition) + newTextareaText.substr(foundAtPosition + extraTextAfterNet.length);
+ if (foundAtPosition >= 0) {
+ if (newTextareaText.substr(foundAtPosition, extraTextAfterNet.length) == extraTextAfterNet) {
+ newTextareaText = newTextareaText.substr(0, foundAtPosition) + newTextareaText.substr(foundAtPosition + extraTextAfterNet.length);
+ }
+ if (newTextareaText.substr(foundAtPosition - extraTextBeforeNet.length, extraTextBeforeNet.length) == extraTextBeforeNet) {
+ newTextareaText = newTextareaText.substr(0, foundAtPosition - extraTextBeforeNet.length) + newTextareaText.substr(foundAtPosition);
+ }
}
} else {
newTextareaText = textarea.value.replaceAll(new RegExp(text, "g"), function(found) {