Astridkraft commited on
Commit
47737f2
·
verified ·
1 Parent(s): 1fd9dad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -18
app.py CHANGED
@@ -926,9 +926,9 @@ def text_to_image(prompt, model_id, steps, guidance_scale, progress=gr.Progress(
926
  import traceback
927
  traceback.print_exc()
928
  return None, error_msg
 
929
 
930
 
931
- # === KORRIGIERTE HAUPTFUNKTION MIT RICHTIGEM COMPOSITING ===
932
  def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
933
  mode, bbox_x1, bbox_y1, bbox_x2, bbox_y2,
934
  progress=gr.Progress()):
@@ -980,31 +980,42 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
980
  print(f"ℹ️ Kein manueller Negativ-Prompt, verwende nur automatischen: {combined_negative_prompt}")
981
 
982
  print(f"✅ Finaler kombinierter Negativ-Prompt: {combined_negative_prompt}")
983
-
984
 
985
- # ===== GESICHTS-SPEZIFISCHE BOOSTER FÜR NUR-GESICHT MODUS =====
986
  if mode == "face_only_change":
987
  face_boosters = "(perfect face:1.2), (symmetrical face:1.1), realistic shaded perfect face, "
988
 
989
  if not any(keyword in prompt.lower() for keyword in
990
- ["perfect face", "symmetrical", "realistic face", "shaded face"]):
991
  enhanced_prompt = face_boosters + prompt
992
  print(f"👤 Gesichts-Booster hinzugefügt: {face_boosters}")
993
  else:
994
  enhanced_prompt = prompt
995
  print(f"👤 Benutzer hat bereits Gesichts-Booster im Prompt")
996
- else:
997
- enhanced_prompt = prompt
 
998
 
999
-
1000
- # ===== HINTERGRUND-BOOSTER FÜR UMGEBUNGS-ÄNDERUNG =====
1001
- if mode == "environment_change":
 
 
 
 
 
 
1002
  background_boosters = "complete scene, full background, entire environment, "
1003
 
1004
- if not any(keyword in enhanced_prompt.lower() for keyword in
1005
- ["complete scene", "full background", "entire environment", "whole setting"]):
1006
- enhanced_prompt = background_boosters + enhanced_prompt
1007
  print(f"🌳 Hintergrund-Booster hinzugefügt: {background_boosters}")
 
 
 
 
 
1008
 
1009
  print(f"🎯 Finaler Prompt für {mode}: {enhanced_prompt}")
1010
 
@@ -1073,7 +1084,6 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
1073
 
1074
  # ===== CONTROLNET-INPAINTING PIPELINE =====
1075
  pipe = load_img2img(keep_environment=keep_environment)
1076
- #pipe = load_img2img() # MUSS StableDiffusionControlNetInpaintPipeline sein!
1077
 
1078
  # ===== SEED UND GENERATOR =====
1079
  adj_guidance = min(guidance_scale, 12.0)
@@ -1086,8 +1096,8 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
1086
 
1087
  # ===== CONTROLNET-GESTEUERTES INPAINTING DURCHFÜHREN =====
1088
  print(f"🔄 Führe ControlNet-gesteuertes Inpainting durch...")
1089
- # Berechne die Gewichtung basierend auf dem Modus (wie in der alten ControlNet-Methode)
1090
-
1091
  if keep_environment: # Depth + Canny
1092
  conditioning_scale = [
1093
  controlnet_strength * 0.6, # Depth: 60%
@@ -1114,7 +1124,6 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
1114
  callback_on_step_end_tensor_inputs=[],
1115
  )
1116
 
1117
-
1118
  print("✅ ControlNet-Inpainting abgeschlossen")
1119
 
1120
  # ===== KORREKTES COMPOSITING =====
@@ -1127,8 +1136,8 @@ def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
1127
  inpaint_result=generated_image,
1128
  original_mask=original_mask,
1129
  padding_info=padding_info,
1130
- bbox_coords=(bbox_x1, bbox_y1, bbox_x2, bbox_y2), # NEU!
1131
- mode=mode # NEU!
1132
  )
1133
  print(f"✅ Korrektes Compositing durchgeführt")
