Perlin noise

This commit is contained in:
hkinghuang
2023-05-15 11:16:08 +08:00
parent 5f1d07d62f
commit bca6a44974
3 changed files with 12 additions and 4 deletions

View File

@@ -410,9 +410,9 @@ def rand_perlin_2d_octaves(device, shape, res, octaves=1, persistence=0.5):
amplitude *= persistence
return noise
def perlin_noise(noise, device):
def perlin_noise(noise, device,octaves):
b, c, w, h = noise.shape()
perlin = lambda : rand_perlin_2d_octaves(device,(w,h),(4,4),1)
perlin = lambda : rand_perlin_2d_octaves(device,(w,h),(4,4),octaves)
noise_perlin_r = torch.rand(noise.shape, device=device) + perlin()
noise_perlin_g = torch.rand(noise.shape, device=device) + perlin()
noise_perlin_b = torch.rand(noise.shape, device=device) + perlin()
@@ -420,7 +420,7 @@ def perlin_noise(noise, device):
(noise_perlin_r,
noise_perlin_g,
noise_perlin_b),
2)
1)
return noise_perlin

View File

@@ -2127,6 +2127,12 @@ def add_training_arguments(parser: argparse.ArgumentParser, support_dreambooth:
default=None,
help="enable multires noise with this number of iterations (if enabled, around 6-10 is recommended) / Multires noiseを有効にしてこのイテレーション数を設定する有効にする場合は6-10程度を推奨",
)
parser.add_argument(
"--perlin_noise",
type=int,
default=None,
help="enable perlin noise and set the octaves",
)
parser.add_argument(
"--multires_noise_discount",
type=float,