How to render different textures on each side of a cube?

Hello,
I was trying to render different textures on the different sides of a cube.

I tried with vtkCubeSource but it updates the texture for the full cube.

This is the approach that worked for rendering single texture on all 6 sides.

import vtk

# Load the image
image_reader = vtk.vtkJPEGReader()  # Replace with appropriate reader based on image format
image_reader.SetFileName("images.jpg")  # Replace with your image path
image_reader.Update()

# Create a cube using vtkCubeSource
cubeSource = vtk.vtkCubeSource()
cubeSource.SetCenter(0, 0, 0)
cubeSource.SetXLength(1)
cubeSource.SetYLength(1)
cubeSource.SetZLength(1)
cubeSource.Update()

# Create a texture object
texture = vtk.vtkTexture()
texture.SetInputData(image_reader.GetOutput())

# Create a mapper for the cube
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(cubeSource.GetOutputPort())
mapper.SetColorModeToDirectScalars()
mapper.SetScalarModeToUsePointData()

# Create an actor for the cube
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.SetTexture(texture)

# Create a renderer and render window
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)
renderer.SetBackground(0.1, 0.2, 0.4)

renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindow.SetSize(640, 480)

# Create an interactor
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(renderWindow)

# Initialize and start the visualization
renderWindow.Render()
interactor.Start()

Is there a vtk function to do this? Or should I merge 6 different planes?
Also, I found no examples of UV-Mapping a cube in VTK. Can I get some help with the general direction?