MCPcopy
hub / github.com/kohya-ss/sd-scripts / generate

Method generate

library/config_util.py:414–457  ·  view source on GitHub ↗
(self, user_config: dict, argparse_namespace: argparse.Namespace, **runtime_params)

Source from the content-addressed store, hash-verified

412
413 # runtime_params is for parameters which is only configurable on runtime, such as tokenizer
414 def generate(self, user_config: dict, argparse_namespace: argparse.Namespace, **runtime_params) -> Blueprint:
415 sanitized_user_config = self.sanitizer.sanitize_user_config(user_config)
416 sanitized_argparse_namespace = self.sanitizer.sanitize_argparse_namespace(argparse_namespace)
417
418 # convert argparse namespace to dict like config
419 # NOTE: it is ok to have extra entries in dict
420 optname_map = self.sanitizer.ARGPARSE_OPTNAME_TO_CONFIG_OPTNAME
421 argparse_config = {
422 optname_map.get(optname, optname): value for optname, value in vars(sanitized_argparse_namespace).items()
423 }
424
425 general_config = sanitized_user_config.get("general", {})
426
427 dataset_blueprints = []
428 for dataset_config in sanitized_user_config.get("datasets", []):
429 # NOTE: if subsets have no "metadata_file", these are DreamBooth datasets/subsets
430 subsets = dataset_config.get("subsets", [])
431 is_dreambooth = all(["metadata_file" not in subset for subset in subsets])
432 is_controlnet = all(["conditioning_data_dir" in subset for subset in subsets])
433 if is_controlnet:
434 subset_params_klass = ControlNetSubsetParams
435 dataset_params_klass = ControlNetDatasetParams
436 elif is_dreambooth:
437 subset_params_klass = DreamBoothSubsetParams
438 dataset_params_klass = DreamBoothDatasetParams
439 else:
440 subset_params_klass = FineTuningSubsetParams
441 dataset_params_klass = FineTuningDatasetParams
442
443 subset_blueprints = []
444 for subset_config in subsets:
445 params = self.generate_params_by_fallbacks(
446 subset_params_klass, [subset_config, dataset_config, general_config, argparse_config, runtime_params]
447 )
448 subset_blueprints.append(SubsetBlueprint(params))
449
450 params = self.generate_params_by_fallbacks(
451 dataset_params_klass, [dataset_config, general_config, argparse_config, runtime_params]
452 )
453 dataset_blueprints.append(DatasetBlueprint(is_dreambooth, is_controlnet, params, subset_blueprints))
454
455 dataset_group_blueprint = DatasetGroupBlueprint(dataset_blueprints)
456
457 return Blueprint(dataset_group_blueprint)
458
459 @staticmethod
460 def generate_params_by_fallbacks(param_klass, fallbacks: Sequence[dict]):

Callers 15

trainFunction · 0.95
trainMethod · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainFunction · 0.95
trainMethod · 0.95

Calls 8

SubsetBlueprintClass · 0.85
DatasetBlueprintClass · 0.85
BlueprintClass · 0.85
sanitize_user_configMethod · 0.80
getMethod · 0.80

Tested by

no test coverage detected