Farmer Joe Render Farm is Back! and for 2.8 too! UPDATED to 0.2.2!

Hi there, sorry I’ve only just seen this question. Do you still have the problem? I don’t quite understand it and wondered if you could give another explanation?

i solved it already. thx for come back answer me

I there
Great addon.
We have installed and is working with 4 slaves.
We are working with big files for still images between 300mb and 1,3gb files and until now we have not problems with it.
The only thing that it doesn´t work until now is to put all tiled images together in one final image in automatic mode.
If anyone can help to do this i will be very thank.
well done

Hi there, Do you get anything when it puts the image together? The only problem I have found so far is if the ‘Resolution %’ is set to anything other than 100%. FarmerJoe uses up to 32 channels of the VSE to put the various parts of the image together and stores the result either in the JOB directory or the directory you’ve chosen in the Addon Preferences.
Let me know if still a problem, I tried it on some pretty big images.

Hi Larry
Yes we use it with 100% Resolution, we have read this in your notes before instaling.
We are trying to make the same setup on all nodes, we use Filmic in Color Management we thought it could be that but it’s all right.
We do have all partial images right and with the correct textures and all the only think we have not is the final image with all parts stiched, we even have installed Compositor Image from Microsoft and point the exe file on farmerjoe settings file but the final image isn´t done just the partial images rendered by each node.
Another thing we are discovering is how to optimize for a large renderfam, until now we only have 4 I7 with 8 threads each for a total of 48 so perhaps 6x8 setting is the best for this setup? What you think?
Thanks for your answer and help.
regards.

Hello Ricardo, so my first question would be - does it work with a small file (I know you said the file you were working with was very big)? If the answer is no, then I would like to know if the ‘extra avi’ feature works (render a 10 frame animation and have it make an ‘extra avi’). This uses a very similar process - when the Nodes have rendered the images Blender is launched on the Master and the images are glued together in the VSE.
The Composite setting does not work in this version - it is not needed as we now use the VSE (used to use ImageMagik in old version) so you don’t need Microsoft. ( we will be using it in next version of FarmerJoe which will render AVIs across the nodes and glue them together with FFMPEG!!)
Anyway let me know how you get on with these first tests. Also what OSs are you running on your PCs and which version of Blender. Should be no problem with 2.83 but you never know - I haven’t tested it.
As to best number of parts - I would say if you have 4 equal nodes then 2x2 make sense, if your computers are not equal in power then maybe more. You need to offset the time to load the file when blender launches (which in eeVee can be a long time to compile textures) against render time.
Look forward to hearing from you.

Hi again Larry

After some tests we realize the final rendered images are stored in Job Directory by default and we made some mustake to create another extra directory to share for all nodes so the partial images were saved in this directory and today we have found the final results completed.

Regarding to our hardware and Os we have:

  • 6 x Intel I7 2600 Cpu with 16gb ram + Gtx 1060 2gb
  • OS - Windows 10 all updated
  • Blender 2.81
    Master - I7 2600 with 32gb ram + Gtx 1070

We have test so many builds to setup a render farm with blender, example; Crowdrender (impossible with large files), Pandora (failed), Loki Render (this one was the latest with sucess even with large files but not optimized for stils), Flamenco with no sucess.

After the sucess for this with Farmer Joe with 100% sucess even with gpu options on we will upgrade the farm with more 4 new nodes of rayzen 7 for a total of 112 cores and we think will be enough for now.

Always working with same netowrk drive for all nodes, batch files on startup to open farmerjoe, all textures, paths and scenes in same network drive and maped on all nodes in same way and pointed on each blender of each node. Master is working always in same directory in the network drive.

We didn´t try animations until now but we will and come back with news.
Good to ear that will be coming a future version of farmerjoe we can help you testing if you want with all renderfarm nodes.

Still images with 4 hours of render time in master, are rendering with +/- 1 hour in 4 nodes with same configuration. Very good job!!!

Thanks for your help and attenion
Regards

That’s great to hear you got it going and great that the software is getting some proper use.
Let me know if you think anything was unclear in the documentation so other people don’t have the same problem and also let me know if you need anything tweaked in the software. Next release is only about rendering straight to AVI or FFMPEG so may not interest you if you are mainly still image work but might be useful for people who do a lot of compositing or VSE. (Flamenco can do it so why not FarmerJoe!)
All the best, L

Hi again Larry

We have just put a 10 hours animation and see what happens. So far so good so i will be back with more information.
We don’t control yet very well the comand – appserver – webgui
When we do it with master we can’t reach him ny web browser but if we pick another computer and acess to the network drive we start farmerjoe appserver webgui by comand prompt and then have acess by browser.
After this test wirh animation we will give information about some minor tweaks that can change. But what you have done is really great.
Regards
Ricardo

