Spaces:
Running
on
A100
Running
on
A100
refiner tab
Browse files
app.py
CHANGED
@@ -541,71 +541,71 @@ def create_interface(auto_load: bool = True, use_distilled: bool = False, device
|
|
541 |
)
|
542 |
|
543 |
# # Tab 3: Image Refinement
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
|
595 |
-
|
596 |
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
|
610 |
# Event handlers
|
611 |
# Update width and height when aspect ratio changes
|
@@ -630,14 +630,14 @@ def create_interface(auto_load: bool = True, use_distilled: bool = False, device
|
|
630 |
outputs=[enhanced_prompt, enhancement_status]
|
631 |
)
|
632 |
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
|
642 |
# Additional info
|
643 |
gr.Markdown(
|
|
|
541 |
)
|
542 |
|
543 |
# # Tab 3: Image Refinement
|
544 |
+
with gr.Tab("🔧 Image Refinement"):
|
545 |
+
with gr.Row():
|
546 |
+
with gr.Column(scale=1):
|
547 |
+
gr.Markdown("### Refinement Settings")
|
548 |
+
gr.Markdown("**Model**: HunyuanImage v2.1 Refiner")
|
549 |
|
550 |
+
input_image = gr.Image(
|
551 |
+
label="Input Image",
|
552 |
+
type="pil",
|
553 |
+
height=300
|
554 |
+
)
|
555 |
|
556 |
+
refine_prompt = gr.Textbox(
|
557 |
+
label="Refinement Prompt",
|
558 |
+
placeholder="Make the image more detailed and high quality",
|
559 |
+
lines=2,
|
560 |
+
value="Make the image more detailed and high quality"
|
561 |
+
)
|
562 |
|
563 |
+
refine_negative_prompt = gr.Textbox(
|
564 |
+
label="Negative Prompt",
|
565 |
+
placeholder="",
|
566 |
+
lines=2,
|
567 |
+
value=""
|
568 |
+
)
|
569 |
|
570 |
+
with gr.Row():
|
571 |
+
refine_width = gr.Slider(
|
572 |
+
minimum=512, maximum=2048, step=64, value=2048,
|
573 |
+
label="Width", info="Output width"
|
574 |
+
)
|
575 |
+
refine_height = gr.Slider(
|
576 |
+
minimum=512, maximum=2048, step=64, value=2048,
|
577 |
+
label="Height", info="Output height"
|
578 |
+
)
|
579 |
|
580 |
+
with gr.Row():
|
581 |
+
refine_steps = gr.Slider(
|
582 |
+
minimum=1, maximum=20, step=1, value=4,
|
583 |
+
label="Refinement Steps", info="More steps = more refinement"
|
584 |
+
)
|
585 |
+
refine_guidance = gr.Slider(
|
586 |
+
minimum=1.0, maximum=10.0, step=0.1, value=3.5,
|
587 |
+
label="Guidance Scale", info="How strongly to follow the prompt"
|
588 |
+
)
|
589 |
|
590 |
+
refine_seed = gr.Number(
|
591 |
+
label="Seed", value=-1, precision=0,
|
592 |
+
info="Random seed for reproducibility"
|
593 |
+
)
|
594 |
|
595 |
+
refine_btn = gr.Button("🔧 Refine Image", variant="primary", size="lg")
|
596 |
|
597 |
+
with gr.Column(scale=1):
|
598 |
+
gr.Markdown("### Refined Image")
|
599 |
+
refined_image = gr.Image(
|
600 |
+
label="Refined Image",
|
601 |
+
type="pil",
|
602 |
+
height=600
|
603 |
+
)
|
604 |
+
refinement_status = gr.Textbox(
|
605 |
+
label="Status",
|
606 |
+
interactive=False,
|
607 |
+
value="Ready to refine"
|
608 |
+
)
|
609 |
|
610 |
# Event handlers
|
611 |
# Update width and height when aspect ratio changes
|
|
|
630 |
outputs=[enhanced_prompt, enhancement_status]
|
631 |
)
|
632 |
|
633 |
+
refine_btn.click(
|
634 |
+
fn=app.refine_image,
|
635 |
+
inputs=[
|
636 |
+
input_image, refine_prompt, refine_negative_prompt,
|
637 |
+
refine_width, refine_height, refine_steps, refine_guidance, refine_seed
|
638 |
+
],
|
639 |
+
outputs=[refined_image, refinement_status]
|
640 |
+
)
|
641 |
|
642 |
# Additional info
|
643 |
gr.Markdown(
|