Сценарий поддерживает различные типы загрузки: Lora, Checkpoints, Embeddings, Training Data, Other или All и связанные изображения с заданным именем пользователя CivitAI, организовывая их в соответствующие каталоги и сохраняя детали в текстовом файле.
Он предназначен для загрузки только тех файлов, которых еще нет в папке с указанным именем пользователя. Если пользователь загружает новые модели, при повторном запуске сценария будут загружены только недавно загруженные файлы.
Пример файла Details.txt
Model URL: https://civitai.com/models/ID File Name: Name of the Model.ending File URL: https://civitai.com/api/download/models/ID Image ID: ID Image URL: https://image.civitai.com/Random_characters/width=450/ID.jpeg
Структура файла
Загруженные файлы будут организованы в следующую структуру:
model_downloads/ ├── username1/ │ ├── Lora/ │ │ ├── SDXL 1.0/ │ │ │ └── model1/ │ │ │ ├── file1.safetensors │ │ │ ├── image1.jpeg │ │ │ ├── details.txt │ │ │ ├── triggerWords.txt │ │ │ └── description.html │ │ └── SD 1.5/ │ │ └── model2/ │ │ ├── file3.safetensors │ │ ├── image2.jpeg │ │ ├── details.txt │ │ │ ├── triggerWords.txt │ │ └── description.html │ ├── Checkpoints/ │ │ ├── FLUX/ │ │ │ └── model1/ │ │ │ ├── file.safetensors │ │ │ ├── image.jpeg │ │ │ ├── details.txt │ │ │ ├── triggerWords.txt │ │ │ └── description.html │ ├── Embeddings/ │ ├── Training_Data/ │ └── Other/ └── username2/ ├── Lora/ ├── Checkpoints/ ├── Embeddings/ ├── Training_Data/ └── Other/
install Python3
pip install -r requirements.txt
python civitAI_Model_downloader.py one or multiple usernames space separated
Вы также можете дать сценарию эти 5 дополнительных аргументов.
--retry_delay
по умолчанию = 10,
«Задержка повторной попытки в секундах».
--max_tries
по умолчанию=3,
«Максимальное количество повторов».
--max_threads
по умолчанию=5,
«Максимальное количество одновременных потоков. Слишком большое количество приводит к сбою API».
--download_type
Лора
Контрольно-пропускные пункты
Вложения
Тренировочные_данные
Другой
По умолчанию = Все
--token
по умолчанию = Нет
«Будут загружены только общедоступные модели»
«Предоставьте токен, и он также сможет загрузить те модели, которые используются для входа в CivitAI».
Если вы забыли предоставить токен, скрипт запросит ваш токен.
Вспомогательный скрипт fetch_all_models.py
python fetch_all_models.py --username--token
Пример файла username.txt, созданного с помощью вспомогательного скрипта fetch_all_models.py
Summary: Total - Count: 61 Checkpoints - Count: 12 Embeddings - Count: 33 Lora - Count: 11 Training_Data - Count: 2 Other - Count: 3 Detailed Listing: Checkpoints - Count: 12 Checkpoints - Item: NAME ... Embeddings - Count: 33 Embeddings - Item: NAME - Embeddings ... Lora - Count: 11 Lora - Item: NAME ... Training_Data - Count: 2 Training_Data - Item: NAME_training_data.zip ... Other - Count: 3 Other - Item: NAME - Type: Other ...
Вы можете создать свой ключ API здесь Настройки учетной записи. Прокрутите вниз до конца и вы найдете эту коробку.
Текстовый файл триггерных слов
Добавлена возможность создания файла «triggerWords.txt» для каждой модели.
Этот файл содержит триггерные слова, связанные с моделью.
Файл «triggerWords.txt» сохраняется в том же каталоге, что и файлы модели.
Организация папок базовой модели
Реализована новая структура папок, которая упорядочивает загрузки на основе их базовой модели.
Загрузки теперь рассортированы по подпапкам, названным в честь соответствующих базовых моделей в каждой категории (Лора, Контрольные точки и т. д.).
Эта организация применяется ко всем категориям, когда доступна информация о базовой модели.
Папки для категорий без информации о базовой модели остаются без изменений.
Улучшено ведение журнала для отслеживания использования базовой модели и любых связанных с этим проблем.
Файлы описания модели
Эти файлы содержат оригинальное описание модели, предоставленное создателем.
Файлы описаний, которые представляют собой файлы HTML, которые можно открыть непосредственно в браузере, сохраняя исходные описания, предоставленные создателями, в том же каталоге, что и соответствующие файлы моделей.
Добавлена опция загрузки Training_Data:
Автоматически создает собственную папку загрузки.
Сохраняет загруженные ZIP-пакеты, связанные изображения и файл detail.txt
.
Введение вспомогательного скрипта fetch_all_models.py
:
Получает информацию о модели из API CivitAI на основе имени пользователя и токена API.
Классифицирует результаты и суммирует их в текстовом файле {username}.txt
.
Улучшает обзор пользовательского контента и включает функцию статистики.
Также может использоваться автономно с помощью следующей команды:
python fetch_all_models.py --username
Обнаружение и категоризация новых типов:
Скрипт теперь распознает типы VAE и Locon и относит их к категории «Другие».
Улучшение фильтра проблемных персонажей:
Оптимизация функций фильтра для лучшей обработки проблемных символов.
Оптимизация кода:
Все глобальные переменные теперь находятся в начале скрипта.
Больше никаких функций внутри других функций.
Объедините строки кода там, где это необходимо, для лучшей читаемости и удобства обслуживания.
Правильное распределение ZIP-пакетов:
ZIP-пакеты теперь загружаются в соответствующие папки в соответствии со спецификациями API, например Training_Data, Lora, Other.
ZIP-пакеты без определенной категории по-прежнему загружаются в раздел «Другое».
Исправлена статистика:
Функция статистики теперь основана на новом вспомогательном скрипте fetch_all_models.py
, который повышает точность и функциональность.
Расширенная фильтрация символов:
Скрипт был изменен для тщательной фильтрации запрещенных и проблемных символов во избежание проблем в процессе создания папки.
Улучшения обработки ошибок:
В тех случаях, когда сценарий встречает символы, препятствующие созданию папки, он теперь записывает имя и URL-адрес затронутой загрузки.
Эта информация записывается в уже существующий текстовый файл, которому автоматически присваивается имя пользователя, чей контент загружается. Это обновление позволяет пользователям вручную завершать загрузку в случае возникновения проблем.
failed_downloads_username.txt
Изменено с «Пропуск изображения» на «Усечение», когда длина пути превышает предел.
Новая долгожданная функция
Выборочные параметры загрузки
Теперь пользователи могут выбирать загрузку определенных типов контента:
Лора
Контрольно-пропускные пункты
Вложения
Другой
Все, кроме Lora, Checkpoints и Embeddings (сгруппировано в разделе Other_Model_types для менее часто загружаемых элементов)
Все
— это поведение загрузки по умолчанию: опция по умолчанию для загрузки всего доступного контента остается, если не заданы конкретные параметры загрузки.
Командная строка и интерактивные улучшения:
Аргументы командной строки: пользователи могут напрямую указать свои предпочтения загрузки (Lora, Контрольные точки, Встраивание, Другое или Все) через командную строку наряду с другими параметрами запуска.
Интерактивный режим: если аргументы командной строки не указаны, программа предложит пользователям в интерактивном режиме выбрать контент, который они хотят загрузить. Нажатие клавиши Enter активирует настройки по умолчанию для загрузки всего контента.
Обновление структуры папок:
Организованное хранилище: структура папок программы была реорганизована для эффективной поддержки новых вариантов загрузки:
Основной каталог: model_downloads/
Пользовательский подкаталог: Имя пользователя/
Подпапки, специфичные для содержимого, для Lora, Checkpoints, Embeddings и Other_Model_types, каждая из которых содержит подпапки, специфичные для конкретного элемента.
Исправление ошибки
Скрипт больше не будет удалять имя файла, если оно написано так же, как имя папки. Это могло происходить время от времени из-за функции очистки скрипта.
Новая функция, позволяющая избежать ошибки OS: [Errno 36] Слишком длинное имя файла:
Пагинация исправлена
Новая функция: несколько имен пользователей