Spaces:
Running
Running
Upload 3 files
Browse files- app.py +4 -2
- civitai_to_hf.py +8 -4
app.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import gradio as gr
|
2 |
from civitai_to_hf import (search_civitai, download_civitai, select_civitai_item, add_civitai_item, get_civitai_tag, select_civitai_all_item,
|
3 |
update_civitai_selection, update_civitai_checkbox, from_civitai_checkbox,
|
4 |
-
CIVITAI_TYPE, CIVITAI_BASEMODEL, CIVITAI_SORT, CIVITAI_PERIOD)
|
5 |
|
6 |
css = """
|
7 |
.title { font-size: 3em; align-items: center; text-align: center; }
|
@@ -18,6 +18,7 @@ with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", fill_width=True, css=css, delete_ca
|
|
18 |
with gr.Row():
|
19 |
search_civitai_type = gr.CheckboxGroup(label="Type", choices=CIVITAI_TYPE, value=["Checkpoint", "LORA"])
|
20 |
search_civitai_basemodel = gr.CheckboxGroup(label="Base Model", choices=CIVITAI_BASEMODEL, value=[])
|
|
|
21 |
with gr.Row():
|
22 |
search_civitai_sort = gr.Radio(label="Sort", choices=CIVITAI_SORT, value=CIVITAI_SORT[0])
|
23 |
search_civitai_period = gr.Radio(label="Period", choices=CIVITAI_PERIOD, value="Month")
|
@@ -77,7 +78,8 @@ with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", fill_width=True, css=css, delete_ca
|
|
77 |
triggers=[search_civitai_submit.click, search_civitai_query.submit, search_civitai_user.submit],
|
78 |
fn=search_civitai,
|
79 |
inputs=[search_civitai_query, search_civitai_type, search_civitai_basemodel, search_civitai_sort,
|
80 |
-
search_civitai_period, search_civitai_tag, search_civitai_user, search_civitai_limit,
|
|
|
81 |
outputs=[search_civitai_result, search_civitai_desc, search_civitai_submit, search_civitai_query, search_civitai_gallery,
|
82 |
search_civitai_result_checkbox, search_civitai_result_info, state],
|
83 |
queue=False,
|
|
|
1 |
import gradio as gr
|
2 |
from civitai_to_hf import (search_civitai, download_civitai, select_civitai_item, add_civitai_item, get_civitai_tag, select_civitai_all_item,
|
3 |
update_civitai_selection, update_civitai_checkbox, from_civitai_checkbox,
|
4 |
+
CIVITAI_TYPE, CIVITAI_BASEMODEL, CIVITAI_SORT, CIVITAI_PERIOD, CIVITAI_FILETYPE)
|
5 |
|
6 |
css = """
|
7 |
.title { font-size: 3em; align-items: center; text-align: center; }
|
|
|
18 |
with gr.Row():
|
19 |
search_civitai_type = gr.CheckboxGroup(label="Type", choices=CIVITAI_TYPE, value=["Checkpoint", "LORA"])
|
20 |
search_civitai_basemodel = gr.CheckboxGroup(label="Base Model", choices=CIVITAI_BASEMODEL, value=[])
|
21 |
+
search_civitai_filetype = gr.CheckboxGroup(label="File type", choices=CIVITAI_FILETYPE, value=["Model"])
|
22 |
with gr.Row():
|
23 |
search_civitai_sort = gr.Radio(label="Sort", choices=CIVITAI_SORT, value=CIVITAI_SORT[0])
|
24 |
search_civitai_period = gr.Radio(label="Period", choices=CIVITAI_PERIOD, value="Month")
|
|
|
78 |
triggers=[search_civitai_submit.click, search_civitai_query.submit, search_civitai_user.submit],
|
79 |
fn=search_civitai,
|
80 |
inputs=[search_civitai_query, search_civitai_type, search_civitai_basemodel, search_civitai_sort,
|
81 |
+
search_civitai_period, search_civitai_tag, search_civitai_user, search_civitai_limit,
|
82 |
+
search_civitai_page, search_civitai_filetype, search_civitai_gallery, state],
|
83 |
outputs=[search_civitai_result, search_civitai_desc, search_civitai_submit, search_civitai_query, search_civitai_gallery,
|
84 |
search_civitai_result_checkbox, search_civitai_result_info, state],
|
85 |
queue=False,
|
civitai_to_hf.py
CHANGED
@@ -185,13 +185,15 @@ def download_civitai(dl_url, civitai_key, hf_token, urls,
|
|
185 |
|
186 |
CIVITAI_TYPE = ["Checkpoint", "TextualInversion", "Hypernetwork", "AestheticGradient", "LORA", "LoCon", "DoRA",
|
187 |
"Controlnet", "Upscaler", "MotionModule", "VAE", "Poses", "Wildcards", "Workflows", "Other"]
|
|
|
188 |
CIVITAI_BASEMODEL = ["Pony", "Illustrious", "SDXL 1.0", "SD 1.5", "Flux.1 D", "Flux.1 S", "SD 3.5"]
|
189 |
CIVITAI_SORT = ["Highest Rated", "Most Downloaded", "Newest"]
|
190 |
CIVITAI_PERIOD = ["AllTime", "Year", "Month", "Week", "Day"]
|
191 |
|
192 |
|
193 |
def search_on_civitai(query: str, types: list[str], allow_model: list[str] = [], limit: int = 100,
|
194 |
-
sort: str = "Highest Rated", period: str = "AllTime", tag: str = "", user: str = "", page: int = 1,
|
|
|
195 |
user_agent = get_user_agent()
|
196 |
headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
|
197 |
base_url = 'https://civitai.com/api/v1/models'
|
@@ -260,6 +262,7 @@ def search_on_civitai(query: str, types: list[str], allow_model: list[str] = [],
|
|
260 |
for f in model['files']:
|
261 |
i = item.copy()
|
262 |
i['dl_url'] = f['downloadUrl']
|
|
|
263 |
items.append(i)
|
264 |
else:
|
265 |
item['dl_url'] = model['downloadUrl']
|
@@ -267,13 +270,14 @@ def search_on_civitai(query: str, types: list[str], allow_model: list[str] = [],
|
|
267 |
return items if len(items) > 0 else None
|
268 |
|
269 |
|
270 |
-
def search_civitai(query, types, base_model=[], sort=CIVITAI_SORT[0], period=CIVITAI_PERIOD[0], tag="", user="", limit=100, page=1,
|
|
|
271 |
civitai_last_results = {}
|
272 |
set_state(state, "civitai_last_choices", [("", "")])
|
273 |
set_state(state, "civitai_last_gallery", [])
|
274 |
set_state(state, "civitai_last_results", civitai_last_results)
|
275 |
results_info = "No item found."
|
276 |
-
items = search_on_civitai(query, types, base_model, int(limit), sort, period, tag, user, int(page))
|
277 |
if not items: return gr.update(choices=[("", "")], value=[], visible=True),\
|
278 |
gr.update(value="", visible=False), gr.update(), gr.update(), gr.update(), gr.update(), results_info, state
|
279 |
choices = []
|
@@ -365,7 +369,7 @@ def get_civitai_tag():
|
|
365 |
|
366 |
def select_civitai_item(results: list[str], state: dict):
|
367 |
json = {}
|
368 |
-
if "http" not in "".join(results) or len(results) == 0: return gr.update(value="", visible=True), gr.update(value=json, visible=False)
|
369 |
result = get_state(state, "civitai_last_results")
|
370 |
last_selects = get_state(state, "civitai_last_selects")
|
371 |
selects = list_sub(results, last_selects if last_selects else [])
|
|
|
185 |
|
186 |
CIVITAI_TYPE = ["Checkpoint", "TextualInversion", "Hypernetwork", "AestheticGradient", "LORA", "LoCon", "DoRA",
|
187 |
"Controlnet", "Upscaler", "MotionModule", "VAE", "Poses", "Wildcards", "Workflows", "Other"]
|
188 |
+
CIVITAI_FILETYPE = ["Model", "VAE", "Config", "Training Data"]
|
189 |
CIVITAI_BASEMODEL = ["Pony", "Illustrious", "SDXL 1.0", "SD 1.5", "Flux.1 D", "Flux.1 S", "SD 3.5"]
|
190 |
CIVITAI_SORT = ["Highest Rated", "Most Downloaded", "Newest"]
|
191 |
CIVITAI_PERIOD = ["AllTime", "Year", "Month", "Week", "Day"]
|
192 |
|
193 |
|
194 |
def search_on_civitai(query: str, types: list[str], allow_model: list[str] = [], limit: int = 100,
|
195 |
+
sort: str = "Highest Rated", period: str = "AllTime", tag: str = "", user: str = "", page: int = 1,
|
196 |
+
filetype: list[str] = [], progress=gr.Progress(track_tqdm=True)):
|
197 |
user_agent = get_user_agent()
|
198 |
headers = {'User-Agent': user_agent, 'content-type': 'application/json'}
|
199 |
base_url = 'https://civitai.com/api/v1/models'
|
|
|
262 |
for f in model['files']:
|
263 |
i = item.copy()
|
264 |
i['dl_url'] = f['downloadUrl']
|
265 |
+
if len(filetype) != 0 and f['type'] not in set(filetype): continue
|
266 |
items.append(i)
|
267 |
else:
|
268 |
item['dl_url'] = model['downloadUrl']
|
|
|
270 |
return items if len(items) > 0 else None
|
271 |
|
272 |
|
273 |
+
def search_civitai(query, types, base_model=[], sort=CIVITAI_SORT[0], period=CIVITAI_PERIOD[0], tag="", user="", limit=100, page=1,
|
274 |
+
filetype=[], gallery=[], state={}, progress=gr.Progress(track_tqdm=True)):
|
275 |
civitai_last_results = {}
|
276 |
set_state(state, "civitai_last_choices", [("", "")])
|
277 |
set_state(state, "civitai_last_gallery", [])
|
278 |
set_state(state, "civitai_last_results", civitai_last_results)
|
279 |
results_info = "No item found."
|
280 |
+
items = search_on_civitai(query, types, base_model, int(limit), sort, period, tag, user, int(page), filetype)
|
281 |
if not items: return gr.update(choices=[("", "")], value=[], visible=True),\
|
282 |
gr.update(value="", visible=False), gr.update(), gr.update(), gr.update(), gr.update(), results_info, state
|
283 |
choices = []
|
|
|
369 |
|
370 |
def select_civitai_item(results: list[str], state: dict):
|
371 |
json = {}
|
372 |
+
if "http" not in "".join(results) or len(results) == 0: return gr.update(value="", visible=True), gr.update(value=json, visible=False), state
|
373 |
result = get_state(state, "civitai_last_results")
|
374 |
last_selects = get_state(state, "civitai_last_selects")
|
375 |
selects = list_sub(results, last_selects if last_selects else [])
|