Astridkraft commited on
Commit
f893fde
·
verified ·
1 Parent(s): 6c8a1ba

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -6
app.py CHANGED
@@ -22,11 +22,11 @@ cancel_txt2img = False
22
  cancel_img2img = False
23
 
24
  def interrupt_callback(pipe, step, timestep, callback_kwargs):
25
- """Callback für Diffusers: Prüft Flag und unterbricht bei Cancel"""
26
  global cancel_txt2img, cancel_img2img
27
  if (pipe == pipe_txt2img and cancel_txt2img) or (pipe == pipe_img2img and cancel_img2img):
28
- pipe._interrupt = True # Stoppt die Pipeline
29
  print(f"🛑 Interrupt ausgelöst für Pipeline (Step: {step})")
 
30
  return callback_kwargs
31
 
32
  # === GESICHTSMASKEN-FUNKTIONEN ===
@@ -130,7 +130,7 @@ def text_to_image(prompt, steps, guidance_scale):
130
  if current_txt2img_task_id is not None:
131
  print(f"🛑 Cancel vorheriger Text-to-Image Task (ID: {current_txt2img_task_id})")
132
  cancel_txt2img = True
133
- time.sleep(0.5) # Längere Pause für CPU
134
 
135
  current_txt2img_task_id = task_id
136
  cancel_txt2img = False
@@ -160,7 +160,7 @@ def text_to_image(prompt, steps, guidance_scale):
160
 
161
  return image
162
 
163
- except Exception as e:
164
  if "interrupt" in str(e).lower():
165
  print(f"🛑 Generierung unterbrochen (Task ID: {task_id})")
166
  current_txt2img_task_id = None
@@ -170,6 +170,12 @@ def text_to_image(prompt, steps, guidance_scale):
170
  traceback.print_exc()
171
  current_txt2img_task_id = None
172
  return None
 
 
 
 
 
 
173
 
174
  def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale, face_preserve, bbox_x1, bbox_y1, bbox_x2, bbox_y2):
175
  global current_img2img_task_id, cancel_img2img
@@ -182,7 +188,7 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale, fac
182
  if current_img2img_task_id is not None:
183
  print(f"🛑 Cancel vorheriger Image-to-Image Task (ID: {current_img2img_task_id})")
184
  cancel_img2img = True
185
- time.sleep(0.5) # Längere Pause für CPU
186
 
187
  current_img2img_task_id = task_id
188
  cancel_img2img = False
@@ -263,7 +269,7 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale, fac
263
 
264
  return saved_image
265
 
266
- except Exception as e:
267
  if "interrupt" in str(e).lower():
268
  print(f"🛑 Generierung unterbrochen (Task ID: {task_id})")
269
  current_img2img_task_id = None
@@ -273,6 +279,12 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale, fac
273
  traceback.print_exc()
274
  current_img2img_task_id = None
275
  return None
 
 
 
 
 
 
276
 
277
  def update_bbox_from_image(image):
278
  """Aktualisiert die Bounding-Box-Koordinaten wenn ein Bild hochgeladen wird"""
 
22
  cancel_img2img = False
23
 
24
  def interrupt_callback(pipe, step, timestep, callback_kwargs):
25
+ """Callback für Diffusers: Prüft Flag und löst Exception für Interrupt aus"""
26
  global cancel_txt2img, cancel_img2img
27
  if (pipe == pipe_txt2img and cancel_txt2img) or (pipe == pipe_img2img and cancel_img2img):
 
28
  print(f"🛑 Interrupt ausgelöst für Pipeline (Step: {step})")
29
+ raise RuntimeError("Task interrupted by user")
30
  return callback_kwargs
31
 
32
  # === GESICHTSMASKEN-FUNKTIONEN ===
 
130
  if current_txt2img_task_id is not None:
131
  print(f"🛑 Cancel vorheriger Text-to-Image Task (ID: {current_txt2img_task_id})")
132
  cancel_txt2img = True
133
+ time.sleep(1.0) # Längere Pause für CPU
134
 
135
  current_txt2img_task_id = task_id
136
  cancel_txt2img = False
 
160
 
161
  return image
162
 
163
+ except RuntimeError as e:
164
  if "interrupt" in str(e).lower():
165
  print(f"🛑 Generierung unterbrochen (Task ID: {task_id})")
166
  current_txt2img_task_id = None
 
170
  traceback.print_exc()
171
  current_txt2img_task_id = None
172
  return None
173
+ except Exception as e:
174
+ print(f"❌ Fehler: {e}")
175
+ import traceback
176
+ traceback.print_exc()
177
+ current_txt2img_task_id = None
178
+ return None
179
 
180
  def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale, face_preserve, bbox_x1, bbox_y1, bbox_x2, bbox_y2):
181
  global current_img2img_task_id, cancel_img2img
 
188
  if current_img2img_task_id is not None:
189
  print(f"🛑 Cancel vorheriger Image-to-Image Task (ID: {current_img2img_task_id})")
190
  cancel_img2img = True
191
+ time.sleep(1.0) # Längere Pause für CPU
192
 
193
  current_img2img_task_id = task_id
194
  cancel_img2img = False
 
269
 
270
  return saved_image
271
 
272
+ except RuntimeError as e:
273
  if "interrupt" in str(e).lower():
274
  print(f"🛑 Generierung unterbrochen (Task ID: {task_id})")
275
  current_img2img_task_id = None
 
279
  traceback.print_exc()
280
  current_img2img_task_id = None
281
  return None
282
+ except Exception as e:
283
+ print(f"❌ Fehler: {e}")
284
+ import traceback
285
+ traceback.print_exc()
286
+ current_img2img_task_id = None
287
+ return None
288
 
289
  def update_bbox_from_image(image):
290
  """Aktualisiert die Bounding-Box-Koordinaten wenn ein Bild hochgeladen wird"""