Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -26,6 +26,9 @@ def run_pipeline(
|
|
| 26 |
spec_choice: str,
|
| 27 |
bg_color: str | None,
|
| 28 |
paper_choice: str,
|
|
|
|
|
|
|
|
|
|
| 29 |
progress: gr.Progress = gr.Progress(),
|
| 30 |
):
|
| 31 |
"""Gradio click handler. Wraps app.process_photo with progress updates
|
|
@@ -46,6 +49,9 @@ def run_pipeline(
|
|
| 46 |
spec_key=spec_choice,
|
| 47 |
bg_hex=bg_color,
|
| 48 |
paper_key=paper_key,
|
|
|
|
|
|
|
|
|
|
| 49 |
)
|
| 50 |
|
| 51 |
progress(0.9, desc="Finalizing...")
|
|
@@ -104,6 +110,20 @@ def build_interface() -> gr.Blocks:
|
|
| 104 |
value=PAPER_CHOICES[0],
|
| 105 |
label="Print Sheet Layout",
|
| 106 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
generate_btn = gr.Button("Generate Photo", variant="primary", size="lg")
|
| 108 |
|
| 109 |
with gr.Column(scale=1):
|
|
@@ -123,10 +143,19 @@ def build_interface() -> gr.Blocks:
|
|
| 123 |
|
| 124 |
generate_btn.click(
|
| 125 |
fn=run_pipeline,
|
| 126 |
-
inputs=[
|
|
|
|
|
|
|
|
|
|
| 127 |
outputs=[out_photo, out_sheet, status_box],
|
| 128 |
)
|
| 129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
gr.Markdown(
|
| 131 |
"""
|
| 132 |
---
|
|
|
|
| 26 |
spec_choice: str,
|
| 27 |
bg_color: str | None,
|
| 28 |
paper_choice: str,
|
| 29 |
+
zoom: float,
|
| 30 |
+
x_offset: float,
|
| 31 |
+
y_offset: float,
|
| 32 |
progress: gr.Progress = gr.Progress(),
|
| 33 |
):
|
| 34 |
"""Gradio click handler. Wraps app.process_photo with progress updates
|
|
|
|
| 49 |
spec_key=spec_choice,
|
| 50 |
bg_hex=bg_color,
|
| 51 |
paper_key=paper_key,
|
| 52 |
+
zoom=zoom,
|
| 53 |
+
x_offset=x_offset,
|
| 54 |
+
y_offset=y_offset,
|
| 55 |
)
|
| 56 |
|
| 57 |
progress(0.9, desc="Finalizing...")
|
|
|
|
| 110 |
value=PAPER_CHOICES[0],
|
| 111 |
label="Print Sheet Layout",
|
| 112 |
)
|
| 113 |
+
with gr.Accordion("Adjust Crop (optional — auto-crop is usually correct)", open=False):
|
| 114 |
+
zoom_slider = gr.Slider(
|
| 115 |
+
minimum=0.5, maximum=2.0, value=1.0, step=0.05,
|
| 116 |
+
label="Zoom (higher = tighter crop on face)",
|
| 117 |
+
)
|
| 118 |
+
x_slider = gr.Slider(
|
| 119 |
+
minimum=-0.5, maximum=0.5, value=0.0, step=0.02,
|
| 120 |
+
label="Shift Left / Right",
|
| 121 |
+
)
|
| 122 |
+
y_slider = gr.Slider(
|
| 123 |
+
minimum=-0.5, maximum=0.5, value=0.0, step=0.02,
|
| 124 |
+
label="Shift Up / Down",
|
| 125 |
+
)
|
| 126 |
+
reset_crop_btn = gr.Button("Reset Crop", size="sm")
|
| 127 |
generate_btn = gr.Button("Generate Photo", variant="primary", size="lg")
|
| 128 |
|
| 129 |
with gr.Column(scale=1):
|
|
|
|
| 143 |
|
| 144 |
generate_btn.click(
|
| 145 |
fn=run_pipeline,
|
| 146 |
+
inputs=[
|
| 147 |
+
inp_image, spec_dropdown, bg_color, paper_dropdown,
|
| 148 |
+
zoom_slider, x_slider, y_slider,
|
| 149 |
+
],
|
| 150 |
outputs=[out_photo, out_sheet, status_box],
|
| 151 |
)
|
| 152 |
|
| 153 |
+
reset_crop_btn.click(
|
| 154 |
+
fn=lambda: (gr.update(value=1.0), gr.update(value=0.0), gr.update(value=0.0)),
|
| 155 |
+
inputs=None,
|
| 156 |
+
outputs=[zoom_slider, x_slider, y_slider],
|
| 157 |
+
)
|
| 158 |
+
|
| 159 |
gr.Markdown(
|
| 160 |
"""
|
| 161 |
---
|