code: def tile(tileable, *tileables: TileableType):
      from ..graph import (
          TileableGraph,
          TileableGraphBuilder,
          ChunkGraphBuilder,
          TileContext,
      )
  
      raw_tileables = target_tileables = [tileable] + list(tileables)
      target_tileables = [
          t.data if hasattr(t, "data") else t for t in target_tileables
      ]
  
      tileable_graph = TileableGraph(target_tileables)
      tileable_graph_builder = TileableGraphBuilder(tileable_graph)
      next(tileable_graph_builder.build())
  
      # tile
      tile_context = TileContext()
      chunk_graph_builder = ChunkGraphBuilder(
          tileable_graph, fuse_enabled=False, tile_context=tile_context
      )
      next(chunk_graph_builder.build())
  
      if len(tileables) == 0:
          return type(tileable)(tile_context[target_tileables[0]])
      else:
          return [
              type(raw_t)(tile_context[t])
              for raw_t, t in zip(raw_tileables, target_tileables)
          ]
  
imports: from typing import List, Union, Generator
  from ...typing import TileableType, ChunkType
  from ...utils import has_unknown_shape, calc_nsplits
label_desc: Use image node_id 2 for calling a global function with example usage: tile(tileable) and returns: type, unknown