macgaga commited on
Commit
d411403
·
verified ·
1 Parent(s): 7543b84

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -37
app.py CHANGED
@@ -284,55 +284,39 @@ def randomize_loras(selected_indices, loras_state):
284
 
285
  def download_loras_images(loras_json_orig: list[dict]):
286
  """
287
- Überarbeitete Funktion zur Handhabung von Vorschaubildern.
288
- Prüft REPO-URLs zuerst, dann externe URLs, und verwendet das Platzhalterbild als Fallback.
289
  """
290
  loras_json = []
291
 
292
  for lora in loras_json_orig:
293
  repo = lora.get("repo", None)
 
294
 
295
- # Standardwerte und Fallback setzen
296
  lora["title"] = lora.get("title", "Unknown LoRA")
297
  lora["trigger_word"] = lora.get("trigger_word", "")
298
- image_url = lora.get("image", None)
299
-
300
- # Prüfen, ob die Bild-URL korrekt ist (vorzugsweise aus dem REPO)
301
- if repo:
302
- repo_image_url = f"https://huggingface.co/{repo}/resolve/main/{image_url}" if image_url else None
303
- try:
304
- if repo_image_url and requests.head(repo_image_url).status_code == 200:
305
- # REPO-URL verwenden, falls verfügbar
306
- lora["image"] = repo_image_url
307
- else:
308
- raise ValueError(f"Image not found in repo: {repo_image_url}")
309
- except Exception as e:
310
- print(f"Error loading REPO image for '{repo}': {e}")
311
 
312
- # Fallback zu externer URL (falls angegeben und gültig)
313
- if "http" in image_url and lora["image"] != repo_image_url:
314
- try:
315
- if requests.head(image_url).status_code == 200:
316
- lora["image"] = image_url
317
- else:
318
- raise ValueError("Invalid external image URL.")
319
- except Exception as e:
320
- print(f"Failed to use external image URL for '{repo}': {e}")
321
-
322
- # Wenn keine gültige URL gefunden -> Platzhalter
323
- if not lora.get("image"):
324
- lora["image"] = "/home/user/app/custom.png"
325
-
 
 
326
  loras_json.append(lora)
327
 
328
  return loras_json
329
 
330
 
331
-
332
-
333
-
334
-
335
-
336
  def add_custom_lora(custom_lora, selected_indices, current_loras, gallery):
337
  if custom_lora:
338
  try:
@@ -874,8 +858,8 @@ with gr.Blocks(theme='NoCrypt/miku@>=1.2.2', fill_width=True, css=css, delete_ca
874
  selected_info = gr.Markdown("")
875
  gallery = gr.Gallery(
876
  label="LoRA Gallery",
877
- elements=[
878
- (lora["image"], lora["title"]) for lora in loras # `loras` enthält die Bild-URLs und Titel
879
  ],
880
  columns=4,
881
  interactive=False
 
284
 
285
  def download_loras_images(loras_json_orig: list[dict]):
286
  """
287
+ Optimierte Funktion zur Handhabung von Bild-URLs aus Repositories.
 
288
  """
289
  loras_json = []
290
 
291
  for lora in loras_json_orig:
292
  repo = lora.get("repo", None)
293
+ image_url = lora.get("image", None)
294
 
295
+ # Standardwerte und Fallbacks
296
  lora["title"] = lora.get("title", "Unknown LoRA")
297
  lora["trigger_word"] = lora.get("trigger_word", "")
 
 
 
 
 
 
 
 
 
 
 
 
 
298
 
299
+ # Prüfen und bereinigen von URLs
300
+ if repo and image_url:
301
+ if not image_url.startswith("http"):
302
+ # Bild-URL korrekt erstellen, falls nur der Dateiname vorliegt
303
+ image_url = f"https://huggingface.co/{repo}/resolve/main/{image_url}"
304
+ else:
305
+ # Validieren der bestehenden URL
306
+ try:
307
+ if requests.head(image_url).status_code != 200:
308
+ raise ValueError(f"Invalid image URL: {image_url}")
309
+ except Exception as e:
310
+ print(f"Error loading external image: {e}")
311
+ image_url = None
312
+
313
+ # Wenn kein Bild gefunden, Platzhalter setzen
314
+ lora["image"] = image_url if image_url else "/path/to/default-placeholder.png"
315
  loras_json.append(lora)
316
 
317
  return loras_json
318
 
319
 
 
 
 
 
 
320
  def add_custom_lora(custom_lora, selected_indices, current_loras, gallery):
321
  if custom_lora:
322
  try:
 
858
  selected_info = gr.Markdown("")
859
  gallery = gr.Gallery(
860
  label="LoRA Gallery",
861
+ value=[
862
+ (lora["image"], lora["title"]) for lora in loras
863
  ],
864
  columns=4,
865
  interactive=False