try1.0(sdxl fine tune practice) sdxl 的微调尝试练习
세부 정보
파일 다운로드
모델 설명
이 모델의 학습 데이터셋은 HuggingFace에 공개 업로드되었습니다. 필요시 다운로드 가능합니다
https://huggingface.co/datasets/TLFZ/civitai-try1.0-model-train-dataset
try1.0
이것은 nai3을 모방하여 animaginev3.1로 파인튜닝한 시도에 불과하며, 아티스트 태그를 적용했습니다. 과적합과 과소적합이 동시에 발생할 가능성이 높은 거친 초보자 시도입니다(가능하면 다운로드하지 마세요).
This is just an attempt to imitate nai3's animage finetune, with the artist's label. It is likely to be a rough novice attempt with both underfitting and overfitting (if possible, it is best not to download it)
try1.01
이 버전은 학습 데이터셋의 태그 및 이미지 내용을 수정하여 이전 버전보다 큰 진전을 이루었습니다.
대략적인 프로세스는 다음과 같습니다:
먼저 VPN을 사용하여 네트워크를 우회합니다.
이후 nai3 커뮤니티(원래 요소법전의 NovelAI 커뮤니티였으며, nai3 출시 후 해체법전 커뮤니티로 전환되었고, QQ 그룹 번호는 852429527입니다. B站에서 'novelai'로 검색해 관련 영상의 설명란을 통해 얻을 수 있으며, 개인 메시지는 필요 없습니다. 저의 능력은 제한적이며, 단지 기존 도구를 사용해 모델을 만드는 수준입니다. (그룹 멤버들은 저보다 훨씬 뛰어납니다:)) )에서 nai3 아티스트 스트림의 스타일 혼합 테스트셋을 활용했습니다. 예:『腾讯文档』【精简200画师】~K7의 개인적 아티스트 랭크,『300 스타일 법전: 혼합형』
다음과 같습니다:





