Photographer - Camera Exposure, White Balance, Autofocus, Physical Lights, Bokeh, Render Queue

Love the add-on chafoulin, but i got a small feature request; would it be possible to support “File Output” from the compositor in the RenderQ. Currently it will save out from File Output, but it will not update the filename like the default composit output, and I am left with only the last set of images from the file output node as they get overwritten as the queue is running.

I think I understand the issue, but if you have a simple scene with a compositing setup to reproduce the issue, that would help me fixing it quicker.
I have an update planned for tomorrow, I can try to squeeze that in.

So the issue is the regular Output path (marked green) works fine in the compositor it seems, it gives me Camera.exr and Camera02.exr, but Noise0001.png and RGBA001.png from the first camera will get overwriten by the second camera so to speak. The issue realy is that the Base Path(marked blue) of the File Output node does not get changed. Idealy it would be something like CameraNoise.png and CameraRGBA.png, Camera02RGB… and so on, but anything that makes it not overwrite is greate.

Was gonna try to do a quick hack, but if it could make it in the next update it would be amazing. Let me know if this is not clear and you want more details, sorry for messy screenshot :crazy_face:.

1 Like

I think some of the code needs to go here, half pseudo code, half incomplet, fully untested.

Should probably not check for “File Output” directly like this and the file extention needs changing and sutch, mostly just copied the other path "calculation, but i think it gets the point accross. And needs some more bells and whisltes to be a complete implementation ofcource, sorry if this is more confusing then helpfull :crazy_face: my Python skills need a thurough upgrade :slight_smile:

It’s a bit more complex, updating the Base Path will create a new folder for each increment. I think you want to increment the input name instead?

ahh, yeah, that sounds correct, was just a verry rought pseudo code. I guess it would actualy be, like you say, the “file subpath”/input that would need to be changed to get “camera name” + “subpath” + “file extention”, so for instance CameraRGBA.png, CameraNoise.png, Camera02RBGA.png and so on in my setup.

ohh, and you wrote increment, I mean just add the camera name in front, only increment if that option is on or whatever, the 02 in Camera02 is just the bad name i chose, could just as well been secondCamera insted, and the 0001 in bothe png files in the file explorer was just added by blender, just disregard them,I think i was playing around with something else, dont need them. Just in case that was confusing.

1 Like

Okay, I think the best is to create a new folder for each Camera, to save the file outputs in there.
And then have an optional incremental save for File Outputs that would bump the Input File subpath when re-rendering. What do you think? Do you prefer to have everything render in the same folder?

I set up a new example with some new names and left everything at default settings, so incremental is on this time just to see. I marked the files I actualy get in the red box, I only get one of each of the once I called noise and RGBA from the File Output Node, so basicaly the first once get overwritten by the second time throught the compositor because they don’t get the camera name prefix. The files in the blue box is what I would like to get from this setup, or something similar, so i can tell what camera they come from. The files underlined in green are the once comming from the composite node and follow the correct “pattern”. If it is easier to implement an option to keep them in seperate folders that would work too, as long as the extra file outputs follow the same “pattern” and settings as the regular output if you know what I mean.

Edit: I mean if they just keep the same iteration number they wouldnt need the camera prefix strictly speaking if they were in separate named folders, but I was thinking doing it either way would be just about the same amount of work, a subfolder option would probably be nice anyway if anyone would like it, but either way is fine by me

Honestly the biggest problem is the File subpath name. If you want to name your input “Noise”, and the render queue rename it “SecondCamera_Noise_001”, I need to store somewhere that “Noise” is the actual name you wanted to use in the first place. And revert to it when the render is done or cancelled, to avoid any potential renaming on top of renaming.
Adding the Camera folder at the end of the Base Path is trivial and done already, the other one is trickier :slight_smile:

ahh, ok, sure, that sounds fine. So like a folder named with the cameraname and optional iteration then all (3 in my cases) images for each camera/queue item inside each ? that sounds good enough for me :slight_smile:

Version 4.2.0 is now available:

  • Added HDRI subfolder support (1 level only) @vfxninjaeditor
  • Added World HDRI Tint, Temperature, Color Multiplier and Blur @phoe-nix-art
  • Improved Render Queue path management.
    Can save files in a separate folder per camera.
    Now supports File Output nodes in Compositing and File name prefix. @Elk
  • Added Camera type and Orthographic support in Photographer panel @jcfnav
  • Fixed World Solo that didn’t disable emissive materials
  • Fixed Color value copy when adding Emissive Controls in Emissive Mixer
19 Likes

Awesome update, thanks @chafouin !

Sweeet, thanks chafouin :+1:

Incroyable!!

Trying to render the camera queue in the Cycles-X build (3.0 alpha) is throwing this error:

Python: Traceback (most recent call last):
  File "/Users/seanr/Library/Application Support/Blender/3.0/scripts/addons/photographer/render_queue.py", line 195, in modal
    slot = bpy.data.images['Render Result'].render_slots.active_index
KeyError: 'bpy_prop_collection[key]: key "Render Result" not found'

location: <unknown location>:-1

Button clicked was “Render All Enabled”. I’ll try it in 2.93 later, but of course right now I need the speed of that build. :wink:

I don’t think it’s related to the version 3.0 or Cycles X, you must have renamed the image Blender is
rendering to:

I’ll check if I can find a way to not use the name and retrieve the image id instead.

Never touched it. It was a scene I’ve been working on for the last few weeks but hadn’t rendered anything since the last time I opened it, so there wasn’t a render result available at the time. I rendered some shots overnight (last one wrapping up now, so I wonder if it might work when this is done? Either way, I would think it needs to work from a fresh start with no previous render available?

Yes Blender creates the Render Result when starting a render. It does work for me, I tested Cycles X. Can you send your scene with the issue? Remove all content, I just want to see the scene settings.

It worked after I rendered an image manually. The problem is your addon doesn’t seem to account for a blend with no stored render. It’s possible these settings are part of the issue?

Screen Shot 2021-05-01 at 1.50.04 PM

Since those are off, the data doesn’t persist between loads.

I can confirm that after it having once worked, closing the scene and reopening, it again does not work. So the addon apparently requires there be a stored render in the file, which is not ideal.