Skip to main content
deleted 28 characters in body
Source Link
scurest
  • 10.5k
  • 13
  • 31

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        name = name[:-6]

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        name = name[:-6]

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.

added 28 characters in body
Source Link
scurest
  • 10.5k
  • 13
  • 31

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        name = name[:-6]

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        name = name[:-6]

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.

Source Link
scurest
  • 10.5k
  • 13
  • 31

Try this. Save beforehand in case something goes wrong.

import bpy

for ob in bpy.data.objects:
    for slot in ob.material_slots:
        try:
            name = slot.material.node_tree.nodes['Image Texture'].image.name
        except Exception:
            continue

        if name not in bpy.data.materials:
            slot.material.name = name
        else:
            slot.material = bpy.data.materials[name]

Afterwards, you can use File > Clean Up > Unused Data Blocks to remove the extra unused materials.