mirror of
https://github.com/DominikDoom/a1111-sd-webui-tagcomplete.git
synced 2026-03-13 09:10:26 +00:00
Fix lora keyword lookup for deep subfolders
This commit is contained in:
@@ -41,7 +41,8 @@ async function load() {
|
||||
async function sanitize(tagType, text) {
|
||||
if (tagType === ResultType.lora) {
|
||||
let multiplier = TAC_CFG.extraNetworksDefaultMultiplier;
|
||||
let info = await fetchAPI(`tacapi/v1/lora-info/${text}`)
|
||||
let finalComponent = text.lastIndexOf("/") > -1 ? text.substring(text.lastIndexOf("/") + 1) : text;
|
||||
let info = await fetchAPI(`tacapi/v1/lora-info/${finalComponent}`)
|
||||
if (info && info["preferred weight"]) {
|
||||
multiplier = info["preferred weight"];
|
||||
}
|
||||
|
||||
@@ -41,7 +41,8 @@ async function load() {
|
||||
async function sanitize(tagType, text) {
|
||||
if (tagType === ResultType.lyco) {
|
||||
let multiplier = TAC_CFG.extraNetworksDefaultMultiplier;
|
||||
let info = await fetchAPI(`tacapi/v1/lyco-info/${text}`)
|
||||
let finalComponent = text.lastIndexOf("/") > -1 ? text.substring(text.lastIndexOf("/") + 1) : text;
|
||||
let info = await fetchAPI(`tacapi/v1/lyco-info/${finalComponent}`)
|
||||
if (info && info["preferred weight"]) {
|
||||
multiplier = info["preferred weight"];
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const styleColors = {
|
||||
const styleColors = {
|
||||
"--results-bg": ["#0b0f19", "#ffffff"],
|
||||
"--results-border-color": ["#4b5563", "#e5e7eb"],
|
||||
"--results-border-width": ["1px", "1.5px"],
|
||||
@@ -453,7 +453,8 @@ async function insertTextAtCursor(textArea, result, tagword, tabCompletedWithout
|
||||
let keywords = null;
|
||||
// Check built-in activation words first
|
||||
if (tagType === ResultType.lora || tagType === ResultType.lyco) {
|
||||
let info = await fetchAPI(`tacapi/v1/lora-info/${result.text}`)
|
||||
let finalComponent = result.text.lastIndexOf("/") > -1 ? result.text.substring(result.text.lastIndexOf("/") + 1) : result.text;
|
||||
let info = await fetchAPI(`tacapi/v1/lora-info/${finalComponent}`)
|
||||
if (info && info["activation text"]) {
|
||||
keywords = info["activation text"];
|
||||
}
|
||||
|
||||
@@ -446,34 +446,24 @@ def on_ui_settings():
|
||||
script_callbacks.on_ui_settings(on_ui_settings)
|
||||
|
||||
def api_tac(_: gr.Blocks, app: FastAPI):
|
||||
async def get_json_info(path: Path):
|
||||
if not path:
|
||||
async def get_json_info(base_path: Path, filename: str = None):
|
||||
if base_path is None or (not base_path.exists()):
|
||||
return json.dumps({})
|
||||
|
||||
try:
|
||||
if path is not None and path.exists() and path.parent.joinpath(path.stem + ".json").exists():
|
||||
return FileResponse(path.parent.joinpath(path.stem + ".json").as_posix())
|
||||
name = Path(filename).stem
|
||||
json_candidates = glob.glob(base_path.as_posix() + f"/**/{name}.json", recursive=True)
|
||||
if json_candidates is not None and len(json_candidates) > 0:
|
||||
return FileResponse(json_candidates[0])
|
||||
except Exception as e:
|
||||
return json.dumps({"error": e})
|
||||
|
||||
@app.get("/tacapi/v1/lora-info/{folder}/{lora_name}")
|
||||
async def get_lora_info_subfolder(folder, lora_name):
|
||||
if LORA_PATH is None:
|
||||
return json.dumps({})
|
||||
return await get_json_info(LORA_PATH.joinpath(folder).joinpath(lora_name))
|
||||
|
||||
@app.get("/tacapi/v1/lyco-info/{folder}/{lyco_name}")
|
||||
async def get_lyco_info_subfolder(folder, lyco_name):
|
||||
if LYCO_PATH is None:
|
||||
return json.dumps({})
|
||||
return await get_json_info(LYCO_PATH.joinpath(folder).joinpath(lyco_name))
|
||||
|
||||
@app.get("/tacapi/v1/lora-info/{lora_name}")
|
||||
async def get_lora_info(lora_name):
|
||||
return await get_lora_info_subfolder(".", lora_name)
|
||||
return await get_json_info(LORA_PATH, lora_name)
|
||||
|
||||
@app.get("/tacapi/v1/lyco-info/{lyco_name}")
|
||||
async def get_lyco_info(lyco_name):
|
||||
return await get_lyco_info_subfolder(".", lyco_name)
|
||||
return await get_json_info(LYCO_PATH, lyco_name)
|
||||
|
||||
script_callbacks.on_app_started(api_tac)
|
||||
Reference in New Issue
Block a user