O script suporta diferentes tipos de download: Lora, Checkpoints, Embeddings, Training Data, Other ou All e imagens relacionadas de um determinado nome de usuário CivitAI, organizando-as em diretórios apropriados e mantendo os detalhes em um arquivo de texto.
Ele foi projetado para baixar apenas os arquivos que ainda não estão presentes na pasta do nome de usuário especificado. Se o usuário fizer upload de novos modelos, a execução do script novamente fará o download apenas dos arquivos recém-carregados.
Exemplo de detalhes.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
Estrutura de arquivo
Os arquivos baixados serão organizados na seguinte estrutura:
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
Você também pode fornecer ao script estes 5 argumentos extras
--retry_delay
padrão = 10,
"Repetir atraso em segundos."
--max_tries
padrão=3,
"Número máximo de novas tentativas."
--max_threads
padrão=5,
"Número máximo de threads simultâneos. Muitos produzem falha na API."
--download_type
Lora
Pontos de verificação
Incorporações
Treinamento_Dados
Outro
Padrão = Todos
--token
padrão=Nenhum
"Só fará download dos modelos públicos disponíveis"
"Forneça um token e ele também poderá baixar esses modelos por trás do login CivitAI."
Se você esqueceu de fornecer um token, o script solicitará seu token.
Script auxiliar fetch_all_models.py
python fetch_all_models.py --username--token
Exemplo de username.txt criado com script auxiliar 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 ...
Você pode criar sua chave API aqui Configurações da conta. Role até o final e você encontrará esta caixa
Arquivo de texto de palavras-gatilho
Adicionada funcionalidade para criar um arquivo "triggerWords.txt" para cada modelo.
Este arquivo contém as palavras-gatilho associadas ao modelo.
O arquivo "triggerWords.txt" é salvo no mesmo diretório dos arquivos do modelo.
Organização da pasta do modelo base
Implementada uma nova estrutura de pastas que organiza os downloads com base em seu modelo básico.
Os downloads agora são classificados em subpastas nomeadas de acordo com seus respectivos modelos básicos dentro de cada categoria (Lora, Checkpoints, etc.).
Esta organização se aplica a todas as categorias quando as informações do modelo básico estão disponíveis.
As pastas para categorias sem informações do modelo base permanecem inalteradas
Registro aprimorado para rastrear o uso do modelo básico e quaisquer problemas relacionados.
Arquivos de descrição de modelo
Esses arquivos contêm a descrição original do modelo fornecida pelo criador.
Arquivos de descrição que são arquivos HTML que podem ser abertos diretamente em um navegador, salvando as descrições originais fornecidas pelos criadores no mesmo diretório dos arquivos de modelo correspondentes.
Opção de download para Training_Data adicionada:
Cria automaticamente sua própria pasta de download.
Salva pacotes ZIP baixados, imagens associadas e um arquivo detail.txt
.
Introdução de um script auxiliar fetch_all_models.py
:
Recupera informações do modelo da API CivitAI com base no nome de usuário e no token da API.
Categoriza os resultados e os resume em um arquivo de texto {username}.txt
.
Melhora a visão geral do conteúdo do usuário e ativa a função de estatísticas.
Também pode ser usado de forma independente com o seguinte comando:
python fetch_all_models.py --username
Detecção e categorização de novos tipos:
O script agora reconhece os tipos VAE e Locon e os atribui à categoria “Outros”.
Melhoria do filtro para caracteres problemáticos:
Otimização das funções de filtro para lidar melhor com caracteres problemáticos.
Otimizações de código:
Todas as variáveis globais estão agora no início do script.
Não há mais funções dentro de outras funções.
Mesclar linhas de código quando apropriado para melhor legibilidade e manutenção.
Alocação correta de pacotes ZIP:
Os pacotes ZIP agora são baixados nas pastas apropriadas de acordo com as especificações da API, por exemplo, Training_Data, Lora, Other.
Pacotes ZIP sem uma categoria específica ainda são baixados em “Outros”.
Estatísticas corrigidas:
A função de estatísticas agora é baseada no novo script auxiliar fetch_all_models.py
, que melhora a precisão e a funcionalidade.
Filtragem de caracteres aprimorada:
O script foi modificado para filtrar extensivamente caracteres proibidos e problemáticos para evitar problemas durante o processo de criação de pastas.
Melhorias no tratamento de erros:
Nos casos em que o script encontra caracteres que impedem a criação de pastas, ele agora registra o nome e o URL do download afetado.
Essas informações são registradas em um arquivo de texto pré-existente, que recebe automaticamente o nome do usuário cujo conteúdo está sendo baixado. Esta atualização permite que os usuários concluam os downloads manualmente se surgirem problemas.
failed_downloads_username.txt
Alterado de Ignorar imagem para Truncar quando o comprimento do caminho excede o limite.
Novo recurso há muito aguardado
Opções de download seletivo
Os usuários agora podem optar por baixar tipos de conteúdo específicos:
Lora
Pontos de verificação
Incorporações
Outro
Tudo menos Lora, Checkpoints, Embeddings (agrupados em Other_Model_types para itens baixados com menos frequência)
Todos
é o comportamento de download padrão: A opção padrão para baixar todo o conteúdo disponível permanece se nenhum parâmetro de download específico for definido.
Linha de comando e melhorias interativas:
Argumentos de linha de comando: os usuários podem especificar diretamente suas preferências de download (Lora, Checkpoints, Embedding, Other ou All) via linha de comando junto com outros parâmetros de inicialização.
Modo Interativo: Se nenhum argumento de linha de comando for especificado, o programa solicitará interativamente que os usuários selecionem o conteúdo que desejam baixar. Pressionar a tecla Enter ativa as configurações padrão para baixar todo o conteúdo.
Atualização da estrutura de pastas:
Armazenamento organizado: A estrutura de pastas do programa foi reorganizada para suportar novas opções de download de forma eficiente:
Diretório principal: model_downloads/
Subdiretório específico do usuário: Nome de usuário/
Subpastas específicas de conteúdo para Lora, Checkpoints, Embeddings e Other_Model_types, cada uma contendo subpastas específicas de item.
Correção de bug
O script não removerá mais o nome do arquivo se ele for escrito da mesma forma que o nome da pasta. Isso pode acontecer de vez em quando devido à função de higienização do script.
Nova função para evitar OSError: [Errno 36] Nome do arquivo muito longo:
A paginação é fixa
Nova Função Vários Nomes de Usuário