Commit b594f518 authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub

Merge pull request #14814 from AUTOMATIC1111/catch-load-style.csv-error

catch load style.csv error
parents 652a7bbf bbe8e02d
from pathlib import Path from pathlib import Path
from modules import errors
import csv import csv
import os import os
import typing import typing
...@@ -128,19 +129,22 @@ class StyleDatabase: ...@@ -128,19 +129,22 @@ class StyleDatabase:
self.load_from_csv(styles_file) self.load_from_csv(styles_file)
def load_from_csv(self, path: str | Path): def load_from_csv(self, path: str | Path):
with open(path, "r", encoding="utf-8-sig", newline="") as file: try:
reader = csv.DictReader(file, skipinitialspace=True) with open(path, "r", encoding="utf-8-sig", newline="") as file:
for row in reader: reader = csv.DictReader(file, skipinitialspace=True)
# Ignore empty rows or rows starting with a comment for row in reader:
if not row or row["name"].startswith("#"): # Ignore empty rows or rows starting with a comment
continue if not row or row["name"].startswith("#"):
# Support loading old CSV format with "name, text"-columns continue
prompt = row["prompt"] if "prompt" in row else row["text"] # Support loading old CSV format with "name, text"-columns
negative_prompt = row.get("negative_prompt", "") prompt = row["prompt"] if "prompt" in row else row["text"]
# Add style to database negative_prompt = row.get("negative_prompt", "")
self.styles[row["name"]] = PromptStyle( # Add style to database
row["name"], prompt, negative_prompt, str(path) self.styles[row["name"]] = PromptStyle(
) row["name"], prompt, negative_prompt, str(path)
)
except Exception:
errors.report(f'Error loading styles from {path}: ', exc_info=True)
def get_style_paths(self) -> set: def get_style_paths(self) -> set:
"""Returns a set of all distinct paths of files that styles are loaded from.""" """Returns a set of all distinct paths of files that styles are loaded from."""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment