I try to split render process (by python script) to several tiles and after finishing render process, join sub-results into one image. I set use_borders to True and I set min_x, min_y, max_x, max_y:

bpy.context.scene.render.use_border = True
bpy.context.scene.render.use_crop_to_border = True
bpy.context.scene.image_settings.file_format = 'PNG'
bpy.context.scene.image_settings.color_mode ='RGBA'

bpy.context.scene.border_min_x = computed_min_x_for_tile
bpy.context.scene.border_min_y = computed_min_y_for_tile
bpy.context.scene.border_max_x = computed_max_x_for_tile
bpy.context.scene.border_max_y = computed_max_y_for_tile

But ... I get slightly different image than I expected. I rendered the same scene in Blender GUI and via python script (splitting into tiles). Outputs are different. You can see tiles borders - in image generated by python script.

I tried to set another properties (before render process), for example:

bpy.context.scene.render.use_compositing = True
bpy.context.scene.render.use_save_buffers = True
bpy.context.scene.render.use_full_sample = True
bpy.context.scene.render.use_render_cache = True
bpy.context.scene.render.dither_intensity = 1.5

No one helped.

Do you have any idea how to reach the same outputs ? What property should I set or what sequence of steps should I do ?

Image rendered in Blender GUI: Image rendered in Blender GUI

Image rendered by python script (split, render, join): Image rendered by python script (split, render, join)

  • $\begingroup$ Do you use a denoiser? 🤔 $\endgroup$ Mar 31, 2021 at 9:33
  • 1
    $\begingroup$ Markus von Broady, as you can see, it was demo file - classroom. It uses many nodes in compositor - there are several Blur nodes. I implement steps I described below and they work. I have correct output now. $\endgroup$ Apr 1, 2021 at 14:27

1 Answer 1


It is caused (probably) by compositor. If I render part of image, compositor change only this one piece (tile) - without affecting another tiles. After joining them, seams can be seen.

To reduce seams I will render scene by scene (without using compositor - I will set bpy.context.scene.render.use_compositing = False), tile by tile (saved to erx-multilayer format) and then join outputs. Then I will change inputs in compositor (render layers will be replaced by images). I hope it will work.

  • $\begingroup$ Do you happen to have the python script for this working solution? $\endgroup$
    – Z T
    Oct 18, 2021 at 1:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .