_Noxty commited on
Commit
7fd0b6a
·
verified ·
1 Parent(s): 1a9d966

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +119 -116
app.py CHANGED
@@ -1,116 +1,119 @@
1
- import gradio as gr
2
- from StableGR import (generate_image, 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, download_file)
5
-
6
-
7
- css = """
8
- .title { font-size: 3em; align-items: center; text-align: center; }
9
- .info { align-items: center; text-align: center; }
10
- .block.result { margin: 1em 0; padding: 1em; box-shadow: 0 0 3px 3px #664422, 0 0 3px 2px #664422 inset; border-radius: 6px; background: #665544; }
11
- .desc [src$='#float'] { float: right; margin: 20px; }
12
- """
13
-
14
-
15
- with gr.Blocks(fill_width=True, css=css) as demo:
16
- with gr.Column():
17
- gr.Markdown("# StableGR", elem_classes="title")
18
- state = gr.State(value={})
19
- with gr.TabItem("Search Civitai"):
20
- with gr.Row():
21
- search_civitai_type = gr.CheckboxGroup(label="Type", choices=CIVITAI_TYPE, value=["Checkpoint", "LORA"])
22
- search_civitai_basemodel = gr.CheckboxGroup(label="Base Model", choices=CIVITAI_BASEMODEL, value=[])
23
- search_civitai_filetype = gr.CheckboxGroup(label="File type", choices=CIVITAI_FILETYPE, value=["Model"])
24
- with gr.Row():
25
- search_civitai_sort = gr.Radio(label="Sort", choices=CIVITAI_SORT, value=CIVITAI_SORT[0])
26
- search_civitai_period = gr.Radio(label="Period", choices=CIVITAI_PERIOD, value="Month")
27
- search_civitai_limit = gr.Number(label="Limit", minimum=1, maximum=100, step=1, value=100)
28
- search_civitai_page = gr.Number(label="Page", info="If 0, retrieve all pages", minimum=0, maximum=10, step=1, value=1)
29
- with gr.Row(equal_height=True):
30
- search_civitai_query = gr.Textbox(label="Query", placeholder="flux", lines=1)
31
- search_civitai_tag = gr.Dropdown(label="Tag", choices=get_civitai_tag(), value=get_civitai_tag()[0], allow_custom_value=True)
32
- search_civitai_user = gr.Textbox(label="Username", lines=1)
33
- search_civitai_submit = gr.Button("Search on Civitai")
34
- with gr.TabItem("Results"):
35
- with gr.Row():
36
- search_civitai_desc = gr.Markdown(value="", visible=False, elem_classes="desc")
37
- search_civitai_json = gr.JSON(value={}, visible=False)
38
- with gr.Row(equal_height=True):
39
- with gr.Column(scale=9):
40
- with gr.TabItem("Select from Gallery"):
41
- search_civitai_gallery = gr.Gallery([], label="Results", allow_preview=False, columns=5, elem_id="gallery", show_share_button=False, interactive=False)
42
- with gr.TabItem("Select by Checkbox"):
43
- search_civitai_result_checkbox = gr.CheckboxGroup(label="", choices=[], value=[])
44
- search_civitai_result = gr.Dropdown(label="Search Results", choices=[("", "")], value=[],
45
- allow_custom_value=True, visible=True, multiselect=True)
46
- search_civitai_result_info = gr.Markdown("Search result.", elem_classes="info")
47
- with gr.Column(scale=1):
48
- search_civitai_add = gr.Button("Add to download URLs")
49
- search_civitai_select_all = gr.Button("Select All", variant="secondary", size="sm")
50
- with gr.Group():
51
- dl_url = gr.Textbox(label="Download URL(s)", placeholder="https://civitai.com/api/download/models/28907\n...", value="", lines=3, max_lines=255)
52
- with gr.Column():
53
- civitai_key = gr.Textbox(label="Your Civitai Key", value="", max_lines=1)
54
- gr.Markdown("Your Civitai API key is available at [https://civitai.com/user/account](https://civitai.com/user/account).", elem_classes="info")
55
-
56
- with gr.Row():
57
- run_base = gr.Button(value="Download Base Model", variant="primary")
58
- run_lora = gr.Button(value="Download Lora", variant="primary")
59
- uploaded_urls = gr.CheckboxGroup(visible=False, choices=[], value=None) # hidden
60
- #urls_md = gr.Markdown("<br><br>", elem_classes="result")
61
- urls_remain = gr.Textbox("Remaining URLs", value="", show_copy_button=True, visible=False)
62
- with gr.Column():
63
- base_model = gr.File(label="Base Models")
64
- lora_A = gr.File(label="Lora")
65
- with gr.Row():
66
- prompt = gr.Textbox(label="Prompt", value="A highly detailed portrait of an underwater city, with towering spires and domes rising up from the ocean floor")
67
-
68
- num_steps = gr.Slider(label="Number of Steps", minimum=1, maximum=100, value=30, step=1)
69
- guidance_scale = gr.Slider(label="Guidance Scale", minimum=0.1, maximum=20.0, value=7.5, step=0.1)
70
- sampler = gr.Dropdown(label="Sampler", choices=["DPM++ 2M", "Euler", "TCD"], value="DPM++ 2M")
71
- img_width = gr.Slider(label="Image Width", minimum=64, maximum=2048, value=512, step=64)
72
- img_height = gr.Slider(label="Image Height", minimum=64, maximum=2048, value=1024, step=64)
73
- generate_button = gr.Button("Generate Image")
74
- output_image = gr.Image(label="output")
75
-
76
- gr.on(
77
- triggers=[run_base.click],
78
- fn=download_file,
79
- inputs=[dl_url, civitai_key],
80
- outputs=base_model,
81
- queue=True,
82
- )
83
- gr.on(
84
- triggers=[run_lora.click],
85
- fn=download_file,
86
- inputs=[dl_url, civitai_key],
87
- outputs=lora_A,
88
- queue=True,
89
- )
90
- gr.on(
91
- triggers=[generate_button.click],
92
- fn=generate_image,
93
- inputs=[base_model, prompt, lora_A, num_steps, guidance_scale, sampler, img_width, img_height],
94
- outputs=output_image,
95
- queue=True,
96
- )
97
- gr.on(
98
- triggers=[search_civitai_submit.click, search_civitai_query.submit, search_civitai_user.submit],
99
- fn=search_civitai,
100
- inputs=[search_civitai_query, search_civitai_type, search_civitai_basemodel, search_civitai_sort,
101
- search_civitai_period, search_civitai_tag, search_civitai_user, search_civitai_limit,
102
- search_civitai_page, search_civitai_filetype, civitai_key, search_civitai_gallery, state],
103
- outputs=[search_civitai_result, search_civitai_desc, search_civitai_submit, search_civitai_query, search_civitai_gallery,
104
- search_civitai_result_checkbox, search_civitai_result_info, state],
105
- queue=False,
106
- show_api=False,
107
- )
108
- search_civitai_result.change(select_civitai_item, [search_civitai_result, state], [search_civitai_desc, search_civitai_json, state], queue=False, show_api=False)\
109
- .success(update_civitai_checkbox, [search_civitai_result], [search_civitai_result_checkbox], queue=True, show_api=False)
110
- search_civitai_result_checkbox.select(from_civitai_checkbox, [search_civitai_result_checkbox], [search_civitai_result], queue=False, show_api=False)
111
- search_civitai_add.click(add_civitai_item, [search_civitai_result, dl_url], [dl_url], queue=False, show_api=False)
112
- search_civitai_select_all.click(select_civitai_all_item, [search_civitai_select_all, state], [search_civitai_select_all, search_civitai_result], queue=False, show_api=False)
113
- search_civitai_gallery.select(update_civitai_selection, [search_civitai_result, state], [search_civitai_result], queue=False, show_api=False)
114
-
115
- demo.queue()
116
- demo.launch(debug=True, share=True)
 
 
 
 
1
+ import gradio as gr
2
+ from StableGR import (generate_image, 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, download_file)
5
+
6
+
7
+ css = """
8
+ .title { font-size: 3em; align-items: center; text-align: center; }
9
+ .info { align-items: center; text-align: center; }
10
+ .block.result { margin: 1em 0; padding: 1em; box-shadow: 0 0 3px 3px #664422, 0 0 3px 2px #664422 inset; border-radius: 6px; background: #665544; }
11
+ .desc [src$='#float'] { float: right; margin: 20px; }
12
+ """
13
+
14
+
15
+ with gr.Blocks(fill_width=True, css=css) as demo:
16
+ with gr.Column():
17
+ gr.Markdown("# StableGR", elem_classes="title")
18
+ state = gr.State(value={})
19
+ with gr.TabItem("Search Civitai"):
20
+ with gr.Row():
21
+ search_civitai_type = gr.CheckboxGroup(label="Type", choices=CIVITAI_TYPE, value=["Checkpoint", "LORA"])
22
+ search_civitai_basemodel = gr.CheckboxGroup(label="Base Model", choices=CIVITAI_BASEMODEL, value=[])
23
+ search_civitai_filetype = gr.CheckboxGroup(label="File type", choices=CIVITAI_FILETYPE, value=["Model"])
24
+ with gr.Row():
25
+ with gr.Row():
26
+ search_civitai_sort = gr.Radio(label="Sort", choices=CIVITAI_SORT, value=CIVITAI_SORT[0])
27
+ search_civitai_period = gr.Radio(label="Period", choices=CIVITAI_PERIOD, value="Month")
28
+ search_civitai_limit = gr.Number(label="Limit", minimum=1, maximum=100, step=1, value=100)
29
+ search_civitai_page = gr.Number(label="Page", info="If 0, retrieve all pages", minimum=0, maximum=10, step=1, value=1)
30
+ with gr.Row():
31
+ search_civitai_query = gr.Textbox(label="Query", placeholder="flux", lines=1)
32
+ search_civitai_tag = gr.Dropdown(label="Tag", choices=get_civitai_tag(), value=get_civitai_tag()[0], allow_custom_value=True)
33
+ search_civitai_user = gr.Textbox(label="Username", lines=1)
34
+ search_civitai_submit = gr.Button("Search on Civitai")
35
+ with gr.TabItem("Results"):
36
+ with gr.Row():
37
+ search_civitai_desc = gr.Markdown(value="", visible=False, elem_classes="desc")
38
+ search_civitai_json = gr.JSON(value={}, visible=False)
39
+ with gr.Row(equal_height=True):
40
+ with gr.Column(scale=9):
41
+ with gr.TabItem("Select from Gallery"):
42
+ search_civitai_gallery = gr.Gallery([], label="Results", allow_preview=False, columns=5, elem_id="gallery", show_share_button=False, interactive=False)
43
+ with gr.TabItem("Select by Checkbox"):
44
+ search_civitai_result_checkbox = gr.CheckboxGroup(label="", choices=[], value=[])
45
+ search_civitai_result = gr.Dropdown(label="Search Results", choices=[("", "")], value=[],
46
+ allow_custom_value=True, visible=True, multiselect=True)
47
+ search_civitai_result_info = gr.Markdown("Search result.", elem_classes="info")
48
+ with gr.Column(scale=1):
49
+ search_civitai_add = gr.Button("Add to download URLs")
50
+ search_civitai_select_all = gr.Button("Select All", variant="secondary", size="sm")
51
+ with gr.Group():
52
+ dl_url = gr.Textbox(label="Download URL(s)", placeholder="https://civitai.com/api/download/models/28907\n...", value="", lines=3, max_lines=255)
53
+ with gr.Column():
54
+ civitai_key = gr.Textbox(label="Your Civitai Key", value="", max_lines=1)
55
+ gr.Markdown("Your Civitai API key is available at [https://civitai.com/user/account](https://civitai.com/user/account).", elem_classes="info")
56
+
57
+ with gr.Row():
58
+ run_base = gr.Button(value="Download Base Model", variant="primary")
59
+ run_lora = gr.Button(value="Download Lora", variant="primary")
60
+ uploaded_urls = gr.CheckboxGroup(visible=False, choices=[], value=None) # hidden
61
+ #urls_md = gr.Markdown("<br><br>", elem_classes="result")
62
+ urls_remain = gr.Textbox("Remaining URLs", value="", show_copy_button=True, visible=False)
63
+ with gr.Column():
64
+ base_model = gr.File(label="Base Models")
65
+ lora_A = gr.File(label="Lora")
66
+ with gr.Row():
67
+ prompt = gr.Textbox(label="Prompt", value="A highly detailed portrait of an underwater city, with towering spires and domes rising up from the ocean floor")
68
+ with gr.Row():
69
+ with gr.Row():
70
+ num_steps = gr.Slider(label="Number of Steps", minimum=1, maximum=100, value=30, step=1)
71
+ guidance_scale = gr.Slider(label="Guidance Scale", minimum=0.1, maximum=20.0, value=7.5, step=0.1)
72
+ sampler = gr.Dropdown(label="Sampler", choices=["DPM++ 2M", "Euler", "TCD"], value="DPM++ 2M")
73
+ with gr.Row():
74
+ img_width = gr.Slider(label="Image Width", minimum=64, maximum=2048, value=512, step=64)
75
+ img_height = gr.Slider(label="Image Height", minimum=64, maximum=2048, value=1024, step=64)
76
+ generate_button = gr.Button("Generate Image")
77
+ output_image = gr.Image(label="output")
78
+
79
+ gr.on(
80
+ triggers=[run_base.click],
81
+ fn=download_file,
82
+ inputs=[dl_url, civitai_key],
83
+ outputs=base_model,
84
+ queue=True,
85
+ )
86
+ gr.on(
87
+ triggers=[run_lora.click],
88
+ fn=download_file,
89
+ inputs=[dl_url, civitai_key],
90
+ outputs=lora_A,
91
+ queue=True,
92
+ )
93
+ gr.on(
94
+ triggers=[generate_button.click],
95
+ fn=generate_image,
96
+ inputs=[base_model, prompt, lora_A, num_steps, guidance_scale, sampler, img_width, img_height],
97
+ outputs=output_image,
98
+ queue=True,
99
+ )
100
+ gr.on(
101
+ triggers=[search_civitai_submit.click, search_civitai_query.submit, search_civitai_user.submit],
102
+ fn=search_civitai,
103
+ inputs=[search_civitai_query, search_civitai_type, search_civitai_basemodel, search_civitai_sort,
104
+ search_civitai_period, search_civitai_tag, search_civitai_user, search_civitai_limit,
105
+ search_civitai_page, search_civitai_filetype, civitai_key, search_civitai_gallery, state],
106
+ outputs=[search_civitai_result, search_civitai_desc, search_civitai_submit, search_civitai_query, search_civitai_gallery,
107
+ search_civitai_result_checkbox, search_civitai_result_info, state],
108
+ queue=False,
109
+ show_api=False,
110
+ )
111
+ search_civitai_result.change(select_civitai_item, [search_civitai_result, state], [search_civitai_desc, search_civitai_json, state], queue=False, show_api=False)\
112
+ .success(update_civitai_checkbox, [search_civitai_result], [search_civitai_result_checkbox], queue=True, show_api=False)
113
+ search_civitai_result_checkbox.select(from_civitai_checkbox, [search_civitai_result_checkbox], [search_civitai_result], queue=False, show_api=False)
114
+ search_civitai_add.click(add_civitai_item, [search_civitai_result, dl_url], [dl_url], queue=False, show_api=False)
115
+ search_civitai_select_all.click(select_civitai_all_item, [search_civitai_select_all, state], [search_civitai_select_all, search_civitai_result], queue=False, show_api=False)
116
+ search_civitai_gallery.select(update_civitai_selection, [search_civitai_result, state], [search_civitai_result], queue=False, show_api=False)
117
+
118
+ demo.queue()
119
+ demo.launch(debug=True, share=True)