Update app.py
Browse files
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 |
-
|
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
|
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 |
-
#
|
313 |
-
if
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
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 |
-
|
878 |
-
(lora["image"], lora["title"]) for lora in loras
|
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
|