Spaces:
Running
on
Zero
Running
on
Zero
ui: make preset prompting more user friendly on fe (#4)
Browse files- ui: make preset prompting more user friendly on fe (0df64d5394854038780b8ea01ec7dcb371c724ec)
- app_local.py +40 -1
app_local.py
CHANGED
|
@@ -236,7 +236,24 @@ if is_xformers_available():
|
|
| 236 |
else:
|
| 237 |
print("xformers not available")
|
| 238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
|
|
|
|
| 240 |
@spaces.GPU()
|
| 241 |
def infer(
|
| 242 |
image,
|
|
@@ -442,6 +459,15 @@ with gr.Blocks(title="Qwen Image Edit - Fast Lightning Mode w/ Batch") as demo:
|
|
| 442 |
interactive=True
|
| 443 |
)
|
| 444 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 445 |
run_button = gr.Button(
|
| 446 |
"Generate Edit(s)",
|
| 447 |
variant="primary"
|
|
@@ -495,6 +521,19 @@ with gr.Blocks(title="Qwen Image Edit - Fast Lightning Mode w/ Batch") as demo:
|
|
| 495 |
value="<div style='padding:15px; margin-top:15px'>"
|
| 496 |
"Prompt details will appear after generation</div>"
|
| 497 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 498 |
|
| 499 |
# Set up processing
|
| 500 |
inputs = [
|
|
@@ -506,7 +545,7 @@ with gr.Blocks(title="Qwen Image Edit - Fast Lightning Mode w/ Batch") as demo:
|
|
| 506 |
num_inference_steps,
|
| 507 |
rewrite_toggle,
|
| 508 |
num_images_per_prompt,
|
| 509 |
-
preset_dropdown
|
| 510 |
]
|
| 511 |
outputs = [result, seed, prompt_info]
|
| 512 |
|
|
|
|
| 236 |
else:
|
| 237 |
print("xformers not available")
|
| 238 |
|
| 239 |
+
# Function to update prompt preview when preset is selected
|
| 240 |
+
def update_prompt_preview(preset_type, base_prompt):
|
| 241 |
+
"""Update the prompt preview display based on selected preset and base prompt"""
|
| 242 |
+
if preset_type and preset_type in PRESETS:
|
| 243 |
+
preset = PRESETS[preset_type]
|
| 244 |
+
preview_text = f"**Preset: {preset_type}**\n\n"
|
| 245 |
+
preview_text += f"*{preset['description']}*\n\n"
|
| 246 |
+
preview_text += "**Generated Prompts:**\n"
|
| 247 |
+
|
| 248 |
+
for i, preset_prompt in enumerate(preset["prompts"], 1):
|
| 249 |
+
full_prompt = f"{base_prompt}, {preset_prompt}"
|
| 250 |
+
preview_text += f"{i}. {full_prompt}\n"
|
| 251 |
+
|
| 252 |
+
return preview_text
|
| 253 |
+
else:
|
| 254 |
+
return "Select a preset above to see how your base prompt will be modified for batch generation."
|
| 255 |
|
| 256 |
+
|
| 257 |
@spaces.GPU()
|
| 258 |
def infer(
|
| 259 |
image,
|
|
|
|
| 459 |
interactive=True
|
| 460 |
)
|
| 461 |
|
| 462 |
+
# Add prompt preview component
|
| 463 |
+
prompt_preview = gr.Textbox(
|
| 464 |
+
label="📋 Prompt Preview",
|
| 465 |
+
interactive=False,
|
| 466 |
+
lines=6,
|
| 467 |
+
max_lines=10,
|
| 468 |
+
value="Enter a base prompt and select a preset above to see how your prompt will be modified for batch generation.",
|
| 469 |
+
placeholder="Prompt preview will appear here..."
|
| 470 |
+
)
|
| 471 |
run_button = gr.Button(
|
| 472 |
"Generate Edit(s)",
|
| 473 |
variant="primary"
|
|
|
|
| 521 |
value="<div style='padding:15px; margin-top:15px'>"
|
| 522 |
"Prompt details will appear after generation</div>"
|
| 523 |
)
|
| 524 |
+
|
| 525 |
+
# Set up prompt preview update
|
| 526 |
+
preset_dropdown.change(
|
| 527 |
+
fn=update_prompt_preview,
|
| 528 |
+
inputs=[preset_dropdown, prompt],
|
| 529 |
+
outputs=prompt_preview
|
| 530 |
+
)
|
| 531 |
+
|
| 532 |
+
prompt.change(
|
| 533 |
+
fn=update_prompt_preview,
|
| 534 |
+
inputs=[preset_dropdown, prompt],
|
| 535 |
+
outputs=prompt_preview
|
| 536 |
+
)
|
| 537 |
|
| 538 |
# Set up processing
|
| 539 |
inputs = [
|
|
|
|
| 545 |
num_inference_steps,
|
| 546 |
rewrite_toggle,
|
| 547 |
num_images_per_prompt,
|
| 548 |
+
preset_dropdown
|
| 549 |
]
|
| 550 |
outputs = [result, seed, prompt_info]
|
| 551 |
|