Page 1 of 1

SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 14, 2019 2:27 pm
by Philipp Walz
Hello there,

I love working in Fusion for VFX and Compositing. But sometimes I feel I don't use all the capabilities to work as fast as it gets. I want to collect some tips here to work very speedy in Fusion to deliver on time ;-)
Please feel free to collaborate!!!

I am searching for quick working tips for rotoscoping, masking and tracking 4K footage.
And I want to know if there are any hidden knobs for faster rendering.

Now it's your part!

Thank you

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 14, 2019 7:49 pm
by Kel Philm
Are you talking about rendering to file or the UI (or both)?

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 14, 2019 7:50 pm
by Philipp Walz
Kel Philm wrote:Are you talking about rendering to file or the UI (or both)?


Both. Let‘s say EVERYTHING

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 14, 2019 9:18 pm
by Sander de Regt
I am searching for quick working tips for rotoscoping, masking and tracking 4K footage.
And I want to know if there are any hidden knobs for faster rendering.

Now it's your part!

Well, how much are you willing to spend on acquiring this knowledge?
There are lots of veteran users that can help you get up to speed. If you have very specific questions there are always people willing to help out, either on this forum or the we suck less forum at www.steakunderwater.com, but since you ask a very general question ie 'how do I make things go faster' it's very difficult to actually help you.

We don't know your current skill level, experience with compositing programs in general etc. so what kind of tips would you expect? 'just about everything' isn't a helpful answer. In that case I'd refer you to the manual first. But if you want to have specific things you want to learn quickly, you might want to consider just hiring someone for a couple of hours to get you up to speed. It might turn out to be a very useful investment.

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 14, 2019 10:35 pm
by Philipp Walz
Hi, just want to be clear and precise about what I want to know here.
My skill level is pretty good, I use Fusion for a living on a daily basis in Commercials.
My machine: Mac Pro (Tube) 6 Core, Dual D700 and 32 GB RAM.

I know that I can tun on PRX to navigate easily through my footage for review and simple timing and masking stuff. This is a tip I just realized yesterday cause my Mac actually died under the load of a 1 minute 4K comp. Now it feels like a new Mac :-D Simple but never realized.

I know that turning Motion Blur to 10 will dramatically slow down the render process but are there other techniques to get a good Motion Blur without cranking everything up?

Speaking of RENDERING: Are there any "concrete" tips from you what to change in the preferences to render a little bit quicker on large comps? OpenCL? I read that's not always the clue. So what to do?

I know there are many websites and talented people out there I just can watch or listen to but I thought it might be helpful for me at least to have a quick starting point here in the forum where anybody can quickly say "FIRST I ALWAYS CACHE MY LOADERS", "BEFORE I RENDER, PURGE THE CACHE!", "NEVER USE SIMULTANEOUS BRANCHING!" or something like that. Maybe.

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Fri Feb 15, 2019 7:29 am
by michael vorberg
And we talk about fusion standalone not fusion in resolve?
Just to make this clwar


There is no general rule to make everything faster for every project.
Some things that help: faster hardware! Fast SSD for the footage, CPU with high clock speed, lots of ram, GPU can accelerate some nodes but is also right now a reason for many errors and crashes.

Working with frames instead of movie containers

Keep track of your DoD, fusion calculates everything inside the DoD.

Prerender finished parts of the comp! Cache to disk is not that reliable but can also help

Keep your flows as simple as possible

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Fri Feb 15, 2019 9:45 am
by Philipp Walz
michael vorberg wrote:And we talk about fusion standalone not fusion in resolve?
Just to make this clwar


YES!

michael vorberg wrote:Working with frames instead of movie containers


Why? Stability?

michael vorberg wrote:Prerender finished parts of the comp! Cache to disk is not that reliable but can also help


How do you prerender? As DPX? As TIFF? Does Fusion/you use this prerenders when rendering the final comp?

Thank you

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Fri Feb 15, 2019 10:38 pm
by Bryan Ray
Philipp Schröppel wrote:
How do you prerender? As DPX? As TIFF? Does Fusion/you use this prerenders when rendering the final comp?



I usually prerender to EXR. It's assumed to be linear, so there's seldom any question about whether it needs a color conversion. It also compresses better than most other possible intermediate formats.

Yes, the prerenders remain in place when rendering the final comp. There's no reason to do all that processing again.

I have a little script that creates a prerender Saver and disables all other Savers. The new Saver has a pair of buttons: One disables the Saver and re-enables all Savers that the script previously turned off, and the other creates a Loader and automatically connects it to everything the Saver was previously connected to, so you don't have to worry about accidentally breaking a connection. Don't hit that button until at least the first and last frames of the prerender are saved, or the resulting Loader will have the wrong trim points.

This is designed for the Muse VFX pipeline, so it will require some changes to work elsewhere. One day I'll refactor it to be easier to modify, but for now you'll just have to make do. The areas most likely to need changes are:

Lines 82 - 105, which do some folder name substitution, along with creating exceptions for a couple of projects that don't conform to the rest of our pipeline.

Lines 107 - 120, which parse out the version number of the comp. If your naming convention isn't shotname_version#.subversion#.comp, then this area might need some adjustment.

Lines 144 - 148, which construct the path to where the prerender will be saved.

