mirror of
https://github.com/Physton/sd-webui-prompt-all-in-one.git
synced 2026-05-01 11:41:46 +00:00
Former-commit-id: 7625855e8c92fcfcb866760ae3e1626710be613a
This commit is contained in:
@@ -1 +1 @@
|
||||
0f083ee539181ea6fb8040ef582754de0ce79b19
|
||||
9dc494cdf61d0a08d80b3a70ab36e37b0bce928e
|
||||
@@ -1 +1 @@
|
||||
f2633554127bc4e3bc34d7bdbc4c0a90c66fdf6c
|
||||
e80e9d025b8fca2da7fee65df5b9bc95e0f0f1ac
|
||||
@@ -1 +1 @@
|
||||
16c40c887c81266e2766e0dc90fbc6a3c46bf906
|
||||
a251853a9a60e36df77c40141c839a0d4b2fc01b
|
||||
@@ -17,51 +17,82 @@ export default (tags) => {
|
||||
'<': '>',
|
||||
'{': '}'
|
||||
}
|
||||
const bracketRegexes = [
|
||||
/\(([^\)]+)\)/g, // 括号
|
||||
/\[([^\]]+)\]/g, // 中括号
|
||||
/<([^\>]+)>/g, // 尖括号
|
||||
/\{([^\}]+)\}/g, // 大括号
|
||||
]
|
||||
const replaceComma = '----====physton====----'
|
||||
const bracketStarts = Object.keys(brackets)
|
||||
|
||||
// 先把最内层括号中的,替换成----====physton====----
|
||||
bracketRegexes.forEach(regx => {
|
||||
tags = tags.replace(regx, (match, p1) => {
|
||||
return match.replace(p1, p1.replace(/,/g, replaceComma))
|
||||
})
|
||||
})
|
||||
let list = []
|
||||
let lines = tags.split('\n')
|
||||
const linesCount = lines.length
|
||||
lines = lines.map((line, index) => {
|
||||
line = line.trim()
|
||||
if (line === "") return
|
||||
line.split(",").forEach(tag => {
|
||||
tag = tag.trim()
|
||||
if (tag === "") return
|
||||
// 把----====physton====----替换回来
|
||||
// 本行内的括号是否对齐,如果没对齐,不要加逗号,对齐了加逗号
|
||||
/*let isAlign = false
|
||||
for (let start in brackets) {
|
||||
let startCount = tag.split(start).length - 1
|
||||
let endCount = tag.split(brackets[start]).length - 1
|
||||
if (startCount === endCount) {
|
||||
isAlign = true
|
||||
break
|
||||
let length = tags.length
|
||||
let temp = ''
|
||||
let startBracketChar = ''
|
||||
let endBracketChar = ''
|
||||
let bracketCount = 0
|
||||
let result = []
|
||||
for (let i = 0; i < length; i++) {
|
||||
const char = tags[i]
|
||||
if (char === "\n") {
|
||||
if (startBracketChar === '') {
|
||||
// 前面没有括号
|
||||
if (temp.trim() !== "") {
|
||||
result.push(temp.trim())
|
||||
}
|
||||
}*/
|
||||
tag = tag.replace(new RegExp(replaceComma, 'g'), ',')
|
||||
/*if (isAlign) {
|
||||
// tag += ','
|
||||
}*/
|
||||
list.push(tag)
|
||||
})
|
||||
if (index < linesCount - 1) {
|
||||
list.push('\n')
|
||||
result.push("\n")
|
||||
bracketCount = 0
|
||||
startBracketChar = ''
|
||||
endBracketChar = ''
|
||||
temp = ''
|
||||
} else {
|
||||
// 前面有括号
|
||||
temp += ' '
|
||||
}
|
||||
} else if (char === ",") {
|
||||
if (startBracketChar === '') {
|
||||
// 前面没有括号
|
||||
result.push(temp.trim())
|
||||
bracketCount = 0
|
||||
startBracketChar = ''
|
||||
endBracketChar = ''
|
||||
temp = ''
|
||||
} else {
|
||||
// 前面有括号
|
||||
temp += char
|
||||
}
|
||||
} else {
|
||||
if (startBracketChar === '') {
|
||||
// 前面没有括号
|
||||
if (bracketStarts.includes(char)) {
|
||||
// 括号开始
|
||||
bracketCount = 1
|
||||
startBracketChar = char
|
||||
endBracketChar = brackets[char]
|
||||
temp += char
|
||||
} else {
|
||||
temp += char
|
||||
}
|
||||
} else {
|
||||
// 前面有括号
|
||||
if (char === endBracketChar) {
|
||||
// 是结束括号的标识,减掉括号计数
|
||||
bracketCount--
|
||||
if (bracketCount === 0) {
|
||||
// 括号计数为0,括号结束
|
||||
startBracketChar = ''
|
||||
endBracketChar = ''
|
||||
temp += char
|
||||
} else {
|
||||
temp += char
|
||||
}
|
||||
} else if (char === startBracketChar) {
|
||||
// 是开始括号的标识,加上括号计数
|
||||
bracketCount++
|
||||
temp += char
|
||||
} else {
|
||||
temp += char
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
return list
|
||||
}
|
||||
if (temp !== '') {
|
||||
result.push(temp.trim())
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user