(config)
| 403 | |
| 404 | |
| 405 | def make_sample_density(config): |
| 406 | sd_config = config['sigma_sample_density'] |
| 407 | sigma_data = config['sigma_data'] |
| 408 | if sd_config['type'] == 'lognormal': |
| 409 | loc = sd_config['mean'] if 'mean' in sd_config else sd_config['loc'] |
| 410 | scale = sd_config['std'] if 'std' in sd_config else sd_config['scale'] |
| 411 | return partial(utils.rand_log_normal, loc=loc, scale=scale) |
| 412 | if sd_config['type'] == 'loglogistic': |
| 413 | loc = sd_config['loc'] if 'loc' in sd_config else math.log(sigma_data) |
| 414 | scale = sd_config['scale'] if 'scale' in sd_config else 0.5 |
| 415 | min_value = sd_config['min_value'] if 'min_value' in sd_config else 0. |
| 416 | max_value = sd_config['max_value'] if 'max_value' in sd_config else float('inf') |
| 417 | return partial(utils.rand_log_logistic, loc=loc, scale=scale, min_value=min_value, max_value=max_value) |
| 418 | if sd_config['type'] == 'loguniform': |
| 419 | min_value = sd_config['min_value'] if 'min_value' in sd_config else config['sigma_min'] |
| 420 | max_value = sd_config['max_value'] if 'max_value' in sd_config else config['sigma_max'] |
| 421 | return partial(utils.rand_log_uniform, min_value=min_value, max_value=max_value) |
| 422 | if sd_config['type'] in {'v-diffusion', 'cosine'}: |
| 423 | min_value = sd_config['min_value'] if 'min_value' in sd_config else 1e-3 |
| 424 | max_value = sd_config['max_value'] if 'max_value' in sd_config else 1e3 |
| 425 | return partial(utils.rand_v_diffusion, sigma_data=sigma_data, min_value=min_value, max_value=max_value) |
| 426 | if sd_config['type'] == 'split-lognormal': |
| 427 | loc = sd_config['mean'] if 'mean' in sd_config else sd_config['loc'] |
| 428 | scale_1 = sd_config['std_1'] if 'std_1' in sd_config else sd_config['scale_1'] |
| 429 | scale_2 = sd_config['std_2'] if 'std_2' in sd_config else sd_config['scale_2'] |
| 430 | return partial(utils.rand_split_log_normal, loc=loc, scale_1=scale_1, scale_2=scale_2) |
| 431 | if sd_config['type'] == 'cosine-interpolated': |
| 432 | min_value = sd_config.get('min_value', min(config['sigma_min'], 1e-3)) |
| 433 | max_value = sd_config.get('max_value', max(config['sigma_max'], 1e3)) |
| 434 | image_d = sd_config.get('image_d', max(config['input_size'])) |
| 435 | noise_d_low = sd_config.get('noise_d_low', 32) |
| 436 | noise_d_high = sd_config.get('noise_d_high', max(config['input_size'])) |
| 437 | return partial(utils.rand_cosine_interpolated, image_d=image_d, noise_d_low=noise_d_low, noise_d_high=noise_d_high, sigma_data=sigma_data, min_value=min_value, max_value=max_value) |
| 438 | |
| 439 | raise ValueError('Unknown sample density type') |
nothing calls this directly
no outgoing calls
no test coverage detected