Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

сравнение картинок по тегам #139

Open
MiTereKun opened this issue Jul 3, 2021 · 6 comments
Open

сравнение картинок по тегам #139

MiTereKun opened this issue Jul 3, 2021 · 6 comments

Comments

@MiTereKun
Copy link

1 картинка главная, другие сравниваются с ней на предмет отличий и совпадений тегов.
Поможет при работе в связках, а кнопку вызова функции логично поместить в само окно "Связанные картинки". Для работы брать данные именно из него же.

Грубый пример
р

@stalkerg
Copy link
Owner

stalkerg commented Jul 6, 2021

  1. Это тогда сравнение картинок ПО ТЕГАМ
  2. А зачем это надо? Насколько часто пользователи и модераторы сталкиваются с этим?

@MiTereKun
Copy link
Author

Поможет выявлять общие теги в данной конкретной связке и проследить, что бы нигде ничего не было забыто, а что НЕ нужно на связанных картинках - было корректно удалено.
Сталкиваются приходиться не сильно часто, но растёт количество тегов а значит и теоретическая сложность при работы с подобными связками.
Живой пример, 54-63 тега на 6 картинок https://anime-pictures.net/pictures/view_post/667060?lang=ru
И на каждую надо всё это поставить и нигде не запутаться, почему бы не создать дополнительный инструмент. На данный момент можно открыть рядом 2 картинки и сравнивать вручную, а на группировку 6 вкладок нужно как минимум потратить лишнее время.

@7nik
Copy link

7nik commented Jul 6, 2021

Я в таки случаях сначала тегирую самую детализированную/полную картинку, затем копирую теги на остальные и убираю лишние, добавляю нужные.

@MiTereKun
Copy link
Author

MiTereKun commented Jul 7, 2021

связки могут быть и более сложными, чем меняющаяся одежда и (или) фон. Сейчас такой инструмент действительно будет излишний, но в будущем что-то подобное уже может понадобиться

@MiTereKun MiTereKun changed the title сравнение тегов сравнение картинок по тегам Jul 7, 2021
@MiTereKun
Copy link
Author

MiTereKun commented Sep 12, 2023

image

@MiTereKun
Copy link
Author

MiTereKun commented Mar 27, 2024

Кривое, но кое как работает. На данный момент можно скопировать теги описания только гелбуру. Для работы нужна библиотека для буфера обмена pip install pyperclip

image

import re, pyperclip

# Функция для обработки сырых тегов скопированных с сайтов
def process_raw_text(data):

    # Удаление лишних слов и фильтры
    words_to_remove = ["копирайт (продукт)", "ярлык", "reference", "object", "автор", "персонаж", "описание", "иной копирайт", "игровой копирайт", "объект", "Artist", "Copyright", "Character", "Metadata", "Tag"]
    for word in words_to_remove:
        data = re.sub(r'\b{}\b'.format(re.escape(word)), '', data)
        data = re.sub(r'\s{2,}', ' ', data)  # Удаляем лишние пробелы после удаления слов
        data = re.sub(r'\d+K', '||', data) # Удаление цифр с К
        data = re.sub(r'(?<!\bgirls)\b\d+\b', '||', data) # +-умное удаление цифр без К
        data = re.sub(r'(\r?\n)', '', data) # Удаляет абзац
        data = re.sub(r'\?', '', data) # Удаляет знак "?" c буру
        data = re.sub(r'_', ' ', data) # Замена знака "_" на пробел
        data = re.sub(r'\s*\|\|\s*', '||', data)  # Удаление пробелов перед и после ||
    
    return data

# Функция для ввода текста щёлкнуть enter
def input_text(prompt):
    input(prompt)
    return pyperclip.paste()

# Обработка сырых тегов
text1 = input_text("Enter для вставки 1")
text2 = input_text("Enter для вставки 2")

end_text1 = process_raw_text(text1)
end_text2 = process_raw_text(text2)

# Дальнейшая обработка тегов с разделителем ||
words1 = set(end_text1.split("||"))
words2 = set(end_text2.split("||"))

unique_words_in_text1 = words1.difference(words2)
unique_words_in_text2 = words2.difference(words1)

# Вывод уникальных тегов
print("\nТеги только в первом источнике:")
print("||".join(unique_words_in_text1))

print("\nТеги только во втором источнике:")
print("||".join(unique_words_in_text2))

input("\nEnter для выхода...")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants