MCPcopy Create free account
hub / github.com/Meshcapade/difflocks / make_sample_density

Function make_sample_density

k_diffusion/config.py:405–439  ·  view source on GitHub ↗
(config)

Source from the content-addressed store, hash-verified

403
404
405def 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')

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected