code: def prep_model_and_emb(
      model: Callable, emb: Optional[TransformerEmbedding]
  ) -> Callable:
      """
      Function to perform final preprocessing of model (and/or embedding) before it is passed to preprocess_drift.
  
      Parameters
      ----------
      model
          A compatible model.
      emb
          An optional text embedding model.
  
      Returns
      -------
      The final model ready to passed to preprocess_drift.
      """
      # Process model (and embedding)
      model = (
          model.encoder if isinstance(model, UAE) else model
      )  # This is to avoid nesting UAE's already a UAE
      if emb is not None:
          model = _Encoder(emb, mlp=model)
          model = UAE(encoder_net=model)
      return model
  
imports: import logging
  import os
  from importlib import import_module
  import warnings
  from functools import partial
  from pathlib import Path
  from typing import Callable, Dict, List, Optional, Tuple, Union, Type
  import dill
  import tensorflow
  from tensorflow_probability.python.distributions.distribution import Distribution
  from transformers import AutoTokenizer
  from alibi_detect.ad import AdversarialAE, ModelDistillation
  from alibi_detect.ad.adversarialae import DenseHidden
  from alibi_detect.cd import ChiSquareDrift, ClassifierDrift, KSDrift, MMDDrift, TabularDrift
  from alibi_detect.cd.tensorflow import UAE, HiddenOutput
  from alibi_detect.cd.tensorflow.preprocess import _Encoder
  from alibi_detect.models.tensorflow import PixelCNN, TransformerEmbedding
  from alibi_detect.models.tensorflow.autoencoder import AE, AEGMM, VAE, VAEGMM, DecoderLSTM, EncoderLSTM, Seq2Seq
  from alibi_detect.od import LLR, IForest, Mahalanobis, OutlierAE, OutlierAEGMM, OutlierProphet, OutlierSeq2Seq, OutlierVAE, OutlierVAEGMM, SpectralResidual
  from alibi_detect.od.llr import build_model
  from alibi_detect.utils.tensorflow.kernels import DeepKernel
  from alibi_detect.utils.frameworks import Framework
  from alibi_detect.version import __version__
  from alibi_detect.base import Detector
  from alibi_detect.saving._typing import VALID_DETECTORS
label_desc: Use image node_id 2 for calling a global function with example usage: prep_model_and_emb(model, emb) and returns: model