code: def get_train_preproc_spec(
      *,
      input_size: int,
      num_instances: int,
      max_queries: int,
      max_query_length: int = 16,
      min_area_fraction: float = 0.0,
      iou_threshold: float = 0.9,
  ):
      """Constructs training preprocess string."""
      ops = (
          f"keep({DETECTION_FEATURES})"
          f"|random_flip_left_right"
          f"|random_crop(min_area_fraction={min_area_fraction})"
          f"|resize_with_pad(size={input_size})"
          f"|add_random_negative_labels(total_num_negatives=50)"
          f"|canonicalize_text_labels"
          f"|remove_forbidden_labels"
          f"|crop_or_pad({input_size}, {num_instances})"
          f"|crop_or_pad_meta_data({num_instances}, {num_instances})"
          f"|add_random_prompts"
          f"|remove_promptability_marker"
          f"|single_to_multi_label(max_num_labels={num_instances})"
          f"|merge_overlapping_instances(iou_threshold={iou_threshold})"
          f"|add_query_set(lower=True, max_queries={max_queries},"
          f" include_negatives=True)"
          f"|clip_tokenize_queries(max_token_len={max_query_length})"
      )
      return ops
  
label_desc: Use image node_id 1 for calling a global function with example usage: get_train_preproc_spec() and returns: ops