1134
  else:
 
926
  import traceback
927
  traceback.print_exc()
928
  return None, error_msg
929
+
930
 
931
 
 
932
  def img_to_image(image, prompt, neg_prompt, strength, steps, guidance_scale,
933
  mode, bbox_x1, bbox_y1, bbox_x2, bbox_y2,
934
  progress=gr.Progress()):
 
980
  print(f"ℹ️ Kein manueller Negativ-Prompt, verwende nur automatischen: {combined_negative_prompt}")
981
 
982
  print(f"✅ Finaler kombinierter Negativ-Prompt: {combined_negative_prompt}")
 
983
 
984
+ # ===== PROMPT-BOOSTER FÜR DREI MODI =====
985
  if mode == "face_only_change":
986
  face_boosters = "(perfect face:1.2), (symmetrical face:1.1), realistic shaded perfect face, "
987
 
988
  if not any(keyword in prompt.lower() for keyword in
989
+ ["perfect face", "symmetrical", "realistic face", "shaded face"]):
990
  enhanced_prompt = face_boosters + prompt
991
  print(f"👤 Gesichts-Booster hinzugefügt: {face_boosters}")
992
  else:
993
  enhanced_prompt = prompt
994
  print(f"👤 Benutzer hat bereits Gesichts-Booster im Prompt")
995
+
996
+ elif mode == "focus_change":
997
+ focus_boosters = "(sharp focus:1.2), (detailed subject:1.1), (clear foreground:1.1), "
998
 
999
+ if not any(keyword in prompt.lower() for keyword in
1000
+ ["sharp focus", "detailed subject", "clear foreground", "well-defined"]):
1001
+ enhanced_prompt = focus_boosters + prompt
1002
+ print(f"🎯 Focus-Booster hinzugefügt: {focus_boosters}")
1003
+ else:
1004
+ enhanced_prompt = prompt
1005
+ print(f"🎯 Benutzer hat bereits Focus-Booster im Prompt")
1006
+
1007
+ elif mode == "environment_change":
1008
  background_boosters = "complete scene, full background, entire environment, "
1009
 
1010
+ if not any(keyword in prompt.lower() for keyword in
1011
+ ["complete scene", "full background", "entire environment", "whole setting"]):
1012
+ enhanced_prompt = background_boosters + prompt
1013
  print(f"🌳 Hintergrund-Booster hinzugefügt: {background_boosters}")
1014
+ else:
1015
+ enhanced_prompt = prompt
1016
+ print(f"🌳 Benutzer hat bereits Hintergrund-Booster im Prompt")
1017
+ else:
1018
+ enhanced_prompt = prompt
1019
 
1020
  print(f"🎯 Finaler Prompt für {mode}: {enhanced_prompt}")
1021
 
 
1084
 
1085
  # ===== CONTROLNET-INPAINTING PIPELINE =====
1086
  pipe = load_img2img(keep_environment=keep_environment)
 
1087
 
1088
  # ===== SEED UND GENERATOR =====
1089
  adj_guidance = min(guidance_scale, 12.0)
 
1096
 
1097
  # ===== CONTROLNET-GESTEUERTES INPAINTING DURCHFÜHREN =====
1098
  print(f"🔄 Führe ControlNet-gesteuertes Inpainting durch...")
1099
+
1100
+ # Berechne die Gewichtung basierend auf dem Modus
1101
  if keep_environment: # Depth + Canny
1102
  conditioning_scale = [
1103
  controlnet_strength * 0.6, # Depth: 60%
 
1124
  callback_on_step_end_tensor_inputs=[],
1125
  )
1126
 
 
1127
  print("✅ ControlNet-Inpainting abgeschlossen")
1128
 
1129
  # ===== KORREKTES COMPOSITING =====
 
1136
  inpaint_result=generated_image,
1137
  original_mask=original_mask,
1138
  padding_info=padding_info,
1139
+ bbox_coords=(bbox_x1, bbox_y1, bbox_x2, bbox_y2),
1140
+ mode=mode
1141
  )
1142
  print(f"✅ Korrektes Compositing durchgeführt")
1143
  else: