Convert standard material to shader material from script

I have a predefined shader material resource stored on disk. in EditorScenePostImport script I just get each material assigned to a mesh, assign a duplicate of the shader material instead, and copy the values of relevant properties one by one.

@tool
extends EditorScenePostImport

func _post_import(scene):
	# get all mesh instances
	var mesh_instances = scene.find_children("*", "MeshInstance3D", true)
	
	# get all meshes
	var meshes = {}
	for mi in mesh_instances:
		if not mi.mesh:
			continue
		meshes[mi.mesh] = true
		
	# get all materials
	var materials = {}
	for m: Mesh in meshes:
		for i in m.get_surface_count():
			var mat: StandardMaterial3D= m.surface_get_material(i)
			if not mat:
				continue
			var mat_new: ShaderMaterial = make_shader_material(mat)
			m.surface_set_material(i, mat_new)
			materials[mat] = true
			
	return scene


func make_shader_material(orig: StandardMaterial3D) -> ShaderMaterial:
	var m: ShaderMaterial = preload("res://override.material").duplicate(true)
	m.set_shader_parameter("albedo", orig.albedo_color)
	# etc...
	
	return m