code: def lift_direct_transform(
      transform: Callable[..., Any],
      targets: Tuple[Callable[..., Any], ...],
      mdl: Module,
      *args,
      multi_scope=True,
      **kwargs,
  ):
      """Lift direct transform."""
      # TODO(marcvanzee): Improve docstrings (#1977).
      for target in targets:
          if _is_module_class(target):
              raise ValueError(
                  f"The {transform.__name__} transform can only be applied on a Module"
                  " method. That is function that takes a Module instance as its first"
                  " arg."
              )
          elif not callable(target):
              raise ValueError("transform target must be callable")
      # normalize self.foo bound methods to class.foo unbound methods.
      targets = tuple(_get_unbound_fn(target) for target in targets)
      aug_transform = lambda *fns: functools.partial(transform, *fns)
      return decorator_lift_transform(
          aug_transform, targets, multi_scope=multi_scope
      )(mdl, *args, **kwargs)
  
imports: import dataclasses
  import functools
  import inspect
  from typing import Any, Callable, Dict, Iterable, Mapping, Optional, Sequence, Tuple, Type, TypeVar, Union
  from flax import errors, struct, traceback_util
  from flax.core import Scope, lift, meta
  from flax.core.frozen_dict import FrozenDict
  from flax.linen import module
  from flax.linen.module import Module, Variable, _derive_profiling_name, _get_unbound_fn, wrap_method_once
  import jax
label_desc: Use image node_id 10 for calling a global function with example usage: lift_direct_transform(transform, targets, mdl) and returns: decorator_lift_transform