theoracle commited on
Commit
b43fb22
·
1 Parent(s): 79e7646

Fix step 2 error handling and wire up error_box

Browse files
__pycache__/background_edit.cpython-310.pyc ADDED
Binary file (1.85 kB). View file
 
__pycache__/inference.cpython-310.pyc ADDED
Binary file (1.35 kB). View file
 
__pycache__/utils.cpython-310.pyc ADDED
Binary file (515 Bytes). View file
 
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import gradio as gr
2
  from inference import generate_with_lora
3
  from background_edit import run_background_removal_and_inpaint
@@ -62,12 +63,14 @@ with gr.Blocks() as demo:
62
  inputs=[input_image, prompt, negative_prompt, strength, guidance],
63
  outputs=output_image,
64
  )
65
- .then(_save_to_state, None, shared_output)
66
  .then(lambda x: x, input_image, original_input)
67
  )
68
 
69
  # ─────────── STEP 2: Background Replacement ───────────
70
  with gr.Tab("Step 2: Replace Background"):
 
 
71
  with gr.Row():
72
  inpaint_prompt = gr.Textbox(
73
  label="New Background Prompt",
@@ -85,14 +88,20 @@ with gr.Blocks() as demo:
85
  inpaint_btn = gr.Button("Remove Background & Inpaint", interactive=False)
86
 
87
  def guarded_inpaint(img, prompt_bg, neg_bg):
88
- if img is None:
89
- raise gr.Error("[Step 2] Error: No image to inpaint. Please run Step 1 first.")
90
- return safe_run_background(img, prompt_bg, neg_bg)
 
 
 
 
 
 
91
 
92
  inpaint_btn.click(
93
  fn=guarded_inpaint,
94
  inputs=[shared_output, inpaint_prompt, inpaint_negative],
95
- outputs=inpaint_result,
96
  )
97
 
98
  # Enable the Step 2 button once Step 1 finishes
 
1
+
2
  import gradio as gr
3
  from inference import generate_with_lora
4
  from background_edit import run_background_removal_and_inpaint
 
63
  inputs=[input_image, prompt, negative_prompt, strength, guidance],
64
  outputs=output_image,
65
  )
66
+ .then(_save_to_state, output_image, shared_output)
67
  .then(lambda x: x, input_image, original_input)
68
  )
69
 
70
  # ─────────── STEP 2: Background Replacement ───────────
71
  with gr.Tab("Step 2: Replace Background"):
72
+ # … your prompts and inpaint_result …
73
+ error_box = gr.Textbox(label="Error", interactive=False, lines=2)
74
  with gr.Row():
75
  inpaint_prompt = gr.Textbox(
76
  label="New Background Prompt",
 
88
  inpaint_btn = gr.Button("Remove Background & Inpaint", interactive=False)
89
 
90
  def guarded_inpaint(img, prompt_bg, neg_bg):
91
+ try:
92
+ if img is None:
93
+ raise ValueError("No image to inpaint—run Step 1 first.")
94
+ out = safe_run_background(img, prompt_bg, neg_bg)
95
+ return out, "" # success
96
+ except Exception as e:
97
+ # logs to console for debugging
98
+ print(f"[Step 2 ERROR] {type(e).__name__}: {e}", flush=True)
99
+ return None, f"{type(e).__name__}: {e}" # image=None, show error
100
 
101
  inpaint_btn.click(
102
  fn=guarded_inpaint,
103
  inputs=[shared_output, inpaint_prompt, inpaint_negative],
104
+ outputs=[inpaint_result, error_box],
105
  )
106
 
107
  # Enable the Step 2 button once Step 1 finishes
yolov8x-seg.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c333d6a7aff884ec821050eacdab29871f3edd10d996cf48746a02f8e01f1b5d
3
+ size 144101612