The gltfLoader output the models already mapped (one material per mesh, try to avoid Blender multi-material multi-textures madness) You can switch them with custom ones when loading is finished. Here is some universal function, it sort the content, should work for most files.
gltfLoader.load( gltfURL, function (gltf) {
const content = gltf.scene;
//get all children inside gltf file
content.traverse( function ( child ) {
//get the meshes
if ( child.isMesh ) {
// only replace texture if a texture map exist
if (child.material.map){
//replace the map with another THREE texture
child.material.map = myTexture;
//update
child.material.map.needsUpdate = true;
}
}
}
}
Then you may add more filters to check names of the meshes/textures
to pinpoint wich textures belong to what models.