UPDATE 0.2.2 NOTES
Having released it last night… here are a few things I may or may not have mentioned in the readme.

  1. You really need to reinstall all farmerjoe components. The Addon, the Farmerjoe executable or Perl script and the farmerjoe.conf file have all changed and now work differently together. So change the lot.
  2. The JoesCameraWiz.py is the Joe’s Camera Wizard addon, install it separately. Details in its own readme.
  3. You have to download the FFMPEG executable for the AVI making to work. There are links in the readme. What Farmer Joe does is use FFMPEG in CONCAT mode which basically means it glues the chucks of AVI files together. This works fine for AVI-JPG and AVI-RAW as they are basically a load of stills glued together, but an FFMPEG file will be more complicated. For a start audio will have a click where the joins are, so only good for tests and testing lipsync. As for the video, I was suprised it worked. Using FFMPEG on its default mp4 settings worked even if the chunk size was different to the GOP (Group of Pictures). My advice here would be to test well before you use it seriously.
    This process is run on the Controller PC (Previously called Master) so if the controller is being run on a different PC from the Farmer Joe share, all the files will need to be copied over the network to the controller, glued together, and copied back again. So the webserver may say the process has finished when it hasn’t. Look for purple text in the controller command prompt, FFMPEG writes in purple.
  4. Chunks now go up to 100.
  5. Becareful with Joe’s Camera Wizard, there is no undo ( hence the CAUTION message). Even though I wrote the thing I get confused with whether I’m copying to or from… Take a moment to reflect before pressing the button.
  6. Joe’s Camera wizard’s Camera name incrementing is a bit weird but born out of my own experience. I have been doing a project where I have had to deal with my clients scene numbers, how they translate to my own scenes in the blend file, the actual camera number (because there are many) and so I gave it a version number as well. So the camera name looks like this. ‘10_12_3_1’ where the last digit is the version. The addon looks to see if the last digit is a number and if it is lets you increment it each time you render. So don’t use it with ‘Cam1’.

Finally I’ve tried to make sure everything works but if you find a problem let me know here.

Enjoy

Hello, I am trying to use this tool with blender 3.0 and I get the following error in the controller when it tries to assemble the rendered parts:

<------ Composite image has starting rendering ------>
C:\Users\pc\Documents\Share\Joe\jobs\characterblend.blend.2021-12-23_17-10-14\render_parts
part_04_0001.png  translation x= 0.0  y= 0.0   0 by 0
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\pc\Documents\Share\Joe\bin\fj_imagecomp.py", line 94, in <module>
    bpy.context.scene.sequence_editor.sequences_all[fn].use_translation = True
AttributeError: 'ImageSequence' object has no attribute 'use_translation'

Thanks for reporting this. I tried the frames render with 3.0 but not the parts and it looks like we have a problem. Looked in the 3.0 Python api changes and theres not mention of this attribute having changed so will try and investigate in the coming week.
Best regards

I was able to solve it with the following:


seq=[]
count = 0
x=0
y=0
xW = xres/xpart
xY = yres/ypart


files = []
for file_name in src_files: 
    if file_name.endswith('png') or file_name.endswith('bmp') or file_name.endswith('jpg') or file_name.endswith('tga') or file_name.endswith('rgb') or file_name.endswith('jp2') or file_name.endswith('cin') or file_name.endswith('dpx') or file_name.endswith('exr') or file_name.endswith('hdr') or file_name.endswith('tif'):
        if os.path.isfile(os.path.join(inpath,file_name)):
            files.append(file_name)
        
files.sort()
fc = len(files)
for fn in files:
    tx = (xW * x)-xW/2
    ty = (xY * y)-xY/2
    print(file_name,' translation x=',tx,' y=',ty, ' ',x,'by',y, 'xpart', xpart, 'xres', xres, 'ypart', ypart, 'yres', yres)
    seq.append(Se.sequences.new_image( fn, os.path.join(inpath,fn),count+1, 1))
    #bpy.context.scene.sequence_editor.sequences_all[fn].transform.use_translation = True
    bpy.context.scene.sequence_editor.sequences_all[fn].use_float = True
    bpy.context.scene.sequence_editor.sequences_all[fn].transform.offset_x = tx
    bpy.context.scene.sequence_editor.sequences_all[fn].transform.offset_y = ty
    bpy.context.scene.sequence_editor.sequences_all[fn].blend_type = "ALPHA_OVER"
    #print(count, 'part ',fn, " ",tx," ",ty)
    count = count+1
    if y == (ypart-1):
        y=0
        x=x+1
    else:
        y=y+1

Thanks for a great tool, testing out the sequence now!

Many thanks for this. Looks like my original was a little over simplistic and a problem waiting to happen. Will do a minor release with this as soon as I have time.