code: def get_named_beta_schedule(schedule_name, num_diffusion_timesteps):
      """
      Get a pre-defined beta schedule for the given name.
  
      The beta schedule library consists of beta schedules which remain similar
      in the limit of num_diffusion_timesteps.
      Beta schedules may be added, but should not be removed or changed once
      they are committed to maintain backwards compatibility.
      """
      if schedule_name == "linear":
          # Linear schedule from Ho et al, extended to work for any number of
          # diffusion steps.
          scale = 1000 / num_diffusion_timesteps
          return get_beta_schedule(
              "linear",
              beta_start=scale * 0.0001,
              beta_end=scale * 0.02,
              num_diffusion_timesteps=num_diffusion_timesteps,
          )
      elif schedule_name == "squaredcos_cap_v2":
          return betas_for_alpha_bar(
              num_diffusion_timesteps,
              lambda t: math.cos((t + 0.008) / 1.008 * math.pi / 2)
              ** 2,
          )
      else:
          raise NotImplementedError(
              f"unknown beta schedule: {schedule_name}"
          )
  
imports: import math
  import numpy
  import torch
label_desc: Use image node_id 3 for calling a global function with example usage: get_named_beta_schedule(schedule_name, num_diffusion_timesteps) and returns: get_beta_schedule, betas_for_alpha_bar