← All ideas
  • Published 26 Apr 2019

File Output Node - Flexible names for path and file name

It would be great if there were some expressions (placeholders) that would make the paths and file names a bit more flexible. I often render scenes multiple times and would like to keep the previous renderings. So some timestamp or maybe random number that could alter the output path or the file name could help with that. It could be something in the line of RegEx expressions.

For example %t could add a timestamp to the path (filename). %r could be a random number. While browsing through the internet I found a thread where somebody wanted the camera name included in the file name - so %c could be a place holder for that.

I wonder, if anybody else would appreciate an addition of something like that.

100%

Development Status: Open

Upvote 44 Downvote 0
Andreas_R
26 Apr 2019

17 Comments

bintangsenjapratama

Agree 100%. The ability to choose scene name, camera, and even view layer for placeholder of the output file would be great

3
hadriscus

I don't understand why this isn't a thing yet.

1
gregoiredurrens

I vote for this one. It would be useful to have a way to save different still render images without numbers when using the file output node in compositer

1
-Ben-Battler-

Yes, this definitely would also be helpful to render multiple camera angles using the same composition tree!

1
Lauloque

Heck yes!
By the way, there's already some form of placeholder in output names :

When rendering an animation, the frame number is appended at the end of the file name with four padded zeros (e.g. image0001.png ). You can set a custom padding size by adding the appropriate number of # anywhere in the file name (e.g. image_##_test.png translates to image_01_test.png ).

It just needs to be pushed further.

1
Andreas_R Author

* @-L0Lock- * I'm not sure if these will even work with the File Output Node. But I was thinking about more flexible ones anyway.

simon.p.heggie

* @Andreas * Regardless, I can confirm this works for file output nodes.

Really need an extension of this file naming functions with multiple place holders like base filename, scene name, view layer name, camera name etc.

If you have lot of scenes and stacks of viewlayers you need to recognize the output via their filenames, and need more meaningful descriptions other than frame numbers. It's double work if you change any of scene you need to update the output node as well.

stulz

Wildcards like "Cameraname" or some general "Basename" Entry would be great. The current setup is very unusual.

simon.p.heggie

You can't even render without digits. It fricking impossible. I can't even find a script to do it. Something so simple and mundane to fix manually... Some weird stuff goes unnoticed. So many times rendering a still with unwanted digits I have to remove myself.

Lauloque

* @simon.p.heggie * Actually you can. It's well hidden sadly:
You just have to write the file extension in the file name output. In which case, it will strictly follow your file name when rendering a single frame.

Also, if you do want to write digits but in a custom way, you can use # symbols in the file name, where # is replaced by the frame number, and the amount of # used serves as a zero padding.

CF my previous answer

simon.p.heggie

* @-L0Lock- * This is a common misconception. Have you tried this solution yourself? This only applies to videos, which removes the 0-99 part of the video title and you need to have to un-tick 'File Extensions'. The effect of this with a png sequence is that's just going to have 'file.png0000'. This is EVEN if you hit 'F12' INSTEAD of CTRL-F12. I'm surprised how many people make this claim when someone brings up the issue.

Lauloque

* @simon.p.heggie * I think the only misconception here is how the file output works in Blender. So, indeed this method doesn't work for cases where it doesn't make sense to apply it in the first place:

  • Blender's only way to differentiate output file names it frame numbers, so rendering an image sequence without them would result in overriding each rendered frame by the newly rendered frame until you end with a single picture file. Not ideal if you ask me.
  • Blender doesn't save single frame renders at all , so it doesn't matter what you set in the file output: it doesn't create any file anyway. You need some addons for that.
  • Rendering a video outputs is always done through animation rendering and requires only one file as output, meaning Blender will actually create a file and only one, so it doesn't need any naming differentiation.

I'm surprised you seem to have studied the case but yet seem to expect a different result given how Blender works.

simon.p.heggie

* @-L0Lock- * Thanks for replying.

"Blender's only way to differentiate output file names it frame numbers, so rendering an image sequence without them would result in overriding each rendered frame by the newly rendered frame until you end with a single picture file. Not ideal if you ask me."

But this wouldn't be an issue if blender detected that only one frame was being rendered, AND the user ticks an option on a file output signifying their intent. There's python for finding out how many files where rendered, and logic is simply if frame count is higher than 1. For optional sequential behavior, the user could fill out a matrix of values equivalent to each frame. Example: 00=A, 01=B, 02=C in the case of creating sprite fonts for games. Or in the case of generating skyboxes, frame 00=forward, 02=left, 03=back etc. There are a ton of use cases where this would be helpful for automation of naming structures.

Such behavior would be very useful for doing layout comps and batch rendering stills via a sequence of renders on the timeline.

There's a way to have a script activated upon rendering, and I've used it before to detect a new animated sequence and convert it to WebM using FFMPEG. However I haven't yet figured out how to rename files via that method. I imagine that given some more python knowledge I could get something basic working, but I'm not there yet.

"Blender doesn't save single frame renders at all, so it doesn't matter what you set in the file output: it doesn't create any file anyway. You need some addons for that."

I get you, and point taken, it's not really hard with existing functionality to isolate a single frame for animation render, replicating that function. For single frame renders, this would be a one action job. So I guess it wouldn't be a massive difference in time spent. Compared to manually renaming files every render.

I

Lauloque

* @simon.p.heggie *

But this wouldn't be an issue if blender detected that only one frame was being rendered

To me it would make more sense to not run a sequence rendering in order to make a still rendering.

Other softwares do that just fine, you can ask for either a still or a sequence, and no matter what you chose, it gets rendered and saved as you asked without any back-sass.

Nowadays, the only reason I can see why one would run a sequence rendering for one frame is because Blender doesn't work the same way between still & sequence rendering, particularly it doesn't save stills automatically, and it doesn't store color management in sequence rendering unless you use the file output node in the compositor which also behave differently than anything else in Blender.

But in the current state of Blender, that would require a lot of changes to make everything neat, including just allowing to save still renders in the first place without the need of external addons and having more file name variables to use than frame numbers.

But I digress, all these points have been suggested and discussed in the past. And still no changes have been made yet.

sebastian

Timestamp or no overwrite with counting would be very helpful

Lauloque

* @Sebastian Wolf * Can you develop?