parent
bc407650dc
commit
80f5618024
130
i18n.json
130
i18n.json
|
|
@ -140,7 +140,15 @@
|
|||
"tags-copyright": "提示词整合来源 路过银河(知乎)、未知作者(Google Drive)、互联网等等,感谢这些作者的无私奉献!",
|
||||
"reset_default_color": "重置为默认颜色",
|
||||
"clear_color": "清除颜色",
|
||||
"tags_color": "标签颜色"
|
||||
"tags_color": "标签颜色",
|
||||
"keywords_blacklist": "关键词黑名单",
|
||||
"blacklist_desc": "设置为黑名单的关键词,将被插件自动过滤!",
|
||||
"prompt_blacklist_list": "提示词 黑名单列表",
|
||||
"negative_prompt_blacklist_list": "反向提示词 黑名单列表",
|
||||
"lora_blacklist_list": "Lora 黑名单列表",
|
||||
"lycoris_blacklist_list": "Lycoris 黑名单列表",
|
||||
"embedding_blacklist_list": "Embedding 黑名单列表",
|
||||
"one_keyword_per_line": "每行一个关键词"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -282,7 +290,15 @@
|
|||
"tags-copyright": "提示詞整合來源 路过银河(知乎)、未知作者(Google Drive)、互聯網等等,感謝這些作者的無私奉獻!",
|
||||
"reset_default_color": "重置為預設顏色",
|
||||
"clear_color": "清除顏色",
|
||||
"tags_color": "標籤顏色"
|
||||
"tags_color": "標籤顏色",
|
||||
"keywords_blacklist": "關鍵詞黑名單",
|
||||
"blacklist_desc": "設置為黑名單的關鍵詞,將被插件自動過濾!",
|
||||
"prompt_blacklist_list": "提示詞 黑名單列表",
|
||||
"negative_prompt_blacklist_list": "反向提示詞 黑名單列表",
|
||||
"lora_blacklist_list": "Lora 黑名單列表",
|
||||
"lycoris_blacklist_list": "Lycoris 黑名單列表",
|
||||
"embedding_blacklist_list": "Embedding 黑名單列表",
|
||||
"one_keyword_per_line": "每行一個關鍵詞"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -424,7 +440,15 @@
|
|||
"tags-copyright": "提示詞整合來源 路过银河(知乎)、未知作者(Google Drive)、互聯網等等,感謝這些作者的無私奉獻!",
|
||||
"reset_default_color": "重置為預設顏色",
|
||||
"clear_color": "清除顏色",
|
||||
"tags_color": "標籤顏色"
|
||||
"tags_color": "標籤顏色",
|
||||
"keywords_blacklist": "關鍵字黑名單",
|
||||
"blacklist_desc": "設定為黑名單的關鍵字將被插件自動過濾!",
|
||||
"prompt_blacklist_list": "提示詞 黑名單清單",
|
||||
"negative_prompt_blacklist_list": "反向提示詞 黑名單清單",
|
||||
"lora_blacklist_list": "Lora 黑名單清單",
|
||||
"lycoris_blacklist_list": "Lycoris 黑名單清單",
|
||||
"embedding_blacklist_list": "Embedding 黑名單清單",
|
||||
"one_keyword_per_line": "每行一個關鍵字"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -566,7 +590,15 @@
|
|||
"tags-copyright": "Prompt words integration source from 路过银河(Zhihu)、unknown author(Google Drive)、internet, etc. Thanks to these selfless contributors!",
|
||||
"reset_default_color": "Reset to Default Color",
|
||||
"clear_color": "Clear Color",
|
||||
"tags_color": "Tags Color"
|
||||
"tags_color": "Tags Color",
|
||||
"keywords_blacklist": "Keywords Blacklist",
|
||||
"blacklist_desc": "Keywords set as blacklist will be automatically filtered by the plugin!",
|
||||
"prompt_blacklist_list": "Prompt Blacklist List",
|
||||
"negative_prompt_blacklist_list": "Negative Prompt Blacklist List",
|
||||
"lora_blacklist_list": "Lora Blacklist",
|
||||
"lycoris_blacklist_list": "Lycoris Blacklist",
|
||||
"embedding_blacklist_list": "Embedding Blacklist",
|
||||
"one_keyword_per_line": "One keyword per line"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -719,7 +751,15 @@
|
|||
"tags-copyright": "مصدر دمج كلمات التلميح من 路过银河(Zhihu)، مؤلف غير معروف (جوجل درايف)، الإنترنت، وما إلى ذلك. شكرًا لهؤلاء المساهمين الذين يعملون بلا مقابل!",
|
||||
"reset_default_color": "إعادة تعيين اللون الافتراضي",
|
||||
"clear_color": "مسح اللون",
|
||||
"tags_color": "لون العلامات"
|
||||
"tags_color": "لون العلامات",
|
||||
"keywords_blacklist": "قائمة الكلمات الرئيسية المحظورة",
|
||||
"blacklist_desc": "تُعد الكلمات المحظورة المُعينة كقائمة سوداء ستتم تصفيتها تلقائيًا بواسطة المكوِّن الإضافي!",
|
||||
"prompt_blacklist_list": "قائمة الكلمات المحظورة للتلميح",
|
||||
"negative_prompt_blacklist_list": "قائمة الكلمات المحظورة للتلميح السلبي",
|
||||
"lora_blacklist_list": "قائمة Lora السوداء",
|
||||
"lycoris_blacklist_list": "قائمة Lycoris السوداء",
|
||||
"embedding_blacklist_list": "قائمة Embedding السوداء",
|
||||
"one_keyword_per_line": "كلمة رئيسية واحدة في كل سطر"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -960,7 +1000,15 @@
|
|||
"tags-copyright": "Source d'intégration des mots d'invite provenant de 路过银河(Zhihu)、auteur inconnu(Google Drive)、internet, etc. Merci à ces contributeurs altruistes !",
|
||||
"reset_default_color": "Réinitialiser la couleur par défaut",
|
||||
"clear_color": "Effacer la couleur",
|
||||
"tags_color": "Couleur des étiquettes"
|
||||
"tags_color": "Couleur des étiquettes",
|
||||
"keywords_blacklist": "Liste noire des mots-clés",
|
||||
"blacklist_desc": "Les mots-clés définis dans la liste noire seront automatiquement filtrés par le plugin !",
|
||||
"prompt_blacklist_list": "Liste de mots d'invite interdits",
|
||||
"negative_prompt_blacklist_list": "Liste négative de mots d'invite interdits",
|
||||
"lora_blacklist_list": "Liste noire Lora",
|
||||
"lycoris_blacklist_list": "Liste noire Lycoris",
|
||||
"embedding_blacklist_list": "Liste noire d'embedding",
|
||||
"one_keyword_per_line": "Un mot-clé par ligne"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1116,7 +1164,15 @@
|
|||
"tags-copyright": "Quelle für die Integration von Hinweiswörtern von 路过银河(Zhihu)、unbekannter Autor(Google Drive)、Internet usw. Vielen Dank an diese selbstlosen Beitragenden!",
|
||||
"reset_default_color": "Auf Standardfarbe zurücksetzen",
|
||||
"clear_color": "Farbe löschen",
|
||||
"tags_color": "Tag-Farbe"
|
||||
"tags_color": "Tag-Farbe",
|
||||
"keywords_blacklist": "Schwarze Liste der Schlüsselwörter",
|
||||
"blacklist_desc": "Schlüsselwörter, die als schwarze Liste festgelegt sind, werden automatisch vom Plugin gefiltert!",
|
||||
"prompt_blacklist_list": "Liste der gesperrten Eingabeaufforderungen",
|
||||
"negative_prompt_blacklist_list": "Liste der negativen gesperrten Eingabeaufforderungen",
|
||||
"lora_blacklist_list": "Schwarze Liste Lora",
|
||||
"lycoris_blacklist_list": "Schwarze Liste Lycoris",
|
||||
"embedding_blacklist_list": "Schwarze Liste der Einbettung",
|
||||
"one_keyword_per_line": "Ein Schlüsselwort pro Zeile"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1322,7 +1378,15 @@
|
|||
"tags-copyright": "Fonte di integrazione delle parole di suggerimento da 路过银河(Zhihu)、autore sconosciuto(Google Drive)、internet, ecc. Grazie a questi generosi contributori!",
|
||||
"reset_default_color": "Ripristina colore predefinito",
|
||||
"clear_color": "Cancella colore",
|
||||
"tags_color": "Colore dei tag"
|
||||
"tags_color": "Colore dei tag",
|
||||
"keywords_blacklist": "Elenco nero delle parole chiave",
|
||||
"blacklist_desc": "Le parole chiave impostate come elenco nero saranno automaticamente filtrate dal plugin!",
|
||||
"prompt_blacklist_list": "Elenco delle parole chiave non consentite",
|
||||
"negative_prompt_blacklist_list": "Elenco delle parole chiave negative non consentite",
|
||||
"lora_blacklist_list": "Elenco nero di Lora",
|
||||
"lycoris_blacklist_list": "Elenco nero di Lycoris",
|
||||
"embedding_blacklist_list": "Elenco nero dell'embedding",
|
||||
"one_keyword_per_line": "Una parola chiave per riga"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1463,7 +1527,15 @@
|
|||
"tags-copyright": "プロンプトの単語統合元 路过银河(Zhihu)、不明な作者(Google Drive)、インターネットなど、これらの無私の貢献者に感謝します!",
|
||||
"reset_default_color": "デフォルトの色にリセット",
|
||||
"clear_color": "色をクリア",
|
||||
"tags_color": "タグの色"
|
||||
"tags_color": "タグの色",
|
||||
"keywords_blacklist": "キーワードのブラックリスト",
|
||||
"blacklist_desc": "ブラックリストに設定されたキーワードは、プラグインによって自動的にフィルタリングされます!",
|
||||
"prompt_blacklist_list": "プロンプトのブラックリストリスト",
|
||||
"negative_prompt_blacklist_list": "ネガティブプロンプトのブラックリストリスト",
|
||||
"lora_blacklist_list": "Loraのブラックリスト",
|
||||
"lycoris_blacklist_list": "Lycorisのブラックリスト",
|
||||
"embedding_blacklist_list": "Embeddingのブラックリスト",
|
||||
"one_keyword_per_line": "1行に1つのキーワード"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1629,7 +1701,15 @@
|
|||
"tags-copyright": "프롬프트 단어 통합 출처: 路过银河(Zhihu)、알 수 없는 작성자(Google Drive)、인터넷 등. 이러한 무비한 기여자들에게 감사드립니다!",
|
||||
"reset_default_color": "기본 색상으로 재설정",
|
||||
"clear_color": "색상 지우기",
|
||||
"tags_color": "태그 색상"
|
||||
"tags_color": "태그 색상",
|
||||
"keywords_blacklist": "키워드 블랙리스트",
|
||||
"blacklist_desc": "블랙리스트로 설정된 키워드는 플러그인에 의해 자동으로 필터링됩니다!",
|
||||
"prompt_blacklist_list": "프롬프트 블랙리스트 목록",
|
||||
"negative_prompt_blacklist_list": "부정적인 프롬프트 블랙리스트 목록",
|
||||
"lora_blacklist_list": "Lora 블랙리스트",
|
||||
"lycoris_blacklist_list": "Lycoris 블랙리스트",
|
||||
"embedding_blacklist_list": "Embedding 블랙리스트",
|
||||
"one_keyword_per_line": "한 줄에 하나의 키워드"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -1885,7 +1965,15 @@
|
|||
"tags-copyright": "Fonte de integração de palavras-chave de 路过银河(Zhihu)、autor desconhecido(Google Drive)、internet, etc. Obrigado a esses contribuidores altruístas!",
|
||||
"reset_default_color": "Redefinir para cor padrão",
|
||||
"clear_color": "Limpar cor",
|
||||
"tags_color": "Cor das tags"
|
||||
"tags_color": "Cor das tags",
|
||||
"keywords_blacklist": "Lista negra de palavras-chave",
|
||||
"blacklist_desc": "As palavras-chave definidas como lista negra serão automaticamente filtradas pelo plugin!",
|
||||
"prompt_blacklist_list": "Lista de palavras-chave proibidas",
|
||||
"negative_prompt_blacklist_list": "Lista negativa de palavras-chave proibidas",
|
||||
"lora_blacklist_list": "Lista negra de Lora",
|
||||
"lycoris_blacklist_list": "Lista negra de Lycoris",
|
||||
"embedding_blacklist_list": "Lista negra de Embedding",
|
||||
"one_keyword_per_line": "Uma palavra-chave por linha"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -2041,7 +2129,15 @@
|
|||
"tags-copyright": "Источник интеграции ключевых слов от 路过银河(Zhihu)、неизвестный автор(Google Drive)、интернет и т.д. Благодарим этих бескорыстных участников!",
|
||||
"reset_default_color": "Сбросить настройки цвета",
|
||||
"clear_color": "Очистить цвет",
|
||||
"tags_color": "Цвет тегов"
|
||||
"tags_color": "Цвет тегов",
|
||||
"keywords_blacklist": "Черный список ключевых слов",
|
||||
"blacklist_desc": "Ключевые слова, установленные в черный список, будут автоматически фильтроваться плагином!",
|
||||
"prompt_blacklist_list": "Список запрещенных ключевых слов",
|
||||
"negative_prompt_blacklist_list": "Список запрещенных отрицательных ключевых слов",
|
||||
"lora_blacklist_list": "Черный список Lora",
|
||||
"lycoris_blacklist_list": "Черный список Lycoris",
|
||||
"embedding_blacklist_list": "Черный список Embedding",
|
||||
"one_keyword_per_line": "Одно ключевое слово на строку"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -2212,7 +2308,15 @@
|
|||
"tags-copyright": "Fuente de integración de palabras clave de 路过银河(Zhihu)、autor desconocido(Google Drive)、internet, etc. ¡Gracias a estos generosos colaboradores!",
|
||||
"reset_default_color": "Restablecer a color predeterminado",
|
||||
"clear_color": "Borrar color",
|
||||
"tags_color": "Color de las etiquetas"
|
||||
"tags_color": "Color de las etiquetas",
|
||||
"keywords_blacklist": "Lista negra de palabras clave",
|
||||
"blacklist_desc": "¡Las palabras clave establecidas como lista negra serán filtradas automáticamente por el complemento!",
|
||||
"prompt_blacklist_list": "Lista negra de palabras clave de la sugerencia",
|
||||
"negative_prompt_blacklist_list": "Lista negra de palabras clave negativas de la sugerencia",
|
||||
"lora_blacklist_list": "Lista negra de Lora",
|
||||
"lycoris_blacklist_list": "Lista negra de Lycoris",
|
||||
"embedding_blacklist_list": "Lista negra de Embedding",
|
||||
"one_keyword_per_line": "Una palabra clave por línea"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -29,6 +29,7 @@
|
|||
:translate-api-config="translateApiConfig"
|
||||
@click:translate-api="onTranslateApiClick"
|
||||
@click:prompt-format="onPromptFormatClick"
|
||||
@click:blacklist="onBlacklistClick"
|
||||
v-model:tag-complete-file="tagCompleteFile"
|
||||
v-model:only-csv-on-auto="onlyCsvOnAuto"
|
||||
@click:select-language="onSelectLanguageClick"
|
||||
|
|
@ -48,6 +49,7 @@
|
|||
:hide-group-tags="item.hideGroupTags"
|
||||
v-model:group-tags-color="groupTagsColor"
|
||||
@update:hide-group-tags="onUpdateHideGroupTags(item.id, $event)"
|
||||
:blacklist="blacklist"
|
||||
></physton-prompt>
|
||||
</template>
|
||||
<translate-setting ref="translateSetting" v-model:language-code="languageCode"
|
||||
|
|
@ -71,6 +73,10 @@
|
|||
v-model:auto-keep-weight-one="autoKeepWeightOne"
|
||||
v-model:auto-break-before-wrap="autoBreakBeforeWrap"
|
||||
v-model:auto-break-after-wrap="autoBreakAfterWrap"></prompt-format>
|
||||
<blacklist ref="blacklist" v-model:language-code="languageCode"
|
||||
:translate-apis="translateApis"
|
||||
:languages="languages"
|
||||
@update:blacklist="onUpdateBlacklist"></blacklist>
|
||||
<history ref="history" v-model:language-code="languageCode"
|
||||
:translate-apis="translateApis" :languages="languages"
|
||||
v-model:tag-complete-file="tagCompleteFile"
|
||||
|
|
@ -123,6 +129,7 @@ import History from "@/components/history.vue";
|
|||
import IconSvg from "@/components/iconSvg.vue";
|
||||
import ExtensionCss from "@/components/extensionCss.vue";
|
||||
import PromptFormat from "@/components/promptFormat.vue";
|
||||
import Blacklist from "@/components/blacklist.vue";
|
||||
import PackagesState from "@/components/packagesState.vue";
|
||||
import ChatgptPrompt from "@/components/chatgptPrompt.vue";
|
||||
import About from "@/components/about.vue";
|
||||
|
|
@ -137,6 +144,7 @@ export default {
|
|||
ChatgptPrompt,
|
||||
PackagesState,
|
||||
PromptFormat,
|
||||
Blacklist,
|
||||
ExtensionCss,
|
||||
IconSvg,
|
||||
History,
|
||||
|
|
@ -282,6 +290,8 @@ export default {
|
|||
|
||||
groupTags: [],
|
||||
groupTagsColor: {},
|
||||
|
||||
blacklist: {},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
|
@ -512,7 +522,7 @@ export default {
|
|||
},
|
||||
init() {
|
||||
this.loadExtraNetworks()
|
||||
let dataListsKeys = ['languageCode', 'autoTranslate', 'autoTranslateToEnglish', 'autoTranslateToLocal', 'autoRemoveSpace', 'autoRemoveLastComma', 'autoKeepWeightZero', 'autoKeepWeightOne', 'autoBreakBeforeWrap', 'autoBreakAfterWrap', /*'hideDefaultInput', */'translateApi', 'enableTooltip', 'tagCompleteFile', 'onlyCsvOnAuto', 'extensionSelect.minimalist', 'groupTagsColor']
|
||||
let dataListsKeys = ['languageCode', 'autoTranslate', 'autoTranslateToEnglish', 'autoTranslateToLocal', 'autoRemoveSpace', 'autoRemoveLastComma', 'autoKeepWeightZero', 'autoKeepWeightOne', 'autoBreakBeforeWrap', 'autoBreakAfterWrap', /*'hideDefaultInput', */'translateApi', 'enableTooltip', 'tagCompleteFile', 'onlyCsvOnAuto', 'extensionSelect.minimalist', 'groupTagsColor', 'blacklist']
|
||||
this.prompts.forEach(item => {
|
||||
dataListsKeys.push(item.hideDefaultInputKey)
|
||||
dataListsKeys.push(item.hidePanelKey)
|
||||
|
|
@ -637,6 +647,10 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
if (data.blacklist !== null) {
|
||||
this.blacklist = data.blacklist
|
||||
}
|
||||
|
||||
this.updateTranslateApiConfig()
|
||||
this.$refs.extensionCss.init()
|
||||
|
||||
|
|
@ -678,6 +692,7 @@ export default {
|
|||
// this.$refs.about.open()
|
||||
// this.$refs.chatgptPrompt.open()
|
||||
// this.$refs.promptFormat.open()
|
||||
// this.$refs.blacklist.open()
|
||||
// this.$refs.translateSetting.open(this.translateApi)
|
||||
/*this.onShowFavorite('phystonPrompt_txt2img_prompt', {
|
||||
clientY: 150,
|
||||
|
|
@ -735,6 +750,9 @@ export default {
|
|||
onPromptFormatClick(e) {
|
||||
this.$refs.promptFormat.open(e)
|
||||
},
|
||||
onBlacklistClick(e) {
|
||||
this.$refs.blacklist.open(e)
|
||||
},
|
||||
onSelectLanguageClick(e) {
|
||||
this.$refs.selectLanguage.open(e)
|
||||
},
|
||||
|
|
@ -910,6 +928,9 @@ export default {
|
|||
}*/
|
||||
window.location.href = newUrl
|
||||
},
|
||||
onUpdateBlacklist(data) {
|
||||
this.blacklist = data
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
<template>
|
||||
<div class="physton-prompt-blacklist" v-if="isOpen" @click="">
|
||||
<div class="blacklist-main" @click.stop>
|
||||
<div class="blacklist-body" @click.stop>
|
||||
<div class="blacklist-desc">{{ getLang('blacklist_desc') }}</div>
|
||||
<div class="blacklist-group">
|
||||
<div class="group-title">{{ getLang('prompt_blacklist_list') }}:</div>
|
||||
<textarea class="group-content" :placeholder="getLang('one_keyword_per_line')" v-model="textarea.prompt"></textarea>
|
||||
</div>
|
||||
<div class="blacklist-group">
|
||||
<div class="group-title">{{ getLang('negative_prompt_blacklist_list') }}:</div>
|
||||
<textarea class="group-content" :placeholder="getLang('one_keyword_per_line')" v-model="textarea.negative_prompt"></textarea>
|
||||
</div>
|
||||
<div class="blacklist-wrap"></div>
|
||||
<div class="blacklist-group">
|
||||
<div class="group-title">{{ getLang('lora_blacklist_list') }}:</div>
|
||||
<textarea class="group-content" :placeholder="getLang('one_keyword_per_line')" v-model="textarea.lora"></textarea>
|
||||
</div>
|
||||
<div class="blacklist-group">
|
||||
<div class="group-title">{{ getLang('lycoris_blacklist_list') }}:</div>
|
||||
<textarea class="group-content" :placeholder="getLang('one_keyword_per_line')" v-model="textarea.lycoris"></textarea>
|
||||
</div>
|
||||
<div class="blacklist-group">
|
||||
<div class="group-title">{{ getLang('embedding_blacklist_list') }}:</div>
|
||||
<textarea class="group-content" :placeholder="getLang('one_keyword_per_line')" v-model="textarea.embedding"></textarea>
|
||||
</div>
|
||||
<div class="blacklist-wrap"></div>
|
||||
<div class="setting-btns">
|
||||
<div class="blacklist-save hover-scale-120" @click="onSaveClick">{{ getLang('save') }}</div>
|
||||
<div class="blacklist-close hover-scale-120" @click="onCloseClick">{{ getLang('close') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import LanguageMixin from "@/mixins/languageMixin";
|
||||
import IconSvg from "@/components/iconSvg.vue";
|
||||
|
||||
export default {
|
||||
name: 'Blacklist',
|
||||
components: {IconSvg},
|
||||
mixins: [LanguageMixin],
|
||||
props: {
|
||||
autoRemoveSpace: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
autoRemoveLastComma: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
autoKeepWeightZero: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
autoKeepWeightOne: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
autoBreakBeforeWrap: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
autoBreakAfterWrap: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isOpen: false,
|
||||
data: {
|
||||
prompt: [],
|
||||
negative_prompt: [],
|
||||
lora: [],
|
||||
lycoris: [],
|
||||
embedding: [],
|
||||
},
|
||||
textarea: {
|
||||
prompt: '',
|
||||
negative_prompt: '',
|
||||
lora: '',
|
||||
lycoris: '',
|
||||
embedding: '',
|
||||
},
|
||||
}
|
||||
},
|
||||
emits: ['update:blacklist'],
|
||||
computed: {},
|
||||
mounted() {
|
||||
},
|
||||
methods: {
|
||||
open() {
|
||||
this.isOpen = true
|
||||
this.data = {
|
||||
prompt: [],
|
||||
negative_prompt: [],
|
||||
lora: [],
|
||||
lycoris: [],
|
||||
embedding: [],
|
||||
}
|
||||
this.textarea = {
|
||||
prompt: '',
|
||||
negative_prompt: '',
|
||||
lora: '',
|
||||
lycoris: '',
|
||||
embedding: '',
|
||||
}
|
||||
this.gradioAPI.getData('blacklist').then(res => {
|
||||
if (res) {
|
||||
this.data.prompt = res.prompt || []
|
||||
this.data.negative_prompt = res.negative_prompt || []
|
||||
this.data.lora = res.lora || []
|
||||
this.data.lycoris = res.lycoris || []
|
||||
this.data.embedding = res.embedding || []
|
||||
}
|
||||
this.textarea.prompt = this.data.prompt.join('\n')
|
||||
this.textarea.negative_prompt = this.data.negative_prompt.join('\n')
|
||||
this.textarea.lora = this.data.lora.join('\n')
|
||||
this.textarea.lycoris = this.data.lycoris.join('\n')
|
||||
this.textarea.embedding = this.data.embedding.join('\n')
|
||||
})
|
||||
},
|
||||
close() {
|
||||
this.isOpen = false
|
||||
},
|
||||
onCloseClick() {
|
||||
this.close()
|
||||
},
|
||||
onSaveClick() {
|
||||
this.data.prompt = this.textarea.prompt.split('\n').filter(item => item)
|
||||
this.data.negative_prompt = this.textarea.negative_prompt.split('\n').filter(item => item)
|
||||
this.data.lora = this.textarea.lora.split('\n').filter(item => item)
|
||||
this.data.lycoris = this.textarea.lycoris.split('\n').filter(item => item)
|
||||
this.data.embedding = this.textarea.embedding.split('\n').filter(item => item)
|
||||
this.gradioAPI.setData('blacklist', this.data)
|
||||
this.close()
|
||||
this.$emit('update:blacklist', this.data)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
@ -27,6 +27,11 @@
|
|||
@click="$emit('click:promptFormat', $event)">
|
||||
<icon-svg class="hover-scale-120" name="format"/>
|
||||
</div>
|
||||
<div class="extend-btn-item"
|
||||
v-tooltip="getLang('keywords_blacklist')"
|
||||
@click="$emit('click:blacklist', $event)">
|
||||
<icon-svg class="hover-scale-120" name="blacklist"/>
|
||||
</div>
|
||||
<div class="extend-btn-item"
|
||||
v-tooltip="getLang('theme_extension')"
|
||||
@click="$emit('click:selectTheme', $event)">
|
||||
|
|
@ -613,8 +618,12 @@ export default {
|
|||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
blacklist: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
},
|
||||
emits: ['update:languageCode', 'update:autoTranslate', 'update:autoTranslateToEnglish', 'update:autoTranslateToLocal', 'update:autoRemoveSpace', 'update:autoRemoveLastComma', 'update:autoKeepWeightZero', 'update:autoKeepWeightOne', 'update:hideDefaultInput', 'update:hidePanel', 'update:enableTooltip', 'update:translateApi', 'click:translateApi', 'click:promptFormat', 'click:selectTheme', 'click:switchTheme', 'click:showAbout', 'click:selectLanguage', 'click:showHistory', 'click:showFavorite', 'refreshFavorites', 'click:showChatgpt', 'update:hideGroupTags', 'update:groupTagsColor'],
|
||||
emits: ['update:languageCode', 'update:autoTranslate', 'update:autoTranslateToEnglish', 'update:autoTranslateToLocal', 'update:autoRemoveSpace', 'update:autoRemoveLastComma', 'update:autoKeepWeightZero', 'update:autoKeepWeightOne', 'update:hideDefaultInput', 'update:hidePanel', 'update:enableTooltip', 'update:translateApi', 'click:translateApi', 'click:promptFormat', 'click:blacklist', 'click:selectTheme', 'click:switchTheme', 'click:showAbout', 'click:selectLanguage', 'click:showHistory', 'click:showFavorite', 'refreshFavorites', 'click:showChatgpt', 'update:hideGroupTags', 'update:groupTagsColor'],
|
||||
data() {
|
||||
return {
|
||||
prompt: '',
|
||||
|
|
|
|||
|
|
@ -31,7 +31,14 @@ export default {
|
|||
})
|
||||
},
|
||||
_setTagHeight(tag) {
|
||||
setTimeout(() => {
|
||||
let maxNum = 10
|
||||
let interval = setInterval(() => {
|
||||
// console.log(maxNum, tag)
|
||||
maxNum--
|
||||
if (maxNum <= 0) clearInterval(interval)
|
||||
if (!this.$refs['promptTagValue-' + tag.id]) return false
|
||||
if (!this.$refs['promptTagValue-' + tag.id][0]) return false
|
||||
clearInterval(interval)
|
||||
let $tag = this.$refs['promptTagValue-' + tag.id][0]
|
||||
let height = $tag.offsetHeight
|
||||
$tag.parentNode.style.height = height + 'px'
|
||||
|
|
@ -41,7 +48,10 @@ export default {
|
|||
if (this.$refs['promptTagDelete-' + tag.id]) {
|
||||
this.$refs['promptTagDelete-' + tag.id][0].style.height = height + 'px'
|
||||
}
|
||||
}, 300)
|
||||
}, 50)
|
||||
},
|
||||
_getTagType(tag) {
|
||||
|
||||
},
|
||||
_setTagClass(tag) {
|
||||
tag.isLora = false
|
||||
|
|
@ -129,6 +139,23 @@ export default {
|
|||
if (localValue !== null) tag.localValue = localValue
|
||||
return tag
|
||||
},
|
||||
_isTagBlacklist(tag) {
|
||||
if (typeof tag['type'] === 'string' && tag.type === 'wrap') return false
|
||||
if (tag.isLora) {
|
||||
if (this.blacklist.lora && this.blacklist.lora.includes(tag.loraName)) return true
|
||||
} else if (tag.isLyco) {
|
||||
if (this.blacklist.lycoris && this.blacklist.lycoris.includes(tag.lycoName)) return true
|
||||
} else if (tag.isEmbedding) {
|
||||
if (this.blacklist.embedding && this.blacklist.embedding.includes(tag.value)) return true
|
||||
} else {
|
||||
if (this.neg) {
|
||||
if (this.blacklist.negative_prompt && this.blacklist.negative_prompt.includes(tag.value)) return true
|
||||
} else {
|
||||
if (this.blacklist.prompt && this.blacklist.prompt.includes(tag.value)) return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
_appendTag(value, localValue = '', disabled = false, index = -1, type = 'text') {
|
||||
if (value === '') return -1
|
||||
// 唯一数:当前时间戳+随机数
|
||||
|
|
@ -143,6 +170,7 @@ export default {
|
|||
this._setTag(tag)
|
||||
// value = common.setLayers(value, 0, '(', ')')
|
||||
// value = common.setLayers(value, 0, '[', ']')
|
||||
if (this._isTagBlacklist(tag)) return -1
|
||||
if (index >= 0) {
|
||||
// 插入到指定位置
|
||||
this.tags.splice(index, 0, tag)
|
||||
|
|
|
|||
|
|
@ -97,6 +97,7 @@
|
|||
// .physton-prompt .prompt-header .setting-box
|
||||
--pp-ph-sb-iconSvgApi-color: #4d4f4d;
|
||||
--pp-ph-sb-iconSvgFormat-color: #4d4f4d;
|
||||
--pp-ph-sb-iconSvgBlacklist-color: #4d4f4d;
|
||||
--pp-ph-sb-iconSvgTheme-color: #4d4f4d;
|
||||
--pp-ph-sb-iconSvgTranslate-color: #4d4f4d;
|
||||
--pp-ph-sb-iconSvgEnglish-color: #4d4f4d;
|
||||
|
|
@ -228,6 +229,7 @@
|
|||
// .physton-prompt .prompt-header .setting-box
|
||||
--pp-ph-sb-iconSvgApi-color: #b3b3b3;
|
||||
--pp-ph-sb-iconSvgFormat-color: #b3b3b3;
|
||||
--pp-ph-sb-iconSvgBlacklist-color: #b3b3b3;
|
||||
--pp-ph-sb-iconSvgTheme-color: #b3b3b3;
|
||||
--pp-ph-sb-iconSvgTranslate-color: #b3b3b3;
|
||||
--pp-ph-sb-iconSvgEnglish-color: #b3b3b3;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="uuid-47d8e9b3-b933-4a65-8c3b-a1695a1545b9" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 119.46 128">
|
||||
<path d="m0,0v128h91.44v-8.54H8.53V8.54h98.13v38.98h8.54V0H0Z"/>
|
||||
<path d="m90.2,104.83c-3.14-.02-6.23-.75-9.05-2.14l24.74-31.49c3.22,3.66,5,8.36,5.04,13.23-.09,11.35-9.37,20.48-20.73,20.39,0,0,0,0,0,0Zm-20.7-20.4c.1-11.38,9.4-20.53,20.78-20.43,3.04.03,6.05.73,8.79,2.05l-24.66,31.44c-3.14-3.62-4.88-8.25-4.9-13.05h0Zm20.7-28.96c-16,.16-28.83,13.26-28.67,29.26s13.26,28.83,29.26,28.67c15.88-.16,28.68-13.09,28.67-28.97-.1-16.07-13.19-29.03-29.26-28.96ZM23.98,93.87h17.92v-8.54h-17.92v8.53h0Zm0-20.32h25.3v-8.52h-25.3v8.54-.02Zm0-20.3h37.63v-8.54H23.98s0,8.54,0,8.54Zm0-20.35h57.34v-8.54H23.98s0,8.54,0,8.54Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 793 B |
153
styles/main.less
153
styles/main.less
|
|
@ -205,6 +205,9 @@
|
|||
--pp-ph-sb-iconSvgFormat-width: auto;
|
||||
--pp-ph-sb-iconSvgFormat-height: 22px;
|
||||
--pp-ph-sb-iconSvgFormat-color: #d81e06;
|
||||
--pp-ph-sb-iconSvgBlacklist-width: auto;
|
||||
--pp-ph-sb-iconSvgBlacklist-height: 22px;
|
||||
--pp-ph-sb-iconSvgBlacklist-color: #d81e06;
|
||||
--pp-ph-sb-iconSvgTheme-width: auto;
|
||||
--pp-ph-sb-iconSvgTheme-height: 22px;
|
||||
--pp-ph-sb-iconSvgTheme-color: #02b7fd;
|
||||
|
|
@ -1354,6 +1357,73 @@
|
|||
--ppf-fm-fl-fi-formatDesc-color: #fff;
|
||||
--ppf-fm-fl-fi-formatDesc-margin-left: 10px;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main
|
||||
--ppb-blacklistMain-position: relative;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body
|
||||
--ppb-bm-blacklistBody-display: flex;
|
||||
--ppb-bm-blacklistBody-flex-wrap: wrap;
|
||||
--ppb-bm-blacklistBody-width: 500px;
|
||||
--ppb-bm-blacklistBody-position: relative;
|
||||
--ppb-bm-blacklistBody-box-shadow: 0 0 3px @common-blue;
|
||||
--ppb-bm-blacklistBody-border-radius: 6px 6px 4px 4px;
|
||||
--ppb-bm-blacklistBody-background-color: #1e1e1ee6;
|
||||
--ppb-bm-blacklistBody-transition: height .1s ease-in-out, width .1s ease-in-out;
|
||||
--ppb-bm-blacklistBody-padding: 20px 40px;
|
||||
--ppb-bm-blacklistBody-box-sizing: border-box;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .blacklist-wrap
|
||||
--ppb-bm-bb-blacklistWrap-flex-basis: 100%;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .blacklist-desc
|
||||
--ppb-bm-bb-blacklistDesc-color: @common-red;
|
||||
--ppb-bm-bb-blacklistDesc-flex-basis: 100%;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .blacklist-group
|
||||
--ppb-bm-bb-blacklistGroup-margin: 10px;
|
||||
--ppb-bm-bb-blacklistGroup-flex-grow: 1;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .blacklist-group .group-title
|
||||
--ppb-bm-bb-bg-groupTitle-font-size: 14px;
|
||||
--ppb-bm-bb-bg-groupTitle-color: #fff;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .blacklist-group .group-content
|
||||
--ppb-bm-bb-bg-groupContent-margin-top: 10px;
|
||||
--ppb-bm-bb-bg-groupContent-width: 100%;
|
||||
--ppb-bm-bb-bg-groupContent-height: 100px;
|
||||
--ppb-bm-bb-bg-groupContent-resize: none;
|
||||
--ppb-bm-bb-bg-groupContent-background: transparent;
|
||||
--ppb-bm-bb-bg-groupContent-border: 1px solid #787878;
|
||||
--ppb-bm-bb-bg-groupContent-color: #fff;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .setting-btns
|
||||
--ppb-bm-bb-settingBtns-flex-basis: 100%;
|
||||
--ppb-bm-bb-settingBtns-display: flex;
|
||||
--ppb-bm-bb-settingBtns-justify-content: flex-end;
|
||||
--ppb-bm-bb-settingBtns-align-items: center;
|
||||
--ppb-bm-bb-settingBtns-margin-top: 10px;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .setting-btns .blacklist-save
|
||||
--ppb-bm-bb-sb-blacklistSave-cursor: pointer;
|
||||
--ppb-bm-bb-sb-blacklistSave-display: inline-block;
|
||||
--ppb-bm-bb-sb-blacklistSave-padding: 0 40px;
|
||||
--ppb-bm-bb-sb-blacklistSave-height: 40px;
|
||||
--ppb-bm-bb-sb-blacklistSave-line-height: 40px;
|
||||
--ppb-bm-bb-sb-blacklistSave-color: #fff;
|
||||
--ppb-bm-bb-sb-blacklistSave-border-radius: 4px;
|
||||
--ppb-bm-bb-sb-blacklistSave-margin-right: 10px;
|
||||
|
||||
// .physton-prompt-blacklist .blacklist-main .blacklist-body .setting-btns .blacklist-close
|
||||
--ppb-bm-bb-sb-blacklistClose-cursor: pointer;
|
||||
--ppb-bm-bb-sb-blacklistClose-display: inline-block;
|
||||
--ppb-bm-bb-sb-blacklistClose-padding: 0 40px;
|
||||
--ppb-bm-bb-sb-blacklistClose-height: 40px;
|
||||
--ppb-bm-bb-sb-blacklistClose-line-height: 40px;
|
||||
--ppb-bm-bb-sb-blacklistClose-color: @common-blue;
|
||||
--ppb-bm-bb-sb-blacklistClose-background: transparent;
|
||||
--ppb-bm-bb-sb-blacklistClose-border: 1px solid @common-blue;
|
||||
--ppb-bm-bb-sb-blacklistClose-border-radius: 4px;
|
||||
|
||||
// .physton-packages-state
|
||||
--pps-z-index: 1999;
|
||||
|
||||
|
|
@ -2332,6 +2402,7 @@
|
|||
.setting-box {
|
||||
.set-icon-svg(var(--pp-ph-sb-iconSvgApi-width), var(--pp-ph-sb-iconSvgApi-height), var(--pp-ph-sb-iconSvgApi-color), icon-svg-api);
|
||||
.set-icon-svg(var(--pp-ph-sb-iconSvgFormat-width), var(--pp-ph-sb-iconSvgFormat-height), var(--pp-ph-sb-iconSvgFormat-color), icon-svg-format);
|
||||
.set-icon-svg(var(--pp-ph-sb-iconSvgBlacklist-width), var(--pp-ph-sb-iconSvgBlacklist-height), var(--pp-ph-sb-iconSvgBlacklist-color), icon-svg-blacklist);
|
||||
.set-icon-svg(var(--pp-ph-sb-iconSvgTheme-width), var(--pp-ph-sb-iconSvgTheme-height), var(--pp-ph-sb-iconSvgTheme-color), icon-svg-theme);
|
||||
.set-icon-svg(var(--pp-ph-sb-iconSvgTranslate-width), var(--pp-ph-sb-iconSvgTranslate-height), var(--pp-ph-sb-iconSvgTranslate-color), icon-svg-translate);
|
||||
.set-icon-svg(var(--pp-ph-sb-iconSvgEnglish-width), var(--pp-ph-sb-iconSvgEnglish-height), var(--pp-ph-sb-iconSvgEnglish-color), icon-svg-english);
|
||||
|
|
@ -3657,6 +3728,88 @@
|
|||
}
|
||||
}
|
||||
|
||||
.physton-prompt-blacklist {
|
||||
.common-popup-bg();
|
||||
|
||||
.blacklist-main {
|
||||
position: var(--ppb-blacklistMain-position);
|
||||
|
||||
.blacklist-body {
|
||||
display: var(--ppb-bm-blacklistBody-display);
|
||||
flex-wrap: var(--ppb-bm-blacklistBody-flex-wrap);
|
||||
width: var(--ppb-bm-blacklistBody-width);
|
||||
position: var(--ppb-bm-blacklistBody-position);
|
||||
box-shadow: var(--ppb-bm-blacklistBody-box-shadow);
|
||||
border-radius: var(--ppb-bm-blacklistBody-border-radius);
|
||||
background-color: var(--ppb-bm-blacklistBody-background-color);
|
||||
transition: var(--ppb-bm-blacklistBody-transition);
|
||||
padding: var(--ppb-bm-blacklistBody-padding);
|
||||
box-sizing: var(--ppb-bm-blacklistBody-box-sizing);
|
||||
|
||||
.blacklist-wrap {
|
||||
flex-basis: var(--ppb-bm-bb-blacklistWrap-flex-basis);
|
||||
}
|
||||
|
||||
.blacklist-desc {
|
||||
color: var(--ppb-bm-bb-blacklistDesc-color);
|
||||
flex-basis: var(--ppb-bm-bb-blacklistDesc-flex-basis);
|
||||
}
|
||||
|
||||
.blacklist-group {
|
||||
margin: var(--ppb-bm-bb-blacklistGroup-margin);
|
||||
flex-grow: var(--ppb-bm-bb-blacklistGroup-flex-grow);
|
||||
|
||||
.group-title {
|
||||
font-size: var(--ppb-bm-bb-bg-groupTitle-font-size);
|
||||
color: var(--ppb-bm-bb-bg-groupTitle-color);
|
||||
}
|
||||
|
||||
.group-content {
|
||||
margin-top: var(--ppb-bm-bb-bg-groupContent-margin-top);
|
||||
width: var(--ppb-bm-bb-bg-groupContent-width);
|
||||
height: var(--ppb-bm-bb-bg-groupContent-height);
|
||||
resize: var(--ppb-bm-bb-bg-groupContent-resize);
|
||||
background: var(--ppb-bm-bb-bg-groupContent-background);
|
||||
border: var(--ppb-bm-bb-bg-groupContent-border);
|
||||
color: var(--ppb-bm-bb-bg-groupContent-color);
|
||||
}
|
||||
}
|
||||
|
||||
.setting-btns {
|
||||
flex-basis: var(--ppb-bm-bb-settingBtns-flex-basis);
|
||||
display: var(--ppb-bm-bb-settingBtns-display);
|
||||
justify-content: var(--ppb-bm-bb-settingBtns-justify-content);
|
||||
align-items: var(--ppb-bm-bb-settingBtns-align-items);
|
||||
margin-top: var(--ppb-bm-bb-settingBtns-margin-top);
|
||||
|
||||
.blacklist-save {
|
||||
cursor: var(--ppb-bm-bb-sb-blacklistSave-cursor);
|
||||
display: var(--ppb-bm-bb-sb-blacklistSave-display);
|
||||
padding: var(--ppb-bm-bb-sb-blacklistSave-padding);
|
||||
height: var(--ppb-bm-bb-sb-blacklistSave-height);
|
||||
line-height: var(--ppb-bm-bb-sb-blacklistSave-line-height);
|
||||
color: var(--ppb-bm-bb-sb-blacklistSave-color);
|
||||
.common-colourful-background();
|
||||
border-radius: var(--ppb-bm-bb-sb-blacklistSave-border-radius);
|
||||
margin-right: var(--ppb-bm-bb-sb-blacklistSave-margin-right);
|
||||
}
|
||||
|
||||
.blacklist-close {
|
||||
cursor: var(--ppb-bm-bb-sb-blacklistClose-cursor);
|
||||
display: var(--ppb-bm-bb-sb-blacklistClose-display);
|
||||
padding: var(--ppb-bm-bb-sb-blacklistClose-padding);
|
||||
height: var(--ppb-bm-bb-sb-blacklistClose-height);
|
||||
line-height: var(--ppb-bm-bb-sb-blacklistClose-line-height);
|
||||
color: var(--ppb-bm-bb-sb-blacklistClose-color);
|
||||
background: var(--ppb-bm-bb-sb-blacklistClose-background);
|
||||
border: var(--ppb-bm-bb-sb-blacklistClose-border);
|
||||
border-radius: var(--ppb-bm-bb-sb-blacklistClose-border-radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.physton-packages-state {
|
||||
.common-popup-bg();
|
||||
z-index: var(--pps-z-index);
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue