The following sets the [face texture][1] of face `0` for the active object: import bpy obj = bpy.context.object img = bpy.data.images.load("//example.png") obj.data.uv_textures.active.data[0].image = img # To make renderable: mat = bpy.data.materials.new("Example") mat.use_face_texture = True obj.data.materials.append(mat) For cycles see: [Different image textures for one material (Cycles)][2]. [1]: http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV/Applying_Image#Face_Textures [2]: http://blender.stackexchange.com/q/2100/290