mirror of
https://github.com/Physton/sd-webui-prompt-all-in-one.git
synced 2026-04-30 19:21:43 +00:00
Fix the issue of model detection failure for Lora, Lycoris, and other models.
Former-commit-id: 44784a0adfd21834284192eb548252b1ebc41727
This commit is contained in:
@@ -1 +1 @@
|
||||
78056fe09060f4b42be6de021963a5b5adc5624d
|
||||
196fbc8499f21aa333d5a2422972b65cde24fc46
|
||||
@@ -1 +1 @@
|
||||
5ff530d7d33e2d7fb15d09f76b1f2c5d6fa1bcad
|
||||
221c1d74c832469a2b4d85f554cffbc0f5dc530f
|
||||
17
scripts/get_extra_networks.py
Normal file
17
scripts/get_extra_networks.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from modules import script_callbacks, extra_networks, prompt_parser, shared, ui_extra_networks
|
||||
|
||||
def get_extra_networks():
|
||||
result = []
|
||||
try:
|
||||
for extra_page in ui_extra_networks.extra_pages:
|
||||
resultItem = {
|
||||
'name': extra_page.name,
|
||||
'title': extra_page.title,
|
||||
'items': []
|
||||
}
|
||||
for item in extra_page.list_items():
|
||||
resultItem['items'].append(item)
|
||||
result.append(resultItem)
|
||||
except Exception as e:
|
||||
pass
|
||||
return result
|
||||
@@ -13,6 +13,7 @@ from scripts.translate import translate
|
||||
from scripts.history import history
|
||||
from scripts.csv import get_csvs, get_csv
|
||||
from scripts.styles import getStyleFullPath, getExtensionCssList
|
||||
from scripts.get_extra_networks import get_extra_networks
|
||||
|
||||
VERSION = '0.0.1'
|
||||
|
||||
@@ -217,6 +218,10 @@ def on_app_started(_: gr.Blocks, app: FastAPI):
|
||||
async def _get_extension_css_list():
|
||||
return {"css_list": getExtensionCssList()}
|
||||
|
||||
@app.get("/physton_prompt/get_extra_networks")
|
||||
async def _get_extra_networks():
|
||||
return {"extra_networks": get_extra_networks()}
|
||||
|
||||
try:
|
||||
script_callbacks.on_app_started(on_app_started)
|
||||
print('sd-webui-prompt-all-in-one background API service started successfully.')
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
:loras="loras"
|
||||
:lycos="lycos"
|
||||
:embeddings="embeddings"
|
||||
></physton-prompt>
|
||||
></physton-prompt>
|
||||
</template>
|
||||
<translate-setting ref="translateSetting" v-model:language-code="languageCode"
|
||||
:translate-apis="translateApis" :languages="languages"
|
||||
@@ -74,7 +74,8 @@
|
||||
</div>
|
||||
<div class="paste-popup-title">{{ pasteTitle }}</div>
|
||||
<div class="paste-popup-body">
|
||||
<textarea class="paste-content" v-model="pasteContent" :placeholder="getLang('please_enter_the_content_here')"></textarea>
|
||||
<textarea class="paste-content" v-model="pasteContent"
|
||||
:placeholder="getLang('please_enter_the_content_here')"></textarea>
|
||||
<div v-if="!pasteLoading" class="paste-submit" @click="onClickPasteSubmit">Submit</div>
|
||||
<div v-else class="paste-submit">
|
||||
<icon-svg name="loading"/>
|
||||
@@ -380,57 +381,45 @@ export default {
|
||||
getLang(key) {
|
||||
return common.getLang(key, this.languageCode, this.languages)
|
||||
},
|
||||
watchVars() {
|
||||
// loras、lycos、embeddings
|
||||
let txt2img_textual_inversion_cards = null
|
||||
let txt2img_textual_inversion_cards_html = ''
|
||||
let text2img_lora_cards = null
|
||||
let text2img_lora_cards_html = ''
|
||||
let txt2img_lycoris_cards = null
|
||||
let txt2img_lycoris_cards_html = ''
|
||||
getExtraNetworks() {
|
||||
this._getExtraNetworks()
|
||||
setInterval(() => {
|
||||
if (!txt2img_textual_inversion_cards) txt2img_textual_inversion_cards = document.getElementById('txt2img_textual_inversion_cards')
|
||||
if (txt2img_textual_inversion_cards && txt2img_textual_inversion_cards_html !== txt2img_textual_inversion_cards.innerHTML) {
|
||||
let embeddings = []
|
||||
txt2img_textual_inversion_cards_html = txt2img_textual_inversion_cards.innerHTML
|
||||
let cards = txt2img_textual_inversion_cards.querySelectorAll('.card')
|
||||
cards.forEach(card => {
|
||||
let name = card.querySelector('.name')
|
||||
if (!name) return
|
||||
embeddings.push(name.innerText.trim())
|
||||
})
|
||||
this.embeddings = embeddings
|
||||
}
|
||||
|
||||
if (!text2img_lora_cards) text2img_lora_cards = document.getElementById('txt2img_lora_cards')
|
||||
if (text2img_lora_cards && text2img_lora_cards_html !== text2img_lora_cards.innerHTML) {
|
||||
let loras = []
|
||||
text2img_lora_cards_html = text2img_lora_cards.innerHTML
|
||||
let cards = text2img_lora_cards.querySelectorAll('.card')
|
||||
cards.forEach(card => {
|
||||
let name = card.querySelector('.name')
|
||||
if (!name) return
|
||||
loras.push(name.innerText.trim())
|
||||
})
|
||||
this.loras = loras
|
||||
}
|
||||
|
||||
if (!txt2img_lycoris_cards) txt2img_lycoris_cards = document.getElementById('txt2img_lycoris_cards')
|
||||
if (txt2img_lycoris_cards && txt2img_lycoris_cards_html !== txt2img_lycoris_cards.innerHTML) {
|
||||
let lycos = []
|
||||
txt2img_lycoris_cards_html = txt2img_lycoris_cards.innerHTML
|
||||
let cards = txt2img_lycoris_cards.querySelectorAll('.card')
|
||||
cards.forEach(card => {
|
||||
let name = card.querySelector('.name')
|
||||
if (!name) return
|
||||
lycos.push(name.innerText.trim())
|
||||
})
|
||||
this.lycos = lycos
|
||||
}
|
||||
}, 1000)
|
||||
this._getExtraNetworks()
|
||||
}, 5000)
|
||||
},
|
||||
_getExtraNetworks() {
|
||||
this.gradioAPI.getExtraNetworks().then(res => {
|
||||
if (!res) return
|
||||
res.forEach(extraNetwork => {
|
||||
if (extraNetwork.name === 'textual inversion') {
|
||||
let list = []
|
||||
extraNetwork.items.forEach(item => {
|
||||
list.push(item.name)
|
||||
})
|
||||
this.embeddings = list
|
||||
} else if (extraNetwork.name === 'lora' || extraNetwork.name === 'lycoris') {
|
||||
let list = []
|
||||
extraNetwork.items.forEach(item => {
|
||||
list.push(item.name)
|
||||
if (typeof item.metadata === 'string' && item.metadata) {
|
||||
item.metadata = JSON.parse(item.metadata)
|
||||
if (!item.metadata) return
|
||||
if (item.metadata.ss_output_name) {
|
||||
list.push(item.metadata.ss_output_name)
|
||||
}
|
||||
}
|
||||
})
|
||||
if (extraNetwork.name === 'lora') {
|
||||
this.loras = list
|
||||
} else {
|
||||
this.lycos = list
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
init() {
|
||||
this.watchVars()
|
||||
this.getExtraNetworks()
|
||||
let dataListsKeys = ['languageCode', 'autoTranslate', 'autoTranslateToEnglish', 'autoTranslateToLocal', 'autoRemoveSpace', 'autoRemoveLastComma', 'autoKeepWeightZero', /*'hideDefaultInput', */'translateApi', 'enableTooltip', 'tagCompleteFile', 'onlyCsvOnAuto']
|
||||
this.prompts.forEach(item => {
|
||||
dataListsKeys.push(item.hideDefaultInputKey)
|
||||
|
||||
@@ -146,4 +146,8 @@ export default class GradioAPI {
|
||||
async getExtensionCssList() {
|
||||
return (await this.api.get("/get_extension_css_list")).data.css_list
|
||||
}
|
||||
|
||||
async getExtraNetworks() {
|
||||
return (await this.api.get("/get_extra_networks")).data.extra_networks
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user