John6666 commited on
Commit
8c84074
·
verified ·
1 Parent(s): 07a3a3d

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +2 -2
  2. civitai_to_hf.py +19 -7
  3. utils.py +4 -0
app.py CHANGED
@@ -9,7 +9,7 @@ css = """
9
  with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", fill_width=True, css=css, delete_cache=(60, 3600)) as demo:
10
  with gr.Column():
11
  gr.Markdown("# CivitAI to HF🤗 Downloader & Uploader", elem_classes="title")
12
- with gr.Accordion("Search Civitai", open=False):
13
  with gr.Row():
14
  search_civitai_type = gr.CheckboxGroup(label="Type", choices=CIVITAI_TYPE, value=["Checkpoint", "LORA"])
15
  search_civitai_basemodel = gr.CheckboxGroup(label="Base model", choices=CIVITAI_BASEMODEL, value=[])
@@ -23,7 +23,7 @@ with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", fill_width=True, css=css, delete_ca
23
  with gr.Row():
24
  search_civitai_json = gr.JSON(value={}, visible=False)
25
  search_civitai_desc = gr.Markdown(value="", visible=False)
26
- search_civitai_result = gr.Dropdown(label="Search Results", choices=[("", "")], value="", allow_custom_value=True, visible=False)
27
  search_civitai_add = gr.Button("Add to download URLs")
28
  dl_url = gr.Textbox(label="Download URL(s)", placeholder="https://civitai.com/api/download/models/28907\n...", value="", lines=2, max_lines=255)
29
  civitai_key = gr.Textbox(label="Your Civitai Key", value="", max_lines=1)
 
9
  with gr.Blocks(theme="NoCrypt/miku@>=1.2.2", fill_width=True, css=css, delete_cache=(60, 3600)) as demo:
10
  with gr.Column():
11
  gr.Markdown("# CivitAI to HF🤗 Downloader & Uploader", elem_classes="title")
12
+ with gr.Accordion("Search Civitai", open=True):
13
  with gr.Row():
14
  search_civitai_type = gr.CheckboxGroup(label="Type", choices=CIVITAI_TYPE, value=["Checkpoint", "LORA"])
15
  search_civitai_basemodel = gr.CheckboxGroup(label="Base model", choices=CIVITAI_BASEMODEL, value=[])
 
23
  with gr.Row():
24
  search_civitai_json = gr.JSON(value={}, visible=False)
25
  search_civitai_desc = gr.Markdown(value="", visible=False)
26
+ search_civitai_result = gr.Dropdown(label="Search Results", choices=[("", "")], value="", allow_custom_value=True, visible=False, multiselect=True)
27
  search_civitai_add = gr.Button("Add to download URLs")
28
  dl_url = gr.Textbox(label="Download URL(s)", placeholder="https://civitai.com/api/download/models/28907\n...", value="", lines=2, max_lines=255)
29
  civitai_key = gr.Textbox(label="Your Civitai Key", value="", max_lines=1)
civitai_to_hf.py CHANGED
@@ -6,7 +6,7 @@ import gc
6
  import requests
7
  from requests.adapters import HTTPAdapter
8
  from urllib3.util import Retry
9
- from utils import get_token, set_token, is_repo_exists, get_user_agent, get_download_file
10
  import re
11
 
12
 
@@ -19,6 +19,14 @@ def parse_urls(s):
19
  return []
20
 
21
 
 
 
 
 
 
 
 
 
22
  def upload_safetensors_to_repo(filename, repo_id, repo_type, is_private, progress=gr.Progress(track_tqdm=True)):
23
  output_filename = Path(filename).name
24
  hf_token = get_token()
@@ -135,14 +143,18 @@ def search_civitai(query, types, base_model=[], sort=CIVITAI_SORT[0], period=CIV
135
  gr.update(visible=True), gr.update(visible=True)
136
 
137
 
138
- def select_civitai_item(search_result):
139
- if not "http" in search_result: return gr.update(value="None", visible=True)
140
- result = civitai_last_results.get(search_result, "None")
141
  md = result['md'] if result else ""
142
  return gr.update(value=md, visible=True)
143
 
144
 
145
- def add_civitai_item(search_result, dl_url):
146
- if not "http" in search_result: return gr.update(value=dl_url)
147
- new_url = f"{dl_url}\n{search_result}" if dl_url else search_result
 
 
 
 
148
  return gr.update(value=new_url)
 
6
  import requests
7
  from requests.adapters import HTTPAdapter
8
  from urllib3.util import Retry
9
+ from utils import get_token, set_token, is_repo_exists, get_user_agent, get_download_file, list_uniq
10
  import re
11
 
12
 
 
19
  return []
20
 
21
 
22
+ def to_urls(l: list[str]):
23
+ return "\n".join(l)
24
+
25
+
26
+ def uniq_urls(s):
27
+ return to_urls(list_uniq(parse_urls(s)))
28
+
29
+
30
  def upload_safetensors_to_repo(filename, repo_id, repo_type, is_private, progress=gr.Progress(track_tqdm=True)):
31
  output_filename = Path(filename).name
32
  hf_token = get_token()
 
143
  gr.update(visible=True), gr.update(visible=True)
144
 
145
 
146
+ def select_civitai_item(results: list[str]):
147
+ if "http" not in "".join(results): return gr.update(value="None", visible=True)
148
+ result = civitai_last_results.get(results[-1], "None")
149
  md = result['md'] if result else ""
150
  return gr.update(value=md, visible=True)
151
 
152
 
153
+ def add_civitai_item(results: list[str], dl_url: str):
154
+ if "http" not in "".join(results): return gr.update(value=dl_url)
155
+ new_url = dl_url if dl_url else ""
156
+ for result in results:
157
+ if "http" not in result: continue
158
+ new_url += f"\n{result}" if new_url else f"{result}"
159
+ new_url = uniq_urls(new_url)
160
  return gr.update(value=new_url)
utils.py CHANGED
@@ -63,6 +63,10 @@ def get_model_type(repo_id: str):
63
  return default
64
 
65
 
 
 
 
 
66
  def list_sub(a, b):
67
  return [e for e in a if e not in b]
68
 
 
63
  return default
64
 
65
 
66
+ def list_uniq(l):
67
+ return sorted(set(l), key=l.index)
68
+
69
+
70
  def list_sub(a, b):
71
  return [e for e in a if e not in b]
72