Das Skript unterstützt verschiedene Download-Typen: Lora, Checkpoints, Einbettungen, Trainingsdaten, Andere oder Alle und verwandte Bilder von einem bestimmten CivitAI-Benutzernamen, organisiert sie in entsprechenden Verzeichnissen und verwaltet Details in einer Textdatei.
Es dient dazu, nur die Dateien herunterzuladen, die noch nicht im Ordner des angegebenen Benutzernamens vorhanden sind. Wenn der Benutzer neue Modelle hochlädt, werden beim erneuten Ausführen des Skripts nur die neu hochgeladenen Dateien heruntergeladen.
Beispiel für 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
Dateistruktur
Die heruntergeladenen Dateien werden in der folgenden Struktur organisiert:
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
Sie können dem Skript auch diese 5 zusätzlichen Argumente geben
--retry_delay
Standard = 10,
„Wiederholungsverzögerung in Sekunden.“
--max_tries
Standard = 3,
„Maximale Anzahl an Wiederholungsversuchen.“
--max_threads
Standard = 5,
„Maximale Anzahl gleichzeitiger Threads. Zu viele führen zu einem API-Fehler.“
--download_type
Lora
Kontrollpunkte
Einbettungen
Trainingsdaten
Andere
Standard = Alle
--token
Standard = Keine
„Es werden nur die öffentlich verfügbaren Modelle heruntergeladen.“
„Geben Sie ein Token an und es können auch diese Modelle hinter dem CivitAI-Login heruntergeladen werden.“
Wenn Sie vergessen haben, ein Token bereitzustellen, fragt das Skript nach Ihrem Token.
Hilfsskript fetch_all_models.py
python fetch_all_models.py --username--token
Beispiel für username.txt, erstellt mit dem Hilfsskript 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 ...
Sie können Ihren API-Schlüssel hier in den Kontoeinstellungen erstellen. Scrollen Sie bis zum Ende nach unten und Sie finden diese Box
Triggerwords-Textdatei
Funktionalität hinzugefügt, um für jedes Modell eine „triggerWords.txt“-Datei zu erstellen.
Diese Datei enthält die mit dem Modell verknüpften Triggerwörter.
Die Datei „triggerWords.txt“ wird im gleichen Verzeichnis wie die Modelldateien gespeichert.
Organisation des Basismodellordners
Eine neue Ordnerstruktur wurde implementiert, die Downloads basierend auf ihrem Basismodell organisiert.
Downloads werden jetzt in Unterordnern sortiert, die nach ihren jeweiligen Basismodellen innerhalb jeder Kategorie benannt sind (Lora, Checkpoints usw.).
Diese Organisation gilt für alle Kategorien, wenn Basismodellinformationen verfügbar sind.
Ordner für Kategorien ohne Basismodellinformationen bleiben unverändert
Verbesserte Protokollierung zur Verfolgung der Basismodellnutzung und aller damit verbundenen Probleme.
Modellbeschreibungsdateien
Diese Dateien enthalten die Originalbeschreibung des Modells, wie sie vom Ersteller bereitgestellt wurde.
Beschreibungsdateien, bei denen es sich um HTML-Dateien handelt, die direkt in einem Browser geöffnet werden können, wobei die von den Erstellern bereitgestellten Originalbeschreibungen im selben Verzeichnis wie die entsprechenden Modelldateien gespeichert werden.
Download-Option für Training_Data hinzugefügt:
Erstellt automatisch einen eigenen Download-Ordner.
Speichert heruntergeladene ZIP-Pakete, zugehörige Bilder und eine detail.txt
Datei.
Einführung eines Hilfsskripts fetch_all_models.py
:
Ruft Modellinformationen von der CivitAI-API basierend auf Benutzername und API-Token ab.
Kategorisiert die Ergebnisse und fasst sie in einer Textdatei {username}.txt
zusammen.
Verbessert die Übersicht über die Benutzerinhalte und ermöglicht die Statistikfunktion.
Kann auch eigenständig mit dem folgenden Befehl verwendet werden:
python fetch_all_models.py --username
Erkennung und Kategorisierung neuer Typen:
Script erkennt nun die Typen VAE und Locon und ordnet sie der Kategorie „Andere“ zu.
Verbesserung des Filters für problematische Zeichen:
Optimierung der Filterfunktionen zur besseren Handhabung problematischer Zeichen.
Codeoptimierungen:
Alle globalen Variablen stehen nun am Anfang des Skripts.
Keine weiteren Funktionen innerhalb anderer Funktionen.
Führen Sie gegebenenfalls Codezeilen zusammen, um die Lesbarkeit und Wartbarkeit zu verbessern.
Richtige Zuordnung von ZIP-Paketen:
ZIP-Pakete werden nun entsprechend den API-Spezifikationen in die entsprechenden Ordner heruntergeladen, z. B. Training_Data, Lora, Other.
ZIP-Pakete ohne bestimmte Kategorie werden weiterhin unter „Andere“ heruntergeladen.
Statistiken korrigiert:
Die Statistikfunktion basiert jetzt auf dem neuen Hilfsskript fetch_all_models.py
, das die Genauigkeit und Funktionalität verbessert.
Erweiterte Zeichenfilterung:
Das Skript wurde geändert, um verbotene und problematische Zeichen weitgehend herauszufiltern und so Probleme bei der Ordnererstellung zu vermeiden.
Verbesserungen bei der Fehlerbehandlung:
In Fällen, in denen das Skript auf Zeichen stößt, die die Ordnererstellung verhindern, protokolliert es jetzt den Namen und die URL des betroffenen Downloads.
Diese Informationen werden in einer bereits vorhandenen Textdatei aufgezeichnet, die automatisch nach dem Benutzer benannt wird, dessen Inhalt heruntergeladen wird. Dieses Update ermöglicht es Benutzern, Downloads manuell abzuschließen, wenn Probleme auftreten.
failed_downloads_username.txt
Von „Bild überspringen“ zu „Abschneiden, wenn die Pfadlänge den Grenzwert überschreitet“ geändert.
Neues, lang erwartetes Feature
Selektive Download-Optionen
Benutzer können jetzt bestimmte Inhaltstypen herunterladen:
Lora
Kontrollpunkte
Einbettungen
Andere
Alles außer Lora, Checkpoints, Einbettungen (gruppiert unter Other_Model_types für weniger häufig heruntergeladene Elemente)
Alle
ist das Standard-Download-Verhalten: Die Standardoption zum Herunterladen aller verfügbaren Inhalte bleibt bestehen, wenn keine spezifischen Download-Parameter festgelegt sind.
Befehlszeilen- und interaktive Verbesserungen:
Befehlszeilenargumente: Benutzer können ihre Download-Präferenz (Lora, Checkpoints, Einbettung, Andere oder Alle) direkt über die Befehlszeile zusammen mit anderen Startparametern angeben.
Interaktiver Modus: Wenn keine Befehlszeilenargumente angegeben werden, fordert das Programm Benutzer interaktiv auf, den Inhalt auszuwählen, den sie herunterladen möchten. Durch Drücken der Eingabetaste werden die Standardeinstellungen zum Herunterladen aller Inhalte aktiviert.
Aktualisierung der Ordnerstruktur:
Organisierter Speicher: Die Ordnerstruktur des Programms wurde neu organisiert, um neue Download-Optionen effizient zu unterstützen:
Hauptverzeichnis: model_downloads/
Benutzerspezifisches Unterverzeichnis: Benutzername/
Inhaltsspezifische Unterordner für Lora, Checkpoints, Embeddings und Other_Model_types, die jeweils elementspezifische Unterordner enthalten.
Bugfix
Das Skript entfernt den Dateinamen nicht mehr, wenn er auf die gleiche Weise wie der Ordnername geschrieben ist. Dies kann aufgrund der Bereinigungsfunktion des Skripts von Zeit zu Zeit passieren.
Neue Funktion zur Vermeidung von OSError: [Errno 36] Dateiname zu lang:
Die Paginierung ist behoben
Neue Funktion Mehrere Benutzernamen