code: def get_palette_based_on_default_tags() -> LabelsColorMapType:
      default_tags = [
          *OperationTypesRepository.DEFAULT_MODEL_TAGS,
          *OperationTypesRepository.DEFAULT_DATA_OPERATION_TAGS,
      ]
      p_1 = sns.color_palette("tab20")
      colour_period = 2  # diverge similar nearby colors
      p_1 = [
          p_1[
              i // (len(p_1) // colour_period)
              + i * colour_period % len(p_1)
          ]
          for i in range(len(p_1))
      ]
      p_2 = sns.color_palette("Set3")
      palette = np.vstack([p_1, p_2])
      palette_map = {
          tag: palette[i] for i, tag in enumerate(default_tags)
      }
      palette_map.update({None: "mediumaquamarine"})
      return palette_map
  
file_path: FEDOT/fedot/core/visualisation/pipeline_specific_visuals.py
imports: from __future__ import annotations
  from typing import Any, Dict, Iterable, Optional
  import numpy
  import seaborn
  from golem.core.dag.graph import Graph
  from golem.core.optimisers.opt_history_objects.opt_history import OptHistory
  from golem.visualisation.graph_viz import GraphVisualizer
  from golem.visualisation.opt_history.utils import LabelsColorMapType
  from golem.visualisation.opt_viz import OptHistoryVisualizer
  from fedot.core.repository.operation_types_repository import OperationTypesRepository, get_visualization_tags_map
label_desc: Use image node_id 1 for calling a global function with example usage: get_palette_based_on_default_tags() and returns: palette_map