update js to check no null value
parent
ff5ef8977d
commit
0b51381b34
|
|
@ -1 +1,2 @@
|
|||
scripts/__pycache__/
|
||||
scripts/lib/__pycache__/
|
||||
|
|
|
|||
|
|
@ -212,15 +212,14 @@ onUiLoaded(() => {
|
|||
extra_network_node = gradioApp().getElementById(extra_network_id);
|
||||
// check if extr network is under thumbnail mode
|
||||
is_thumb_mode = false
|
||||
if (extra_network_node.className.indexOf("extra-network-thumbs") != -1) {
|
||||
console.log(extra_network_id + " is in thumbnail mode");
|
||||
is_thumb_mode = true;
|
||||
// won't work good in thumb mode, skip it for now
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (!extra_network_node) {
|
||||
if (extra_network_node) {
|
||||
if (extra_network_node.className == "extra-network-thumbs") {
|
||||
console.log(extra_network_id + " is in thumbnail mode");
|
||||
is_thumb_mode = true;
|
||||
// won't work good in thumb mode, skip it for now
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
console.log("can not find extra_network_node: " + extra_network_id);
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ from . import msg
|
|||
|
||||
|
||||
# scan model to generate SHA256, then use this SHA256 to get model info from civitai
|
||||
def scan_model(low_memory_sha, max_size_preview, readable_model_info, skip_nsfw_preview):
|
||||
def scan_model(low_memory_sha, max_size_preview, skip_nsfw_preview):
|
||||
util.printD("Start scan_model")
|
||||
|
||||
model_count = 0
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ data = {
|
|||
"model":{
|
||||
"low_memory_sha": True,
|
||||
"max_size_preview": True,
|
||||
"readable_model_info": True,
|
||||
"skip_nsfw_preview": False
|
||||
},
|
||||
"general":{
|
||||
|
|
@ -71,4 +70,36 @@ def load():
|
|||
|
||||
data = json_data
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
# save setting from parameter
|
||||
def save_from_input(low_memory_sha, max_size_preview, skip_nsfw_preview, open_url_with_js, check_model_version_at_startup):
|
||||
global data
|
||||
data = {
|
||||
"model":{
|
||||
"low_memory_sha": low_memory_sha,
|
||||
"max_size_preview": max_size_preview,
|
||||
"skip_nsfw_preview": skip_nsfw_preview
|
||||
},
|
||||
"general":{
|
||||
"open_url_with_js": open_url_with_js,
|
||||
"check_model_version_at_startup": check_model_version_at_startup,
|
||||
},
|
||||
"tool":{
|
||||
}
|
||||
}
|
||||
|
||||
save()
|
||||
|
||||
# load to output
|
||||
def load_to_output():
|
||||
load()
|
||||
|
||||
low_memory_sha = data["model"]["low_memory_sha"]
|
||||
max_size_preview = data["model"]["max_size_preview"]
|
||||
skip_nsfw_preview = data["model"]["skip_nsfw_preview"]
|
||||
open_url_with_js = data["general"]["open_url_with_js"]
|
||||
check_model_version_at_startup = data["general"]["check_model_version_at_startup"]
|
||||
|
||||
|
||||
return [low_memory_sha, max_size_preview, skip_nsfw_preview, open_url_with_js, check_model_version_at_startup]
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
# -*- coding: UTF-8 -*-
|
||||
# This extension can help you manage your models from civitai. It can download preview, add trigger words, open model page and use the prompt from preview image
|
||||
# repo: https://github.com/butaixianran/
|
||||
|
||||
|
||||
|
||||
import modules.scripts as scripts
|
||||
import gradio as gr
|
||||
import os
|
||||
import webbrowser
|
||||
import requests
|
||||
import random
|
||||
import hashlib
|
||||
import json
|
||||
import shutil
|
||||
import re
|
||||
import modules
|
||||
from modules import script_callbacks
|
||||
from modules import shared
|
||||
from scripts.lib import operator
|
||||
from scripts.lib import setting
|
||||
|
||||
|
||||
# load setting
|
||||
setting.load()
|
||||
|
||||
def on_ui_tabs():
|
||||
# init
|
||||
|
||||
# get prompt textarea
|
||||
# UI structure
|
||||
# check modules/ui.py, search for txt2img_paste_fields
|
||||
# Negative prompt is the second element
|
||||
txt2img_prompt = modules.ui.txt2img_paste_fields[0][0]
|
||||
txt2img_neg_prompt = modules.ui.txt2img_paste_fields[1][0]
|
||||
img2img_prompt = modules.ui.img2img_paste_fields[0][0]
|
||||
img2img_neg_prompt = modules.ui.img2img_paste_fields[1][0]
|
||||
|
||||
|
||||
# ====UI====
|
||||
# with gr.Blocks(analytics_enabled=False) as civitai_helper:
|
||||
with gr.Blocks() as civitai_helper:
|
||||
|
||||
# init
|
||||
low_memory_sha = setting.data["model"]["low_memory_sha"]
|
||||
max_size_preview = setting.data["model"]["max_size_preview"]
|
||||
skip_nsfw_preview = setting.data["model"]["skip_nsfw_preview"]
|
||||
open_url_with_js = setting.data["general"]["open_url_with_js"]
|
||||
check_model_version_at_startup = setting.data["general"]["check_model_version_at_startup"]
|
||||
|
||||
|
||||
# UI will have 3 tabs:
|
||||
# Model Info: Scan model or force a model link to civitai model info by model id or url
|
||||
# Settging: Setting for general use, also can save setting for all tabs
|
||||
# Tool: handy functions, like making all model info readable.
|
||||
with gr.Tab("Model"):
|
||||
with gr.Row():
|
||||
low_memory_sha_ckb = gr.Checkbox(label="Memory Optimised SHA256", value=low_memory_sha, elem_id="ch_low_memory_sha_ckb")
|
||||
max_size_preview_ckb = gr.Checkbox(label="Download Max Size Preview", value=max_size_preview, elem_id="ch_max_size_preview_ckb")
|
||||
skip_nsfw_preview_ckb = gr.Checkbox(label="SKip NSFW Preview images", value=skip_nsfw_preview, elem_id="ch_skip_nsfw_preview_ckb")
|
||||
|
||||
scan_model_btn = gr.Button(value="Scan model", elem_id="ch_scan_model_btn")
|
||||
|
||||
gr.Markdown("Check console log window for detail, after clicking Scan button")
|
||||
|
||||
|
||||
# with gr.Tab("Settging"):
|
||||
|
||||
# with gr.Tab("Tool"):
|
||||
|
||||
# hidden component for js, not in any tab
|
||||
js_msg_txtbox = gr.Textbox(label="Request Msg From Js", visible=False, lines=1, value="", elem_id="ch_js_msg_txtbox")
|
||||
py_msg_txtbox = gr.Textbox(label="Response Msg From Python", visible=False, lines=1, value="", elem_id="ch_py_msg_txtbox")
|
||||
js_open_url_btn = gr.Button(value="Open Model Url", visible=False, elem_id="ch_js_open_url_btn")
|
||||
js_add_trigger_words_btn = gr.Button(value="Add Trigger Words", visible=False, elem_id="ch_js_add_trigger_words_btn")
|
||||
js_use_preview_prompt_btn = gr.Button(value="Use Prompt from Preview Image", visible=False, elem_id="ch_js_use_preview_prompt_btn")
|
||||
|
||||
# ====events====
|
||||
scan_model_btn.click(operator.scan_model, inputs=[low_memory_sha_ckb, max_size_preview_ckb, skip_nsfw_preview_ckb])
|
||||
js_open_url_btn.click(operator.open_model_url, inputs=[js_msg_txtbox])
|
||||
js_add_trigger_words_btn.click(operator.add_trigger_words, inputs=[js_msg_txtbox], outputs=[txt2img_prompt, img2img_prompt])
|
||||
js_use_preview_prompt_btn.click(operator.use_preview_image_prompt, inputs=[js_msg_txtbox], outputs=[txt2img_prompt, txt2img_neg_prompt, img2img_prompt, img2img_neg_prompt])
|
||||
|
||||
# the third parameter is the element id on html, with a "tab_" as prefix
|
||||
return (civitai_helper , "Civitai Helper", "civitai_helper"),
|
||||
|
||||
script_callbacks.on_ui_tabs(on_ui_tabs)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue