brayden-gg commited on
Commit
323e91a
1 Parent(s): e3e89ac

added download button

Browse files
Files changed (3) hide show
  1. .gitignore +2 -0
  2. app.py +28 -21
  3. convenience.py +2 -2
.gitignore CHANGED
@@ -3,6 +3,7 @@
3
  venv/
4
  data/writers/*
5
  *.gif
 
6
  results/
7
  samples/
8
  __pycache__/
@@ -19,3 +20,4 @@ __pycache__/
19
  !/data/writers/137
20
  !/data/writers/147
21
  !/data/writers/151
 
 
3
  venv/
4
  data/writers/*
5
  *.gif
6
+ *.svg
7
  results/
8
  samples/
9
  __pycache__/
 
20
  !/data/writers/137
21
  !/data/writers/147
22
  !/data/writers/151
23
+
app.py CHANGED
@@ -77,7 +77,8 @@ def update_writer_slider(val):
77
 
78
  net.clamp_mdn = 0
79
  svg = convenience.draw_words_svg(writer_words, all_word_writer_Ws, all_word_writer_Cs, weights, net)
80
- return svg
 
81
 
82
 
83
  def update_chosen_writers(writer1, writer2):
@@ -94,7 +95,7 @@ def update_chosen_writers(writer1, writer2):
94
  mean_global_W = convenience.get_mean_global_W(net, loaded_data, device)
95
  writer_mean_Ws.append(mean_global_W)
96
 
97
- return gr.Slider.update(label=f"{writer1} vs. {writer2}"), update_writer_slider(writer_weight)
98
 
99
  # for character blend
100
 
@@ -110,8 +111,8 @@ def update_char_slider(weight):
110
  all_W_c = convenience.get_character_blend_W_c(character_weights, char_Ws, char_Cs)
111
  all_commands = convenience.get_commands(net, blend_chars[0], all_W_c)
112
  svg = convenience.commands_to_svg(all_commands, 750, 160, 375)
113
-
114
- return svg
115
 
116
 
117
  def update_blend_chars(c1, c2):
@@ -146,7 +147,8 @@ def sample_mdn(maxs, maxr):
146
  net.clamp_mdn = maxr
147
  net.scale_sd = maxs
148
  svg = convenience.draw_words_svg(mdn_words, all_word_mdn_Ws, all_word_mdn_Cs, [1], net)
149
- return svg
 
150
 
151
 
152
  update_writer_word(" ".join(writer_words))
@@ -173,14 +175,15 @@ with gr.Blocks() as demo:
173
  writer_submit = gr.Button("Submit")
174
  with gr.Row():
175
  writer_default_image = update_writer_slider(writer_weight)
176
- writer_output = gr.HTML(writer_default_image)
177
-
178
- writer_submit.click(fn=update_writer_slider, inputs=[writer_slider], outputs=[writer_output], show_progress=False)
179
- writer_slider.change(fn=update_writer_slider, inputs=[writer_slider], outputs=[writer_output], show_progress=False)
180
- target_word.submit(fn=update_writer_word, inputs=[target_word], outputs=[writer_output], show_progress=False)
 
181
 
182
- writer1.change(fn=update_chosen_writers, inputs=[writer1, writer2], outputs=[writer_slider, writer_output])
183
- writer2.change(fn=update_chosen_writers, inputs=[writer1, writer2], outputs=[writer_slider, writer_output])
184
 
185
  with gr.TabItem("Blend Characters"):
186
  with gr.Row():
@@ -192,12 +195,14 @@ with gr.Blocks() as demo:
192
  char_slider = gr.Slider(0, 1, value=char_weight, label=f"'{blend_chars[0]}' vs. '{blend_chars[1]}'")
193
  with gr.Row():
194
  char_default_image = update_char_slider(char_weight)
195
- char_output = gr.HTML(char_default_image)
 
 
196
 
197
- char_slider.change(fn=update_char_slider, inputs=[char_slider], outputs=[char_output], show_progress=False)
198
 
199
- char1.change(fn=update_blend_chars, inputs=[char1, char2], outputs=[char_slider])
200
- char2.change(fn=update_blend_chars, inputs=[char1, char2], outputs=[char_slider])
201
 
202
  with gr.TabItem("Add Randomness"):
203
  mdn_word = gr.Textbox(label="Target Word", value=" ".join(mdn_words), max_lines=1)
@@ -210,11 +215,13 @@ with gr.Blocks() as demo:
210
  mdn_sample_button = gr.Button(value="Resample!")
211
  with gr.Row():
212
  default_im = sample_mdn(net.scale_sd, net.clamp_mdn)
213
- mdn_output = gr.HTML(default_im)
 
 
214
 
215
- max_rand.change(fn=sample_mdn, inputs=[scale_rand, max_rand], outputs=[mdn_output], show_progress=False)
216
- scale_rand.change(fn=sample_mdn, inputs=[scale_rand, max_rand], outputs=[mdn_output], show_progress=False)
217
- mdn_sample_button.click(fn=sample_mdn, inputs=[scale_rand, max_rand], outputs=[mdn_output], show_progress=False)
218
- mdn_word.submit(fn=update_mdn_word, inputs=[mdn_word], outputs=[mdn_output], show_progress=False)
219
 
220
  demo.launch()
 
77
 
78
  net.clamp_mdn = 0
79
  svg = convenience.draw_words_svg(writer_words, all_word_writer_Ws, all_word_writer_Cs, weights, net)
80
+ svg.saveas("DSD_writer_interpolation.svg")
81
+ return gr.HTML.update(value=svg.tostring()), gr.File.update(value="./DSD_writer_interpolation.svg")
82
 
83
 
84
  def update_chosen_writers(writer1, writer2):
 
95
  mean_global_W = convenience.get_mean_global_W(net, loaded_data, device)
96
  writer_mean_Ws.append(mean_global_W)
97
 
98
+ return gr.Slider.update(label=f"{writer1} vs. {writer2}"), *update_writer_slider(writer_weight)
99
 
100
  # for character blend
101
 
 
111
  all_W_c = convenience.get_character_blend_W_c(character_weights, char_Ws, char_Cs)
112
  all_commands = convenience.get_commands(net, blend_chars[0], all_W_c)
113
  svg = convenience.commands_to_svg(all_commands, 750, 160, 375)
114
+ svg.saveas("DSD_char_interpolation.svg")
115
+ return gr.HTML.update(value=svg.tostring()), gr.File.update(value="./DSD_char_interpolation.svg")
116
 
117
 
118
  def update_blend_chars(c1, c2):
 
147
  net.clamp_mdn = maxr
148
  net.scale_sd = maxs
149
  svg = convenience.draw_words_svg(mdn_words, all_word_mdn_Ws, all_word_mdn_Cs, [1], net)
150
+ svg.saveas("DSD_add_randomness.svg")
151
+ return gr.HTML.update(value=svg.tostring()), gr.File.update(value="./DSD_add_randomness.svg")
152
 
153
 
154
  update_writer_word(" ".join(writer_words))
 
175
  writer_submit = gr.Button("Submit")
176
  with gr.Row():
177
  writer_default_image = update_writer_slider(writer_weight)
178
+ writer_output = gr.HTML(writer_default_image[0]["value"])
179
+ with gr.Row():
180
+ writer_download = gr.File("./DSD_writer_interpolation.svg", interactive=False, show_label=False)
181
+ writer_submit.click(fn=update_writer_slider, inputs=[writer_slider], outputs=[writer_output, writer_download], show_progress=False)
182
+ writer_slider.change(fn=update_writer_slider, inputs=[writer_slider], outputs=[writer_output, writer_download], show_progress=False)
183
+ target_word.submit(fn=update_writer_word, inputs=[target_word], outputs=[writer_output, writer_download], show_progress=False)
184
 
185
+ writer1.change(fn=update_chosen_writers, inputs=[writer1, writer2], outputs=[writer_slider, writer_output, writer_download])
186
+ writer2.change(fn=update_chosen_writers, inputs=[writer1, writer2], outputs=[writer_slider, writer_output, writer_download])
187
 
188
  with gr.TabItem("Blend Characters"):
189
  with gr.Row():
 
195
  char_slider = gr.Slider(0, 1, value=char_weight, label=f"'{blend_chars[0]}' vs. '{blend_chars[1]}'")
196
  with gr.Row():
197
  char_default_image = update_char_slider(char_weight)
198
+ char_output = gr.HTML(char_default_image[0]["value"])
199
+ with gr.Row():
200
+ char_download = gr.File("./DSD_char_interpolation.svg", interactive=False, show_label=False)
201
 
202
+ char_slider.change(fn=update_char_slider, inputs=[char_slider], outputs=[char_output, char_download], show_progress=False)
203
 
204
+ char1.change(fn=update_blend_chars, inputs=[char1, char2], outputs=[char_slider, char_download])
205
+ char2.change(fn=update_blend_chars, inputs=[char1, char2], outputs=[char_slider, char_download])
206
 
207
  with gr.TabItem("Add Randomness"):
208
  mdn_word = gr.Textbox(label="Target Word", value=" ".join(mdn_words), max_lines=1)
 
215
  mdn_sample_button = gr.Button(value="Resample!")
216
  with gr.Row():
217
  default_im = sample_mdn(net.scale_sd, net.clamp_mdn)
218
+ mdn_output = gr.HTML(default_im[0]["value"])
219
+ with gr.Row():
220
+ randomness_download = gr.File("./DSD_add_randomness.svg", interactive=False, show_label=False)
221
 
222
+ max_rand.change(fn=sample_mdn, inputs=[scale_rand, max_rand], outputs=[mdn_output, randomness_download], show_progress=False)
223
+ scale_rand.change(fn=sample_mdn, inputs=[scale_rand, max_rand], outputs=[mdn_output, randomness_download], show_progress=False)
224
+ mdn_sample_button.click(fn=sample_mdn, inputs=[scale_rand, max_rand], outputs=[mdn_output, randomness_download], show_progress=False)
225
+ mdn_word.submit(fn=update_mdn_word, inputs=[mdn_word], outputs=[mdn_output, randomness_download], show_progress=False)
226
 
227
  demo.launch()
convenience.py CHANGED
@@ -529,7 +529,7 @@ def draw_words_svg(words, word_Ws, word_Cs, writer_weights, net):
529
  dwg.add(path)
530
  path.push("M", x + width, y)
531
  width += np.max(all_commands[:, 0]) + 25
532
- return dwg.tostring()
533
 
534
 
535
  def commands_to_image(commands, imW, imH, xoff, yoff):
@@ -555,4 +555,4 @@ def commands_to_svg(commands, imW, imH, xoff):
555
  path = svgwrite.path.Path(stroke="white", stroke_width="1")
556
  dwg.add(path)
557
  path.push("M", x + xoff, y)
558
- return dwg.tostring()
 
529
  dwg.add(path)
530
  path.push("M", x + width, y)
531
  width += np.max(all_commands[:, 0]) + 25
532
+ return dwg
533
 
534
 
535
  def commands_to_image(commands, imW, imH, xoff, yoff):
 
555
  path = svgwrite.path.Path(stroke="white", stroke_width="1")
556
  dwg.add(path)
557
  path.push("M", x + xoff, y)
558
+ return dwg