Skip to content

Instantly share code, notes, and snippets.

View kohya-ss's full-sized avatar

Kohya S. kohya-ss

View GitHub Profile
@kohya-ss
kohya-ss / llm_characters.py
Last active June 27, 2024 14:53
system promptを切り替えてLLMに複数キャラを会話させる
# Apache License 2.0
# 使用法は gist のコメントを見てください
import argparse
import importlib
import json
import os
import random
import time
import traceback
import tomli
@kohya-ss
kohya-ss / stepwise_linear_decay_lr_scheduler.py
Created May 22, 2024 13:40
指定ステップまで定数、そこから減少、その後定数
# 仮に logs に入れたら以下のように指定
# --lr_scheduler_type logs.stepwise_linear_decay_lr_scheduler.get_stepwise_linear_decay_lr_scheduler
# --lr_scheduler_args "step_a=50" "step_b=80" "factor_1=1.0" "factor_2=0.1"
#
# step_a までの学習率: 指定した learning_rate * factor_1
# step_a から step_b まで: 線形に減少(増加)
# step_b からの学習率: 指定した learning_rate * factor_2
from torch.optim.lr_scheduler import LambdaLR
@kohya-ss
kohya-ss / get_wd14_tag_confidence.py
Created May 17, 2024 12:57
WD14 Taggerでタグごとの確信度を取得する
import argparse
import csv
import glob
import os
from pathlib import Path
import cv2
import numpy as np
import torch
from PIL import Image
@kohya-ss
kohya-ss / make_prompts_with_dartv2.py
Created May 15, 2024 11:17
Dart V2を使ってプロンプトを作成
# Dart v2を用いて sd-scripts の gen_img.py 用のプロンプトファイルを作成するスクリプト
import random
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# Rating tag: <|rating:sfw|>, <|rating:general|>, <|rating:sensitive|>, nsfw, <|rating:questionable|>, <|rating:explicit|>
# Aspect ratio tag: <|aspect_ratio:ultra_wide|>, <|aspect_ratio:wide|>, <|aspect_ratio:square|>, <|aspect_ratio:tall|>, <|aspect_ratio:ultra_tall|>
# Length tag: <|length:very_short|>, <|length:short|>, <|length:medium|>, <|length:long|>, <|length:very_long|>
"""
@kohya-ss
kohya-ss / gradio_llm.py
Last active July 4, 2024 11:14
gradioでLLMを利用する簡易クライアント
# Apache License 2.0
# 使用法は gist のコメントを見てください
import argparse
from typing import List, Optional, Union, Iterator
import llama_cpp
from llama_cpp.llama_chat_format import _convert_completion_to_chat, register_chat_completion_handler
import llama_cpp.llama_types as llama_types
from llama_cpp.llama import LogitsProcessorList, LlamaGrammar
from llama_cpp import Llama, llama_chat_format
@kohya-ss
kohya-ss / gradio_cmdrp.py
Created April 18, 2024 13:09
llama-cpp-python と gradio で command-r-plus を動かす
# Apache License 2.0
# 使用法は gist のコメントを見てください
import argparse
from typing import List, Optional, Union, Iterator
from llama_cpp import Llama
from llama_cpp.llama_tokenizer import LlamaHFTokenizer
from llama_cpp.llama_chat_format import _convert_completion_to_chat, register_chat_completion_handler
import llama_cpp.llama_types as llama_types
@kohya-ss
kohya-ss / sdxl_train_te_leco.py
Last active March 21, 2024 12:12
LECOっぽいText Encoder only LoRAを学習する検証実装
# sdxl_train_network.py と同じ引数を指定してください
# --network_train_text_encoder_only オプションが必須です
#
# 260行目あたりの src_str, tgt_str に変換元と変換先のテキストを指定してください
# tagger の selected_tags.csv が必要ですので、適宜パスを変更してください
# この辺にあります : https://huggingface.co/SmilingWolf/wd-v1-4-swinv2-tagger-v2/tree/main
#
# "1girl" タグだけは必ず含まれる感じにしているので、必要なら 820 行目あたりを適宜変更してください
#
# 以下のオプションは指定できません(エラーになります):
@kohya-ss
kohya-ss / vae_vs_taesd_gradio.py
Last active March 18, 2024 23:17
VAEとTAESDのdecode結果を比較するやつ、Gradio版
# Claude 3 Opus とめっちゃやり取りして動くようになった
# python vae_vs_taesd_gradio.py --image_dir /path/to/image/directory
import os
import argparse
import random
from PIL import Image
import torch
from diffusers import AutoencoderKL, AutoencoderTiny
import numpy as np
@kohya-ss
kohya-ss / vae_vs_taesd.py
Created March 17, 2024 23:32
VAEとTAESDのdecode結果を比較するやつ
# Claude 3 Opus にだいたい書いてもらった
# python vae_vs_taesd.py --image_dir /path/to/image/directory
import os
import argparse
import random
from PIL import Image, ImageTk
import torch
from diffusers import AutoencoderKL, AutoencoderTiny
import tkinter as tk
@kohya-ss
kohya-ss / fragment_of_sdxl_gen_img.py
Created January 22, 2024 23:48
クロマキー合成っぽいことをやる
each_control_net_enabled = [self.control_net_enabled] * len(self.control_nets)
for i, t in enumerate(tqdm(timesteps)):
# ↓ ここから
# test: chroma key like composition
if latents.shape[0] == 4:
# run this script with batch size 4
# sample prompt for ANIMAGINE XL V3.0: 2nd prompt doesn't have detailes, because it is used for making mask
# green surface of green screen --n color, artifact, object, shadow, frame --d 1
# 1girl, serafuku, standing, cowboy shot, green background, masterpiece, best quality --n nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name --d 1