제가 선호하는 아티스트 또는 혼합 스타일을 찾고, 원하는 혼합 스타일 효과에 맞춰 관련 아티스트의 이름을 수집합니다.
그런 다음 GPT-4o와 그룹 멤버들의 도움과 조언을 받아 waifuc 크롤러를 사용하여 danbooru와 gelbooru에서 해당 아티스트 태그의 모든 이미지와 수동 고품질 태깅을 가져옵니다.
또는 exhentai 사이트에서 qbittorrent를 사용해 각 갤러리의 BT 종자 파일을 다운로드하여 아티스트의 fanbox 또는 patreon 무코드 고해상도 이미지 패키지를 확보합니다.
이후
Duplicate Cleaner 5해킹 버전 소프트웨어를 사용하여 대부분의 유사한 차이 이미지를 제거합니다.수동으로(인간의 지능...) 아티스트의 초기 스타일 이미지 대부분을 제거합니다(이 단계도 매우 중요합니다). 다만 미적 평가 모델이 존재하는 것 같지만, 제게는 별로 쓸모없어 보입니다... 미적 모델은 같은 아티스트 스타일 내에서 우수한 혹은 초기 스타일의 이미지를 제대로 구분하지 못하는 것 같습니다. 아니면 제가 좋은 미적 평가 모델을 찾지 못했을지도 모르겠네요...
waifuc 내장 스크립트를 사용하여 투명 배경 이미지를 흰색 배경으로 변환하고, 선화와 흑백 이미지를 제거합니다.
tagger1.4의 swinv2-v3 모델을 사용해 각 아티스트 폴더에 태그를 부여하고, 아티스트 이름 프롬프트를 추가하며, 임계값을 0.35로 설정하고, 인물 임계값은 0.1로 설정하여 기계 태깅을 수행합니다.
그리고 마지막으로(아마도 가장 중요한 단계입니다!!!) BooruDatasetTagManager 소프트웨어를 사용해 수동으로 누락된 태그를 추가하고, 잘못된 태그를 삭제하거나 수정합니다. 이 수동 태깅 아이디어와 기술은 Civitai 홈페이지의 rulles 작가의 Civitai 기사 "Prompt Guidance, Tags t’o Avoid and useful tags to include"[https://civitai.com/articles/1009]에서 배웠으며, danbooru 또는 유사한 이미지 호스팅 웹사이트의 위키에서 태그 방법과 사용 가능한 태그를 확인할 수 있습니다(물론 일부 태그 아래의 예시 이미지는 매우 도발적일 수 있습니다...).
마지막으로 로컬에서 3090 GPU를 사용하고, Kohya-ss/sd-scripts용 LoRA & Dreambooth 학습 GUI & 스크립트 사전 설정 & 일괄 학습 환경을 로컬에 복제하여 dreambooth 하위의 sdxl 파인튜닝 스크립트를 실행합니다.
https://github.com/Akegarasu/lora-scripts총 31명의 아티스트 이미지집 약 7,613장의 이미지를 사용하여 1epoch당 약 11,063회 반복을 8epoch 실행했습니다. 약 88,504개의 배치 크기입니다. 현재 해당 아티스트 스타일을 약 70
90%까지 복원할 수 있습니다(저는 50만100만 스텝이 더 좋을 것이라 추정하지만, 학습 시간을 줄이기 위해 높은 학습률을 선택하여 학습 스텝 수를 줄였습니다. 24GB 메모리로는 다소 느리며, 8epoch는 약 17시간 정도 소요되었습니다).또한 nai3 아티스트 스트림 형식의 혼합 아티스트 스타일 생성을 지원하며, 예시 이미지 내에도 관련 프롬프트가 포함되어 있습니다.
각, 머리카락, 동물 귀 등 혼동되기 쉬운 부분과 기계 태깅이 부정확한 부분에만 집중했으며, 개인의 시간과 VPN 품질 및 인터넷 속도 문제로 인해 인물 태깅이 완전하지 않아 여전히 물체 혼합 현상이 발생합니다. 특히 일부 인물 이름은 인식되지 않거나 다른 캐릭터로 잘못 인식되어 매우 짜증납니다.
다음 학습에서는 현재 모델 학습 과정을 그대로 이어가며, 3~4명의 추가 아티스트 스타일을 도입하고, 대부분의 노력을 학습 데이터셋 태깅의 학습 및 교정에 집중할 예정입니다.
요약하면, 즐겁게 사용해주세요...(물론 이 모델을 수익화하지 마세요. 학습 데이터셋은 아티스트의 승인을 받지 않았으며, 이 모델은 인공지능에 대한 학습 및 경험 교류를 목적으로만 사용됩니다.)
아래는 파인튜닝 모델에 사용된 매개변수입니다
model_train_type = "sdxl-finetune" pretrained_model_name_or_path = "D:/stablediffusion/lora-scripts/sd-models/animagineXLV31_v31.safetensors" vae = "D:/stablediffusion/sdwebuiakiv4.2/models/VAE/sdxl-vae-fp16-fix.safetensors" train_data_dir = "D:/stablediffusion/lora-scripts/train/try" resolution = "1024,1024" enable_bucket = true min_bucket_reso = 256 max_bucket_reso = 1536 bucket_reso_steps = 32 output_name = "try1.01" output_dir = "./output" save_model_as = "safetensors" save_precision = "bf16" save_every_n_epochs = 1 save_state = true max_train_epochs = 20 train_batch_size = 1 gradient_checkpointing = true gradient_accumulation_steps = 32 learning_rate = 0.000007 learning_rate_te1 = 5e-7 learning_rate_te2 = 5e-7 lr_scheduler = "cosine_with_restarts" lr_warmup_steps = 0 lr_scheduler_num_cycles = 3 optimizer_type = "Lion8bit" min_snr_gamma = 5 log_with = "tensorboard" logging_dir = "./logs" caption_extension = ".txt" shuffle_caption = true weighted_captions = false keep_tokens = 1 max_token_length = 255 caption_tag_dropout_rate = 0.1 multires_noise_iterations = 6 multires_noise_discount = 0.3 seed = 1337 no_token_padding = false mixed_precision = "bf16" full_bf16 = true xformers = true lowram = false cache_latents = true cache_latents_to_disk = true persistent_data_loader_workers = true train_text_encoder = true
try1.02
아티스트 수를 약간 더 추가했고, 현재 아티스트 스타일은 아티스트 프롬프트 혼합을 통해 생성할 수 있어 이전 버전보다 오히려 더 생동감 있게 보입니다(하지만 인체 구조 오류가 더 많아질 수도 있습니다). 학습 데이터셋은 9,500장의 이미지로 늘었고, 테스트 결과 단일 스타일과 다중 스타일 혼합 모두 약간의 과적합이 발생했지만 효과가 좋았기 때문에 이를 선택했습니다.
그리고 waifuset이라는 데이터베이스 관리 소프트웨어(혹은 스크립트?)를 사용했습니다.
이 도구는 매우, 심지어 90% 이상 유용하지만 작은 버그가 있고, 시장에 이 도구 사용법을 설명하는 영상이 거의 없습니다. 100~200장 정도의 단일 스타일이라면 별 문제가 없지만, 수만 장의 이미지가 되면 이미지의 중복 태그 제거, 태깅, 오류 태그 수정 등을 스크립트 방식으로 처리해야 합니다. (나중에 잊어버리지 않도록 사용법 튜토리얼을 만들어야겠네요.)
한 가지 더, 이전 버전의 v1.01 모델은 8epoch로 학습되어 약간 과적합되었고, 이후 테스트 결과 5epoch가 더 나은 성능을 보였기에 v1.01 모델을 5epoch로 변경했습니다. 따라서 모델의 해시값이 변경될 수 있습니다(모델을 해시값으로 구분해 주세요. 저는 개인적으로 사용하기 좋은 모델만 업로드하려고 노력하지만, 때로는 제멋대로 수정하고 업로드할 수 있습니다...).
새로운 프롬프트는 v1.02 버전의 프롬프트 인터페이스에서 확장하여 복사하고 찾을 수 있습니다.
(100명의 아티스트가 되면 아마도 더 이상 못할 것 같네요.)
학습 데이터셋은 이미지와 txt 파일을 포함해 30GB에 달합니다... 현재 스타일 생성은 danbooru나 pixiv에서 스크립트로 직접 다운로드하고, tagger1.4 v3로 추가 태그를 붙이고, 중복 태그를 제거한 후 일괄 분석 및 태그 정리(하지만 많은 인물 태그가 누락되어 있고, danbooru와 tagger1.4 모두 인식하지 못하거나 제대로 태깅하지 못함. 예를 들어, 비싼 이엔필드의 공식 일러스트는 danbooru도 tagger1.4도 태깅하지 않았습니다. 이 인물과 해당 danbooru 태그는 분명 존재하는 데 말이죠... 도저히 말이 안 됩니다.)
모두 danbooru를 스크립트로 다운로드하고, 품질을 위해 exhentai의 종자 파일을 수동으로 다운로드한다면,
혹시 exhentai의 특정 아티스트 이름이나 특정 분류의 갤러리 종자 파일을 스크립트로 다운로드할 수는 없을까요?
예를 들어, 다운로드할 아티스트 이름을 먼저 선택하고, 언어 모델이 사이트 내장 분류기로 간단히 검색한 후, 언어 모델로 갤러리 이름과 대략적인 내용이 동일한지 확인하고, 중복되지 않는 유일한 갤러리만 종자 파일을 다운로드하는 방식은 어떨까요? 시간적으로는 언어 모델이 아티스트의 최초 갤러리와 최신 갤러리 사이의 중후반 갤러리를 선택하거나, 사이트의 시간 순서대로 최근인 2022년 또는 2023년 이후의 종자 파일을 다운로드하도록 설정할 수 있지 않을까요? (뭐라고 말하는지 모르겠지만, 떠오른 생각일 뿐입니다.) 하지만 인간의 지능(수동 작업)이 가장 안전합니다.....
기다려, 암녹청엽 님께서 이미 유사한 모델을 만들어 놓으셨네요..../model/399873?modelVersionId=546178 이젠 제대로 된 휠을 재발명한 의미가 뭔지 의심스럽네요....(암녹청엽 님한테 죄송합니다, 진짜인가요?) 하하
모두 암녹청엽 님의 모델을 쓰세요!












