nickdigger commited on
Commit
da35d44
Β·
verified Β·
1 Parent(s): d0aa398

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -13
app.py CHANGED
@@ -21,7 +21,7 @@ import tempfile, gc, os, shutil, json, time, re
21
  from urllib.parse import urlparse
22
  from typing import Optional
23
 
24
- # ===== BUILT-IN UTILITY FUNCTIONS =====
25
  def fix_image_url(raw_url_or_path: str, host: Optional[str] = None) -> str:
26
  if not raw_url_or_path:
27
  return raw_url_or_path
@@ -170,7 +170,7 @@ def safe_generate_caption_direct(image, system_prompt, user_prompt, max_chars=12
170
  gc.collect()
171
  return f"❌ Error: {str(e)[:200]}"
172
 
173
- # ===== GENERATION FUNCTIONS =====
174
  @spaces.GPU(duration=60)
175
  @torch.no_grad()
176
  def generate_caption_1(image, system1, user1):
@@ -263,7 +263,7 @@ def export_joycaption_data(keywords, custom_instructions, avoid, question, cap1,
263
  except Exception as e:
264
  return f"❌ Export failed: {str(e)}", None
265
 
266
- # ===== GRADIO UI =====
267
  with gr.Blocks(title="JoyCaption Advanced Prompting System", theme=gr.themes.Soft()) as demo:
268
  gr.HTML(TITLE)
269
  insert_key, insert_que, insert_use, insert_not = create_template_functions()
@@ -278,7 +278,8 @@ with gr.Blocks(title="JoyCaption Advanced Prompting System", theme=gr.themes.Sof
278
  ask_btn = gr.Button("Ask", variant="secondary")
279
  qa_output = gr.Textbox(label="Answer", lines=3, show_copy_button=True)
280
 
281
- gr.Markdown("---")
 
282
  gr.Markdown("**Insert Template**")
283
  with gr.Row():
284
  key_btn = gr.Button("key", size="sm")
@@ -286,20 +287,22 @@ with gr.Blocks(title="JoyCaption Advanced Prompting System", theme=gr.themes.Sof
286
  use_btn = gr.Button("use", size="sm")
287
  not_btn = gr.Button("not", size="sm")
288
 
289
- with gr.Column(scale=1):
290
  with gr.Tab("πŸ“ Casual"):
291
- system1 = gr.Textbox(label="System", lines=2, value=DEFAULT_PROMPTS["casual"]["system"])
292
- user1 = gr.Textbox(label="User", lines=2, value=DEFAULT_PROMPTS["casual"]["user"])
293
  gen1_btn = gr.Button("Generate Casual", variant="primary")
294
  out1 = gr.Textbox(lines=5, show_copy_button=True)
 
295
  with gr.Tab("🀝 Friendly"):
296
- system2 = gr.Textbox(label="System", lines=2, value=DEFAULT_PROMPTS["friendly"]["system"])
297
- user2 = gr.Textbox(label="User", lines=2, value=DEFAULT_PROMPTS["friendly"]["user"])
298
  gen2_btn = gr.Button("Generate Friendly", variant="primary")
299
  out2 = gr.Textbox(lines=5, show_copy_button=True)
 
300
  with gr.Tab("πŸ”₯ Erotic"):
301
- system3 = gr.Textbox(label="System", lines=2, value=DEFAULT_PROMPTS["erotic"]["system"])
302
- user3 = gr.Textbox(label="User", lines=2, value=DEFAULT_PROMPTS["erotic"]["user"])
303
  gen3_btn = gr.Button("Generate Erotic", variant="primary")
304
  out3 = gr.Textbox(lines=5, show_copy_button=True)
305
 
@@ -308,13 +311,12 @@ with gr.Blocks(title="JoyCaption Advanced Prompting System", theme=gr.themes.Sof
308
  export_out = gr.Textbox(visible=False)
309
  export_file = gr.File(visible=False)
310
 
311
- # === Event Bindings ===
312
  gen1_btn.click(generate_caption_1, [image_input, system1, user1], out1)
313
  gen2_btn.click(generate_caption_2, [image_input, system2, user2], out2)
314
  gen3_btn.click(generate_caption_3, [image_input, system3, user3], out3)
315
  ask_btn.click(answer_question, [image_input, question_input], qa_output)
316
 
317
- # Shared template bar
318
  key_btn.click(lambda s1,u1,k: insert_key(s1,u1,k), [system1,user1,keywords_input], [system1,user1])
319
  que_btn.click(lambda s1,u1,q: insert_que(s1,u1,q), [system1,user1,question_input], [system1,user1])
320
  use_btn.click(lambda s1,u1,c: insert_use(s1,u1,c), [system1,user1,custom_instruction_input], [system1,user1])
 
21
  from urllib.parse import urlparse
22
  from typing import Optional
23
 
24
+ # ===== UTILITIES =====
25
  def fix_image_url(raw_url_or_path: str, host: Optional[str] = None) -> str:
26
  if not raw_url_or_path:
27
  return raw_url_or_path
 
170
  gc.collect()
171
  return f"❌ Error: {str(e)[:200]}"
172
 
173
+ # ===== CAPTION FUNCTIONS =====
174
  @spaces.GPU(duration=60)
175
  @torch.no_grad()
176
  def generate_caption_1(image, system1, user1):
 
263
  except Exception as e:
264
  return f"❌ Export failed: {str(e)}", None
265
 
266
+ # ===== UI =====
267
  with gr.Blocks(title="JoyCaption Advanced Prompting System", theme=gr.themes.Soft()) as demo:
268
  gr.HTML(TITLE)
269
  insert_key, insert_que, insert_use, insert_not = create_template_functions()
 
278
  ask_btn = gr.Button("Ask", variant="secondary")
279
  qa_output = gr.Textbox(label="Answer", lines=3, show_copy_button=True)
280
 
281
+ with gr.Column(scale=1):
282
+ # Template buttons moved above tabs
283
  gr.Markdown("**Insert Template**")
284
  with gr.Row():
285
  key_btn = gr.Button("key", size="sm")
 
287
  use_btn = gr.Button("use", size="sm")
288
  not_btn = gr.Button("not", size="sm")
289
 
290
+ # Tabs with flexible Textboxes
291
  with gr.Tab("πŸ“ Casual"):
292
+ system1 = gr.Textbox(label="System", show_label=True, placeholder="", value=DEFAULT_PROMPTS["casual"]["system"], lines=1, max_lines=5)
293
+ user1 = gr.Textbox(label="User", show_label=True, placeholder="", value=DEFAULT_PROMPTS["casual"]["user"], lines=1, max_lines=8)
294
  gen1_btn = gr.Button("Generate Casual", variant="primary")
295
  out1 = gr.Textbox(lines=5, show_copy_button=True)
296
+
297
  with gr.Tab("🀝 Friendly"):
298
+ system2 = gr.Textbox(label="System", show_label=True, placeholder="", value=DEFAULT_PROMPTS["friendly"]["system"], lines=1, max_lines=5)
299
+ user2 = gr.Textbox(label="User", show_label=True, placeholder="", value=DEFAULT_PROMPTS["friendly"]["user"], lines=1, max_lines=8)
300
  gen2_btn = gr.Button("Generate Friendly", variant="primary")
301
  out2 = gr.Textbox(lines=5, show_copy_button=True)
302
+
303
  with gr.Tab("πŸ”₯ Erotic"):
304
+ system3 = gr.Textbox(label="System", show_label=True, placeholder="", value=DEFAULT_PROMPTS["erotic"]["system"], lines=1, max_lines=5)
305
+ user3 = gr.Textbox(label="User", show_label=True, placeholder="", value=DEFAULT_PROMPTS["erotic"]["user"], lines=1, max_lines=8)
306
  gen3_btn = gr.Button("Generate Erotic", variant="primary")
307
  out3 = gr.Textbox(lines=5, show_copy_button=True)
308
 
 
311
  export_out = gr.Textbox(visible=False)
312
  export_file = gr.File(visible=False)
313
 
314
+ # === EVENTS ===
315
  gen1_btn.click(generate_caption_1, [image_input, system1, user1], out1)
316
  gen2_btn.click(generate_caption_2, [image_input, system2, user2], out2)
317
  gen3_btn.click(generate_caption_3, [image_input, system3, user3], out3)
318
  ask_btn.click(answer_question, [image_input, question_input], qa_output)
319
 
 
320
  key_btn.click(lambda s1,u1,k: insert_key(s1,u1,k), [system1,user1,keywords_input], [system1,user1])
321
  que_btn.click(lambda s1,u1,q: insert_que(s1,u1,q), [system1,user1,question_input], [system1,user1])
322
  use_btn.click(lambda s1,u1,c: insert_use(s1,u1,c), [system1,user1,custom_instruction_input], [system1,user1])