It's a Tool Script, so it goes into the Scripts/Tool folder, and it is run by right-clicking a tool and choosing Script > Muse_PrecompThis

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Fri Feb 15, 2019 10:42 pm
by Bryan Ray
As the above suggests, my best advice for speeding up your work is to learn how to automate it. A little bit of scripting know-how and the ability to create macros can significantly improve your efficiency by reducing errors and eliminating the need to perform repetitive tasks.

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Mon Feb 18, 2019 1:06 am
by Kel Philm
Using ROI (Region of interest) will speed up interactive work when applicable.
Grouping Transform type nodes together (Fusion compounds them together to save time).
Removing animation from static roto nodes.

Also this script will tell you what the percentage of CPU usage for each Node, which can be useful on large comps for working out what to cache.

Code: Select all
function spairs(t, order)
    -- collect the keys
    local keys = {}
    for k in pairs(t) do keys[#keys+1] = k end

    -- if order function given, sort by it by passing the table and keys a, b,
    -- otherwise just sort the keys
    if order then
        table.sort(keys, function(a,b) return order(t, a, b) end)
    else
        table.sort(keys)
    end

    -- return the iterator function
    local i = 0
    return function()
        i = i + 1
        if keys[i] then
            return keys[i], t[keys[i]]
        end
    end
end


-- Main

local sumTime = 0.0   
local resTab = {}


--
for i,tool in ipairs(comp:GetToolList()) do
   resTab[tool:GetAttrs().TOOLS_Name] = tool:GetAttrs().TOOLN_LastFrameTime
   sumTime = sumTime + tool:GetAttrs().TOOLN_LastFrameTime
end

print("======================================================")
print(" Tools from slowest to fastest (Tools with 0 ignored)")
print("======================================================")

for k,v in spairs(resTab, function(t,a,b) return t[b] < t[a] end) do
    if v > 0 then
      print(string.format("%7.1f %%", 100 * v/sumTime) .. "  " .. k)
   end
end

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Wed Feb 20, 2019 8:19 am
by Philipp Walz
Hi there, thanks for all your great tips.
But I don't know how to use your codes and scripts :-(

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Wed Feb 20, 2019 8:32 am
by Sander de Regt
Just select the code in the code box and copy/paste inside of Fusion. The nodes will appear automagically.

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Wed Feb 20, 2019 8:38 am
by Philipp Walz
Sander de Regt wrote:Just select the code in the code box and copy/paste inside of Fusion. The nodes will appear automagically.


I know that but it doesn't do anything

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Wed Feb 20, 2019 4:32 pm
by Bryan Ray
That one wasn't nodes, actually. Sander apparently didn't look at it! ;)

You could save that code as a text file with the extension .lua and put it in your scripts/comp folder, which would allow you to run it from the Scripts menu, or you can paste it into the Console view and hit Enter to execute it.

Or I think there's a script in Reactor somewhere that makes a Heat Map out of your comp—it changes the nodes' tile colors to show you which take the longest to process. I recommend running that one on a temporary copy of your comp if you don't want all of your nodes to be weird colors from that point on.

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Wed Feb 20, 2019 6:15 pm
by Sander de Regt
Bryan Ray wrote:That one wasn't nodes, actually. Sander apparently didn't look at it! ;)

Guilty as charged. :oops:

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 21, 2019 12:57 pm
by Philipp Walz
When I use your scripts, I only get this error:
...port/Blackmagic Design/Fusion/Scripts/Comp/cpu_usage.lua:2: '=' expected near ' '
...ackmagic Design/Fusion/Scripts/Comp/Muse_PrecompThis.lua:102: attempt to concatenate a nil value

Any idea?

Re: SUMMARY: Tips for speedy compositing in Fusion *NEEDED*

PostPosted: Thu Feb 21, 2019 4:13 pm
by Bryan Ray
Did you make any modifications? I provided the script as a starting point, not as something that you'd actually be able to use. I guarantee it won't work right out of the box unless your folder structure just happens to be identical to Muse's. Line 102 is in the section that makes modifications to the path to fit our pipeline. A couple of years ago we changed our folder structure substantially, so these lines detect whether the comp uses the old or the new structure. If the comp isn't located on drive X:, it does some modifications to the path to compensate.

Since you aren't using either of Muse's pipelines, you'll probably need to just delete that entire section. In fact, I should probably excise it from my copy of the script, too, since it's no longer doing anything that's necessary—we no longer have any projects on the old structure, so there's no need to continue making exceptions for it.

You'll also need to modify lines 144 - 148. The if..then...else structure can go. The only line that would need to be kept is 145, which constructs the variable elempath. That's the one that determines where the prerendered element will go. As written, it takes two steps up from the location of the comp file, then puts the render in '/04_elements/precomp/[element name]/[version]/[resolution]/[project]_[elementname]_[version].####.exr'

The project name is derived from the location of the comp file. If your structure is something like D:\project\... then it will work. If it's D:\fusion stuff\projects\project\..., then it will call every element 'fusion stuff_elementname_version.####.exr', which is probably not what you want. You'd need to change 'pathtable[2]' to 'pathtable[4]', accounting for the fact that your project's name is the fourth item in the path.

You could build that in a number of ways, of course, and it depends on the needs of your pipeline.