뭐 정보까지는 안될거같고 그냥 내경우임


예전에 옆챈에 ai짤 1장으로 로라 만드는거 글 쓰고나서 


그냥 개인용으로 계속 필요한거 학습하면서 쓰고있었음




그러다가 캐릭하나에 치였는데


이게뭐 버튜버도 아니고 스트리머가 trpg하면서 npc로 쓴 캐릭터라 이미지 구하기도 마땅치 않아서


ai생성물로도 학습 가능하고 이미지 장수 적어도 어느 정도 타협하는 선에서 학습이 된다는 걸 경험으로 알고 있어서


그렇게 하기로 했음


민트초코가 모티브인 캐릭이라 머리가 민트초코색인데 이게 ai로는 안나오니까 


t2i로 베이스만 뽑고


나머지 부분은 내가 그냥 칠해주기로 하고 시작함

이렇게


잡 노이즈같은거도 편집과정에서 노이즈제거 돌려가면서 데이터셋 준비하고


이런식으로 이미지 만들고->학습->이미지뽑고 수정하고->학습을 반복했음


어차피 물량 많이 뽑을수 있으니까 존나뽑고 그중에서 괜찮은거만 내가 손대서 편집해서 데이터 삼는 방식으로 함


어느순간 내가 손 안대도 원하는 수준으로 나와서 그걸 마지막 데이터셋으로 삼고 학습 돌렸음


학습할때는 animefull말고 이미지 뽑은 모델로 돌리는게 잘나왔음


학습 파라미터는


SD1.5

{

  "LoRA_type": "Standard",

  "adaptive_noise_scale": 0,

  "additional_parameters": "",

  "block_alphas": "",

  "block_dims": "",

  "block_lr_zero_threshold": "",

  "bucket_no_upscale": true,

  "bucket_reso_steps": 64,

  "cache_latents": true,

  "cache_latents_to_disk": false,

  "caption_dropout_every_n_epochs": 0.0,

  "caption_dropout_rate": 0,

  "caption_extension": "",

  "clip_skip": 2,

  "color_aug": false,

  "conv_alpha": 1,

  "conv_block_alphas": "",

  "conv_block_dims": "",

  "conv_dim": 1,

  "decompose_both": false,

  "dim_from_weights": false,

  "down_lr_weight": "",

  "enable_bucket": true,

  "epoch": 20,

  "factor": -1,

  "flip_aug": false,

  "full_bf16": false,

  "full_fp16": false,

  "gradient_accumulation_steps": "1",

  "gradient_checkpointing": false,

  "keep_tokens": "0",

  "learning_rate": 0.0001,

  "logging_dir": "F:/mint lora/1205\\log",

  "lora_network_weights": "",

  "lr_scheduler": "cosine_with_restarts",

  "lr_scheduler_args": "",

  "lr_scheduler_num_cycles": "",

  "lr_scheduler_power": "",

  "lr_warmup": 10,

  "max_bucket_reso": 2048,

  "max_data_loader_n_workers": "0",

  "max_resolution": "1024,1024",

  "max_timestep": 1000,

  "max_token_length": "75",

  "max_train_epochs": "",

  "max_train_steps": "",

  "mem_eff_attn": false,

  "mid_lr_weight": "",

  "min_bucket_reso": 256,

  "min_snr_gamma": 5,

  "min_timestep": 0,

  "mixed_precision": "fp16",

  "model_list": "custom",

  "module_dropout": 0,

  "multires_noise_discount": 0,

  "multires_noise_iterations": 0,

  "network_alpha": 16,

  "network_dim": 32,

  "network_dropout": 0,

  "no_token_padding": false,

  "noise_offset": 0.1,

  "noise_offset_type": "Original",

  "num_cpu_threads_per_process": 2,

  "optimizer": "AdamW8bit",

  "optimizer_args": "",

  "output_dir": "F:/mint lora/1205\\model",

  "output_name": "mintanime_1204_02",

  "persistent_data_loader_workers": false,

  "pretrained_model_name_or_path": "C:/stable-diffusion-webui/models/Stable-diffusion/t3fp16.safetensors",

  "prior_loss_weight": 1.0,

  "random_crop": false,

  "rank_dropout": 0,

  "reg_data_dir": "",

  "resume": "",

  "sample_every_n_epochs": 1,

  "sample_every_n_steps": 0,

  "sample_prompts": "best quality, masterpiece, high resolution, 1girl, mintsenpai,large breasts, single braid, streaked hair  --w 512, --h 768, --d -1, --l 7, --s 20, --n (worst quality, low quality:1.3),artist name, character name, copyright name, company name, signature, patreon username, twitter username, weibo username, deviantart username,nsfw\n",

  "sample_sampler": "euler_a",

  "save_every_n_epochs": 1,

  "save_every_n_steps": 0,

  "save_last_n_steps": 0,

  "save_last_n_steps_state": 0,

  "save_model_as": "safetensors",

  "save_precision": "fp16",

  "save_state": false,

  "scale_v_pred_loss_like_noise_pred": false,

  "scale_weight_norms": 0,

  "sdxl": false,

  "sdxl_cache_text_encoder_outputs": false,

  "sdxl_no_half_vae": true,

  "seed": "",

  "shuffle_caption": false,

  "stop_text_encoder_training_pct": 0,

  "text_encoder_lr": 4.5e-05,

  "train_batch_size": 1,

  "train_data_dir": "F:/mint lora/1205\\img",

  "train_on_input": true,

  "training_comment": "",

  "unet_lr": 0.0001,

  "unit": 1,

  "up_lr_weight": "",

  "use_cp": false,

  "use_wandb": false,

  "v2": false,

  "v_parameterization": false,

  "v_pred_like_loss": 0,

  "vae_batch_size": 0,

  "wandb_api_key": "",

  "weighted_captions": false,

  "xformers": "xformers"

}




