diff --git a/disco.py b/disco.py index 1e3111e4..8e917f0f 100644 --- a/disco.py +++ b/disco.py @@ -1331,8 +1331,9 @@ def do_run(): del init2 cur_t = None - + t_int = 0 def cond_fn(x, t, y=None): + global t_int with torch.enable_grad(): x_is_NaN = False x = x.detach().requires_grad_() @@ -1392,7 +1393,7 @@ def cond_fn(x, t, y=None): grad = torch.zeros_like(x) if args.clamp_grad and x_is_NaN == False: magnitude = grad.square().mean().sqrt() - return grad * magnitude.clamp(max=args.clamp_max) / magnitude #min=-0.02, min=-clamp_max, + return grad * magnitude.clamp(max=args.clamp_max[1000-t_int] if type(args.clamp_max) is np.ndarray else args.clamp_max ) / magnitude #min=-0.02, min=-clamp_max, return grad if args.diffusion_sampling_mode == 'ddim': @@ -1429,7 +1430,7 @@ def cond_fn(x, t, y=None): skip_timesteps=skip_steps, init_image=init, randomize_class=randomize_class, - eta=eta, + eta=args.eta[1000-t_int] if type(args.eta) is np.ndarray else args.eta, transformation_fn=symmetry_transformation_fn, transformation_percent=args.transformation_percent ) @@ -2772,9 +2773,9 @@ def warp(frame1, frame2, flo_path, blend=0.5, weights_path=None): perlin_init = False #@param{type: 'boolean'} perlin_mode = 'mixed' #@param ['mixed', 'color', 'gray'] set_seed = 'random_seed' #@param{type: 'string'} -eta = 0.8 #@param{type: 'number'} +eta = [0.9, 0.1] #@param clamp_grad = True #@param{type: 'boolean'} -clamp_max = 0.05 #@param{type: 'number'} +clamp_max = [0.1, 0.04] #@param ### EXTRA ADVANCED SETTINGS: @@ -3017,9 +3018,9 @@ def move_files(start_num, end_num, old_folder, new_folder): 'perlin_init': perlin_init, 'perlin_mode': perlin_mode, 'set_seed': set_seed, - 'eta': eta, + 'eta': np.linspace(eta[0], eta[1], cutn_batches) if type(eta) is list else eta, 'clamp_grad': clamp_grad, - 'clamp_max': clamp_max, + 'clamp_max': np.linspace(clamp_max[0], clamp_max[1], 1000) if type(clamp_max) is list else clamp_max, 'skip_augs': skip_augs, 'randomize_class': randomize_class, 'clip_denoised': clip_denoised,