스크립트는 Lora, 체크포인트, 임베딩, 교육 데이터, 기타 또는 전체 및 특정 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
헬퍼 스크립트 fetch_all_models.py를 사용하여 생성된 username.txt의 예
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 텍스트 파일
각 모델에 대해 "triggerWords.txt" 파일을 생성하는 기능이 추가되었습니다.
이 파일에는 모델과 관련된 트리거 단어가 포함되어 있습니다.
"triggerWords.txt" 파일은 모델 파일과 동일한 디렉터리에 저장됩니다.
기본 모델 폴더 구성
기본 모델을 기반으로 다운로드를 구성하는 새로운 폴더 구조를 구현했습니다.
이제 다운로드는 각 카테고리(Lora, Checkpoints 등) 내에서 해당 기본 모델의 이름을 딴 하위 폴더로 분류됩니다.
이 구성은 기본 모델 정보를 사용할 수 있는 경우 모든 범주에 적용됩니다.
기본 모델 정보가 없는 범주의 폴더는 변경되지 않습니다.
기본 모델 사용 및 관련 문제를 추적하기 위해 로깅이 개선되었습니다.
모델 설명 파일
이 파일에는 작성자가 제공한 모델의 원래 설명이 포함되어 있습니다.
설명 파일은 브라우저에서 직접 열 수 있는 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에 대한 콘텐츠별 하위 폴더는 각각 항목별 하위 폴더를 포함합니다.
버그수정
폴더 이름과 동일한 방식으로 작성된 파일 이름은 더 이상 스크립트에서 제거되지 않습니다. 이는 스크립트의 삭제 기능으로 인해 때때로 발생할 수 있습니다.
OSError를 방지하기 위한 새로운 기능: [Errno 36] 파일 이름이 너무 깁니다.
페이지 매김이 수정되었습니다.
새로운 기능 다중 사용자 이름