SDXL

{    "ss_sd_model_name": "animagine-xl-3.0.safetensors",    "ss_resolution": "(1024, 1024)",    "ss_clip_skip": "None",    "ss_num_train_images": "114",    "ss_tag_frequency": {        "meta_lat.json": {}    },    "sshs_legacy_hash": "cec707d5",    "ss_color_aug": "False",    "ss_shuffle_caption": "True",    "ss_vae_hash": "d636e597",    "ss_optimizer": "transformers.optimization.Adafactor(scale_parameter=False,relative_step=False,warmup_init=False)",    "ss_zero_terminal_snr": "False",    "ss_gradient_checkpointing": "True",    "ss_full_fp16": "False",    "ss_max_bucket_reso": "None",    "ss_max_grad_norm": "0",    "ss_new_sd_model_hash": "1449e5b0b9de87b0f414c5f29cb11ce3b3dc61fa2b320e784c9441720bf7b766",    "ss_scale_weight_norms": "None",    "ss_reg_dataset_dirs": {},    "ss_random_crop": "False",    "ss_cache_latents": "False",    "ss_network_dim": "32",    "ss_session_id": "2448531016",    "ss_bucket_info": {        "buckets": {            "0": {                "resolution": [                    704,                    1024                ],                "count": 88            },            "1": {                "resolution": [                    1024,                    576                ],                "count": 6            },            "2": {                "resolution": [                    1024,                    1024                ],                "count": 20            }        },        "mean_img_ar_error": 0.0    },    "ss_gradient_accumulation_steps": "1",    "ss_training_started_at": "1705027854.38396",    "ss_sd_scripts_commit_hash": "05811296f6dc987f67f194689e106a326017b9d4",    "ss_min_snr_gamma": "5",    "ss_mixed_precision": "bf16",    "ss_noise_offset": "0.0357",    "ss_learning_rate": "0.0001",    "ss_new_vae_hash": "63aeecb90ff7bc1c115395962d3e803571385b61938377bc7089b36e81e92e2e",    "ss_lr_scheduler": "constant_with_warmup",    "ss_max_train_steps": "1140",    "ss_min_bucket_reso": "None",    "ss_network_alpha": "16",    "ss_total_batch_size": "1",    "ss_unet_lr": "None",    "ss_network_module": "networks.lora",    "ss_adaptive_noise_scale": "None",    "ss_training_comment": "None",    "ss_training_finished_at": "1705029851.988913",    "ss_num_reg_images": "0",    "ss_flip_aug": "False",    "sshs_model_hash": "be8b937409e85c00d730907b8f44bdbb6c7b9836155ac8926eef8e2391f361ff",    "ss_bucket_no_upscale": "False",    "ss_keep_tokens": "0",    "ss_batch_size_per_device": "1",    "ss_caption_dropout_every_n_epochs": "0",    "ss_output_name": "sdxl_mintlora",    "ss_num_epochs": "10",    "ss_seed": "3835186055",    "ss_vae_name": "sdxl_vae.safetensors",    "ss_face_crop_aug_range": "None",    "ss_caption_tag_dropout_rate": "0.5",    "ss_enable_bucket": "True",    "ss_dataset_dirs": {        "meta_lat.json": {            "n_repeats": 2,            "img_count": 57        }    },    "ss_multires_noise_iterations": "None",    "ss_caption_dropout_rate": "0",    "ss_steps": "1140",    "ss_lowram": "False",    "ss_lr_warmup_steps": "100",    "ss_v2": "False",    "ss_max_token_length": "225",    "ss_network_dropout": "None",    "ss_num_batches_per_epoch": "114",    "ss_epoch": "10",    "ss_text_encoder_lr": "None",    "ss_prior_loss_weight": "1.0",    "ss_multires_noise_discount": "0.3",    "ss_base_model_version": "sdxl_base_v0-9",    "ss_sd_model_hash": "75f2f05b"}


이렇게썼음



SD1.5랑 SDXL둘다 학습 괜찮게 돼서 지금은 둘다 돌려가면서 쓰고있음



아래는 그 예시

SD1.5SDXL






요약하자면


1. 어느정도 타협만 한다면 원래부터 학습 잘하는 여캐같은건 ai짤로도 어렵지 않게 학습할수있음

2. 물량은 압도적인 속도로 공급 가능하니 데이터셋 잘 추리면 쓸만함

3. 이미지 뽑는대에 사용한 모델로 학습하자