mirror of
https://github.com/kohya-ss/sd-scripts.git
synced 2026-04-08 22:35:09 +00:00
add args for logging
This commit is contained in:
@@ -105,9 +105,11 @@ from library.original_unet import FlashAttentionFunction
|
||||
from library.utils import GradualLatent, EulerAncestralDiscreteSchedulerGL
|
||||
|
||||
from XTI_hijack import unet_forward_XTI, downblock_forward_XTI, upblock_forward_XTI
|
||||
from library.utils import setup_logging
|
||||
from library.utils import setup_logging, add_logging_arguments
|
||||
|
||||
setup_logging()
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# scheduler:
|
||||
@@ -1592,7 +1594,9 @@ class PipelineLike:
|
||||
image_embeddings = self.vgg16_feat_model(image)["feat"]
|
||||
|
||||
# バッチサイズが複数だと正しく動くかわからない
|
||||
loss = ((image_embeddings - guide_embeddings) ** 2).mean() * guidance_scale # MSE style transferでコンテンツの損失はMSEなので
|
||||
loss = (
|
||||
(image_embeddings - guide_embeddings) ** 2
|
||||
).mean() * guidance_scale # MSE style transferでコンテンツの損失はMSEなので
|
||||
|
||||
grads = -torch.autograd.grad(loss, latents)[0]
|
||||
if isinstance(self.scheduler, LMSDiscreteScheduler):
|
||||
@@ -2610,7 +2614,9 @@ def main(args):
|
||||
embeds = next(iter(data.values()))
|
||||
|
||||
if type(embeds) != torch.Tensor:
|
||||
raise ValueError(f"weight file does not contains Tensor / 重みファイルのデータがTensorではありません: {embeds_file}")
|
||||
raise ValueError(
|
||||
f"weight file does not contains Tensor / 重みファイルのデータがTensorではありません: {embeds_file}"
|
||||
)
|
||||
|
||||
num_vectors_per_token = embeds.size()[0]
|
||||
token_string = os.path.splitext(os.path.basename(embeds_file))[0]
|
||||
@@ -2840,7 +2846,9 @@ def main(args):
|
||||
|
||||
logger.info(f"loaded {len(guide_images)} guide images for guidance")
|
||||
if len(guide_images) == 0:
|
||||
logger.info(f"No guide image, use previous generated image. / ガイド画像がありません。直前に生成した画像を使います: {args.image_path}")
|
||||
logger.info(
|
||||
f"No guide image, use previous generated image. / ガイド画像がありません。直前に生成した画像を使います: {args.image_path}"
|
||||
)
|
||||
guide_images = None
|
||||
else:
|
||||
guide_images = None
|
||||
@@ -3134,7 +3142,9 @@ def main(args):
|
||||
cv2.waitKey()
|
||||
cv2.destroyAllWindows()
|
||||
except ImportError:
|
||||
logger.info("opencv-python is not installed, cannot preview / opencv-pythonがインストールされていないためプレビューできません")
|
||||
logger.info(
|
||||
"opencv-python is not installed, cannot preview / opencv-pythonがインストールされていないためプレビューできません"
|
||||
)
|
||||
|
||||
return images
|
||||
|
||||
@@ -3484,16 +3494,25 @@ def main(args):
|
||||
def setup_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
parser.add_argument("--v2", action="store_true", help="load Stable Diffusion v2.0 model / Stable Diffusion 2.0のモデルを読み込む")
|
||||
add_logging_arguments(parser)
|
||||
|
||||
parser.add_argument(
|
||||
"--v2", action="store_true", help="load Stable Diffusion v2.0 model / Stable Diffusion 2.0のモデルを読み込む"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--v_parameterization", action="store_true", help="enable v-parameterization training / v-parameterization学習を有効にする"
|
||||
)
|
||||
parser.add_argument("--prompt", type=str, default=None, help="prompt / プロンプト")
|
||||
parser.add_argument(
|
||||
"--from_file", type=str, default=None, help="if specified, load prompts from this file / 指定時はプロンプトをファイルから読み込む"
|
||||
"--from_file",
|
||||
type=str,
|
||||
default=None,
|
||||
help="if specified, load prompts from this file / 指定時はプロンプトをファイルから読み込む",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--interactive", action="store_true", help="interactive mode (generates one image) / 対話モード(生成される画像は1枚になります)"
|
||||
"--interactive",
|
||||
action="store_true",
|
||||
help="interactive mode (generates one image) / 対話モード(生成される画像は1枚になります)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no_preview", action="store_true", help="do not show generated image in interactive mode / 対話モードで画像を表示しない"
|
||||
@@ -3505,7 +3524,9 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
parser.add_argument("--strength", type=float, default=None, help="img2img strength / img2img時のstrength")
|
||||
parser.add_argument("--images_per_prompt", type=int, default=1, help="number of images per prompt / プロンプトあたりの出力枚数")
|
||||
parser.add_argument("--outdir", type=str, default="outputs", help="dir to write results to / 生成画像の出力先")
|
||||
parser.add_argument("--sequential_file_name", action="store_true", help="sequential output file name / 生成画像のファイル名を連番にする")
|
||||
parser.add_argument(
|
||||
"--sequential_file_name", action="store_true", help="sequential output file name / 生成画像のファイル名を連番にする"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--use_original_file_name",
|
||||
action="store_true",
|
||||
@@ -3559,9 +3580,14 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
default=7.5,
|
||||
help="unconditional guidance scale: eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty)) / guidance scale",
|
||||
)
|
||||
parser.add_argument("--ckpt", type=str, default=None, help="path to checkpoint of model / モデルのcheckpointファイルまたはディレクトリ")
|
||||
parser.add_argument(
|
||||
"--vae", type=str, default=None, help="path to checkpoint of vae to replace / VAEを入れ替える場合、VAEのcheckpointファイルまたはディレクトリ"
|
||||
"--ckpt", type=str, default=None, help="path to checkpoint of model / モデルのcheckpointファイルまたはディレクトリ"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--vae",
|
||||
type=str,
|
||||
default=None,
|
||||
help="path to checkpoint of vae to replace / VAEを入れ替える場合、VAEのcheckpointファイルまたはディレクトリ",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--tokenizer_cache_dir",
|
||||
@@ -3597,25 +3623,46 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
help="use xformers by diffusers (Hypernetworks doesn't work) / Diffusersでxformersを使用する(Hypernetwork利用不可)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--opt_channels_last", action="store_true", help="set channels last option to model / モデルにchannels lastを指定し最適化する"
|
||||
"--opt_channels_last",
|
||||
action="store_true",
|
||||
help="set channels last option to model / モデルにchannels lastを指定し最適化する",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--network_module", type=str, default=None, nargs="*", help="additional network module to use / 追加ネットワークを使う時そのモジュール名"
|
||||
"--network_module",
|
||||
type=str,
|
||||
default=None,
|
||||
nargs="*",
|
||||
help="additional network module to use / 追加ネットワークを使う時そのモジュール名",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--network_weights", type=str, default=None, nargs="*", help="additional network weights to load / 追加ネットワークの重み"
|
||||
)
|
||||
parser.add_argument("--network_mul", type=float, default=None, nargs="*", help="additional network multiplier / 追加ネットワークの効果の倍率")
|
||||
parser.add_argument(
|
||||
"--network_args", type=str, default=None, nargs="*", help="additional arguments for network (key=value) / ネットワークへの追加の引数"
|
||||
"--network_mul", type=float, default=None, nargs="*", help="additional network multiplier / 追加ネットワークの効果の倍率"
|
||||
)
|
||||
parser.add_argument("--network_show_meta", action="store_true", help="show metadata of network model / ネットワークモデルのメタデータを表示する")
|
||||
parser.add_argument(
|
||||
"--network_merge_n_models", type=int, default=None, help="merge this number of networks / この数だけネットワークをマージする"
|
||||
"--network_args",
|
||||
type=str,
|
||||
default=None,
|
||||
nargs="*",
|
||||
help="additional arguments for network (key=value) / ネットワークへの追加の引数",
|
||||
)
|
||||
parser.add_argument("--network_merge", action="store_true", help="merge network weights to original model / ネットワークの重みをマージする")
|
||||
parser.add_argument(
|
||||
"--network_pre_calc", action="store_true", help="pre-calculate network for generation / ネットワークのあらかじめ計算して生成する"
|
||||
"--network_show_meta", action="store_true", help="show metadata of network model / ネットワークモデルのメタデータを表示する"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--network_merge_n_models",
|
||||
type=int,
|
||||
default=None,
|
||||
help="merge this number of networks / この数だけネットワークをマージする",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--network_merge", action="store_true", help="merge network weights to original model / ネットワークの重みをマージする"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--network_pre_calc",
|
||||
action="store_true",
|
||||
help="pre-calculate network for generation / ネットワークのあらかじめ計算して生成する",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--network_regional_mask_max_color_codes",
|
||||
@@ -3637,7 +3684,9 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
nargs="*",
|
||||
help="Embeddings files of Extended Textual Inversion / Extended Textual Inversionのembeddings",
|
||||
)
|
||||
parser.add_argument("--clip_skip", type=int, default=None, help="layer number from bottom to use in CLIP / CLIPの後ろからn層目の出力を使う")
|
||||
parser.add_argument(
|
||||
"--clip_skip", type=int, default=None, help="layer number from bottom to use in CLIP / CLIPの後ろからn層目の出力を使う"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--max_embeddings_multiples",
|
||||
type=int,
|
||||
@@ -3678,7 +3727,10 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
help="enable highres fix, reso scale for 1st stage / highres fixを有効にして最初の解像度をこのscaleにする",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--highres_fix_steps", type=int, default=28, help="1st stage steps for highres fix / highres fixの最初のステージのステップ数"
|
||||
"--highres_fix_steps",
|
||||
type=int,
|
||||
default=28,
|
||||
help="1st stage steps for highres fix / highres fixの最初のステージのステップ数",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--highres_fix_strength",
|
||||
@@ -3687,7 +3739,9 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
help="1st stage img2img strength for highres fix / highres fixの最初のステージのimg2img時のstrength、省略時はstrengthと同じ",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--highres_fix_save_1st", action="store_true", help="save 1st stage images for highres fix / highres fixの最初のステージの画像を保存する"
|
||||
"--highres_fix_save_1st",
|
||||
action="store_true",
|
||||
help="save 1st stage images for highres fix / highres fixの最初のステージの画像を保存する",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--highres_fix_latents_upscaling",
|
||||
@@ -3695,7 +3749,10 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
help="use latents upscaling for highres fix / highres fixでlatentで拡大する",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--highres_fix_upscaler", type=str, default=None, help="upscaler module for highres fix / highres fixで使うupscalerのモジュール名"
|
||||
"--highres_fix_upscaler",
|
||||
type=str,
|
||||
default=None,
|
||||
help="upscaler module for highres fix / highres fixで使うupscalerのモジュール名",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--highres_fix_upscaler_args",
|
||||
@@ -3710,14 +3767,21 @@ def setup_parser() -> argparse.ArgumentParser:
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--negative_scale", type=float, default=None, help="set another guidance scale for negative prompt / ネガティブプロンプトのscaleを指定する"
|
||||
"--negative_scale",
|
||||
type=float,
|
||||
default=None,
|
||||
help="set another guidance scale for negative prompt / ネガティブプロンプトのscaleを指定する",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--control_net_models", type=str, default=None, nargs="*", help="ControlNet models to use / 使用するControlNetのモデル名"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--control_net_preps", type=str, default=None, nargs="*", help="ControlNet preprocess to use / 使用するControlNetのプリプロセス名"
|
||||
"--control_net_preps",
|
||||
type=str,
|
||||
default=None,
|
||||
nargs="*",
|
||||
help="ControlNet preprocess to use / 使用するControlNetのプリプロセス名",
|
||||
)
|
||||
parser.add_argument("--control_net_weights", type=float, default=None, nargs="*", help="ControlNet weights / ControlNetの重み")
|
||||
parser.add_argument(
|
||||
@@ -3801,4 +3865,5 @@ if __name__ == "__main__":
|
||||
parser = setup_parser()
|
||||
|
||||
args = parser.parse_args()
|
||||
setup_logging(args, reset=True)
|
||||
main(args)
|
||||
|
||||
Reference in New Issue
Block a user