parent
e1dad21286
commit
cd1793b248
|
|
@ -1177,9 +1177,6 @@ def infinite_image_browsing_api(app: FastAPI, **kwargs):
|
|||
async def add_custom_tag(req: AddCustomTagReq):
|
||||
conn = DataBase.get_conn()
|
||||
tag = Tag.get_or_create(conn, name=req.tag_name, type="custom")
|
||||
if tag is None:
|
||||
conn.rollback()
|
||||
return None
|
||||
conn.commit()
|
||||
return tag
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,6 @@ class AutoTagMatcher:
|
|||
tag_name = rule.get("tag")
|
||||
if tag_name:
|
||||
tag = Tag.get_or_create(self.conn, tag_name, "custom")
|
||||
if tag is not None:
|
||||
ImageTag(img_id, tag.id).save_or_ignore(self.conn)
|
||||
ImageTag(img_id, tag.id).save_or_ignore(self.conn)
|
||||
except Exception as e:
|
||||
logger.error(f"Error applying auto tag rule {rule}: {e}")
|
||||
|
|
|
|||
|
|
@ -720,9 +720,9 @@ class Tag:
|
|||
if len(name) > 12:
|
||||
return "INVALID_TAG_NAME_TOO_LONG"
|
||||
else:
|
||||
# Other languages: max 6 words and 40 characters
|
||||
# Other languages: max 6 words
|
||||
words = name.split()
|
||||
if len(words) > 6 and len(name) > 40:
|
||||
if len(words) > 6:
|
||||
return "INVALID_TAG_TOO_MANY_WORDS"
|
||||
|
||||
return None
|
||||
|
|
@ -798,8 +798,8 @@ class Tag:
|
|||
# Validate tag name
|
||||
error_name = cls.validate_tag_name(name)
|
||||
if error_name:
|
||||
# Return None for invalid tag names
|
||||
return None
|
||||
# Use get_or_create recursively to ensure error tag has an id
|
||||
return cls.get_or_create(conn, error_name, "error")
|
||||
|
||||
with closing(conn.cursor()) as cur:
|
||||
cur.execute(
|
||||
|
|
|
|||
|
|
@ -189,8 +189,7 @@ def build_single_img_idx(conn, file_path, is_rebuild, safe_save_img_tag):
|
|||
size_str,
|
||||
type="size",
|
||||
)
|
||||
if size_tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, size_tag.id))
|
||||
safe_save_img_tag(ImageTag(img.id, size_tag.id))
|
||||
# 确定媒体类型:Image / Video / Audio / Unknown
|
||||
if is_image_file(file_path):
|
||||
media_type_name = "Image"
|
||||
|
|
@ -201,8 +200,7 @@ def build_single_img_idx(conn, file_path, is_rebuild, safe_save_img_tag):
|
|||
else:
|
||||
media_type_name = "Unknown"
|
||||
media_type_tag = Tag.get_or_create(conn, media_type_name, 'Media Type')
|
||||
if media_type_tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, media_type_tag.id))
|
||||
safe_save_img_tag(ImageTag(img.id, media_type_tag.id))
|
||||
keys = [
|
||||
"Model",
|
||||
"Sampler",
|
||||
|
|
@ -220,27 +218,21 @@ def build_single_img_idx(conn, file_path, is_rebuild, safe_save_img_tag):
|
|||
continue
|
||||
|
||||
tag = Tag.get_or_create(conn, str(v), k)
|
||||
if tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
if "Hires upscaler" == k:
|
||||
tag = Tag.get_or_create(conn, 'Hires All', k)
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
elif "Refiner" == k:
|
||||
tag = Tag.get_or_create(conn, 'Refiner All', k)
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
if "Hires upscaler" == k:
|
||||
tag = Tag.get_or_create(conn, 'Hires All', k)
|
||||
if tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
elif "Refiner" == k:
|
||||
tag = Tag.get_or_create(conn, 'Refiner All', k)
|
||||
if tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
for i in lora:
|
||||
tag = Tag.get_or_create(conn, i["name"], "lora")
|
||||
if tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
for i in lyco:
|
||||
tag = Tag.get_or_create(conn, i["name"], "lyco")
|
||||
if tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
for k in pos:
|
||||
tag = Tag.get_or_create(conn, k, "pos")
|
||||
if tag is not None:
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
safe_save_img_tag(ImageTag(img.id, tag.id))
|
||||
|
||||
AutoTagMatcher.get_instance(conn).apply(img.id, parsed_params)
|
||||
Loading…
Reference in New Issue