mirror of
https://github.com/storytold/FineTrainers-Conditioning.git
synced 2026-10-22 08:05:17 +00:00
Helpful mesages (#210)
This commit is contained in:
+44
-10
@@ -1,4 +1,5 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
import sys
|
||||||
from typing import Any, Dict, List, Optional, Tuple
|
from typing import Any, Dict, List, Optional, Tuple
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
@@ -11,6 +12,13 @@ class Args:
|
|||||||
r"""
|
r"""
|
||||||
The arguments for the finetrainers training script.
|
The arguments for the finetrainers training script.
|
||||||
|
|
||||||
|
For helpful information about arguments, run `python train.py --help`.
|
||||||
|
|
||||||
|
TODO(aryan): add `python train.py --recommend_configs --model_name <model_name>` to recommend
|
||||||
|
good training configs for a model after extensive testing.
|
||||||
|
TODO(aryan): add `python train.py --memory_requirements --model_name <model_name>` to show
|
||||||
|
memory requirements per model, per training type with sensible training settings.
|
||||||
|
|
||||||
MODEL ARGUMENTS
|
MODEL ARGUMENTS
|
||||||
---------------
|
---------------
|
||||||
model_name (`str`):
|
model_name (`str`):
|
||||||
@@ -424,20 +432,31 @@ class Args:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# TODO(aryan): handle more informative messages
|
||||||
|
_IS_ARGUMENTS_REQUIRED = "--list_models" not in sys.argv
|
||||||
|
|
||||||
|
|
||||||
def parse_arguments() -> Args:
|
def parse_arguments() -> Args:
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
|
|
||||||
_add_model_arguments(parser)
|
if _IS_ARGUMENTS_REQUIRED:
|
||||||
_add_dataset_arguments(parser)
|
_add_model_arguments(parser)
|
||||||
_add_dataloader_arguments(parser)
|
_add_dataset_arguments(parser)
|
||||||
_add_diffusion_arguments(parser)
|
_add_dataloader_arguments(parser)
|
||||||
_add_training_arguments(parser)
|
_add_diffusion_arguments(parser)
|
||||||
_add_optimizer_arguments(parser)
|
_add_training_arguments(parser)
|
||||||
_add_validation_arguments(parser)
|
_add_optimizer_arguments(parser)
|
||||||
_add_miscellaneous_arguments(parser)
|
_add_validation_arguments(parser)
|
||||||
|
_add_miscellaneous_arguments(parser)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
return _map_to_args_type(args)
|
return _map_to_args_type(args)
|
||||||
|
else:
|
||||||
|
_add_helper_arguments(parser)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
_display_helper_messages(args)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
def validate_args(args: Args):
|
def validate_args(args: Args):
|
||||||
@@ -932,6 +951,14 @@ def _add_miscellaneous_arguments(parser: argparse.ArgumentParser) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _add_helper_arguments(parser: argparse.ArgumentParser) -> None:
|
||||||
|
parser.add_argument(
|
||||||
|
"--list_models",
|
||||||
|
action="store_true",
|
||||||
|
help="List all the supported models.",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
_DTYPE_MAP = {
|
_DTYPE_MAP = {
|
||||||
"bf16": torch.bfloat16,
|
"bf16": torch.bfloat16,
|
||||||
"fp16": torch.float16,
|
"fp16": torch.float16,
|
||||||
@@ -1089,3 +1116,10 @@ def _validate_validation_args(args: Args):
|
|||||||
assert len(args.validation_prompts) == len(
|
assert len(args.validation_prompts) == len(
|
||||||
args.validation_widths
|
args.validation_widths
|
||||||
), "Validation prompts and widths should be of same length"
|
), "Validation prompts and widths should be of same length"
|
||||||
|
|
||||||
|
|
||||||
|
def _display_helper_messages(args: argparse.Namespace):
|
||||||
|
if args.list_models:
|
||||||
|
print("Supported models:")
|
||||||
|
for index, model_name in enumerate(SUPPORTED_MODEL_CONFIGS.keys()):
|
||||||
|
print(f" {index + 1}. {model_name}")
|
||||||
|
|||||||
Reference in New Issue
Block a user