diff --git a/Disco_Diffusion.ipynb b/Disco_Diffusion.ipynb index c6f1f55..739acab 100644 --- a/Disco_Diffusion.ipynb +++ b/Disco_Diffusion.ipynb @@ -617,7 +617,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "cellView": "form", "id": "FpZczxnOnPIU" }, "outputs": [], @@ -1181,11 +1180,11 @@ " return grad * magnitude.clamp(max=args.clamp_max) / magnitude #min=-0.02, min=-clamp_max, \n", " return grad\n", " \n", - " if model_config['timestep_respacing'].startswith('ddim'):\n", + " if args.sampling_mode == 'ddim':\n", " sample_fn = diffusion.ddim_sample_loop_progressive\n", " else:\n", - " sample_fn = diffusion.p_sample_loop_progressive\n", - " \n", + " sample_fn = diffusion.plms_sample_loop_progressive\n", + "\n", "\n", " image_display = Output()\n", " for i in range(args.n_batches):\n", @@ -1204,7 +1203,7 @@ " if perlin_init:\n", " init = regen_perlin()\n", "\n", - " if model_config['timestep_respacing'].startswith('ddim'):\n", + " if args.sampling_mode == 'ddim':\n", " samples = sample_fn(\n", " model,\n", " (batch_size, 3, args.side_y, args.side_x),\n", @@ -1228,6 +1227,7 @@ " skip_timesteps=skip_steps,\n", " init_image=init,\n", " randomize_class=randomize_class,\n", + " order=2,\n", " )\n", " \n", " \n", @@ -1335,6 +1335,7 @@ " 'use_secondary_model': use_secondary_model,\n", " 'steps': steps,\n", " 'diffusion_steps': diffusion_steps,\n", + " 'sampling_mode': sampling_mode,\n", " 'ViTB32': ViTB32,\n", " 'ViTB16': ViTB16,\n", " 'ViTL14': ViTL14,\n", @@ -2101,8 +2102,9 @@ "#@markdown ####**Models Settings:**\n", "diffusion_model = \"512x512_diffusion_uncond_finetune_008100\" #@param [\"256x256_diffusion_uncond\", \"512x512_diffusion_uncond_finetune_008100\"]\n", "use_secondary_model = True #@param {type: 'boolean'}\n", + "sampling_mode = 'plms' #@param ['plms','ddim'] \n", "\n", - "timestep_respacing = '50' # param ['25','50','100','150','250','500','1000','ddim25','ddim50', 'ddim75', 'ddim100','ddim150','ddim250','ddim500','ddim1000'] \n", + "timestep_respacing = '150' # param ['25','50','100','150','250','500','1000','ddim25','ddim50', 'ddim75', 'ddim100','ddim150','ddim250','ddim500','ddim1000'] \n", "diffusion_steps = 1000 # param {type: 'number'}\n", "use_checkpoint = True #@param {type: 'boolean'}\n", "ViTB32 = True #@param{type:\"boolean\"}\n", @@ -2300,7 +2302,7 @@ "source": [ "#@markdown ####**Basic Settings:**\n", "batch_name = 'TimeToDisco' #@param{type: 'string'}\n", - "steps = 250 #@param [25,50,100,150,250,500,1000]{type: 'raw', allow-input: true}\n", + "steps = 150 #@param [25,50,100,150,250,500,1000]{type: 'raw', allow-input: true}\n", "width_height = [1280, 768]#@param{type: 'raw'}\n", "clip_guidance_scale = 5000 #@param{type: 'number'}\n", "tv_scale = 0#@param{type: 'number'}\n", @@ -2804,6 +2806,14 @@ "display_rate = 50 #@param{type: 'number'}\n", "n_batches = 50 #@param{type: 'number'}\n", "\n", + "#Update Model Settings\n", + "timestep_respacing = f'ddim{steps}'\n", + "diffusion_steps = (1000//steps)*steps if steps < 1000 else steps\n", + "model_config.update({\n", + " 'timestep_respacing': timestep_respacing,\n", + " 'diffusion_steps': diffusion_steps,\n", + "})\n", + "\n", "batch_size = 1 \n", "\n", "def move_files(start_num, end_num, old_folder, new_folder):\n", @@ -2873,6 +2883,7 @@ " 'batch_size':batch_size,\n", " 'batch_name': batch_name,\n", " 'steps': steps,\n", + " 'sampling_mode': sampling_mode,\n", " 'width_height': width_height,\n", " 'clip_guidance_scale': clip_guidance_scale,\n", " 'tv_scale': tv_scale,\n",