Fujifilm F-Log in Resolve without an IDT

This Currently goes a bit over my head, How do I incorporate this tool into my Resolve Grade? Is this a step to input into the node trees above via @nick and @OwenYou? or A replacement to that manual node tree? I have XT-3 F-Log footage to correct and Grade.

This thread is precisely what I have been looking for and struggling with to correctly grade my XT-3 F-Log. Thank you to all of you. Perfect descriptions and Screenshots.

1 Like

It has become easier in Resolve 17, as you can add custom IDTs.

If you take a DCTL generated by @tommyzenth’s tool, and place it in the IDT folder under:

    - MacOS: "~/Library/Application Support/Blackmagic Design/DaVinci Resolve/ACES Transforms"   double check folders again
    - Windows: "%AppData%\Blackmagic Design\\DaVinci Resolve\\Support\\ACES Transforms"
    - Linux: "~/.local/share/DaVinciResolve/ACES Transforms"

(this is copied and pasted from the DCTL ReadMe. I can confirm the MacOS one is correct, but haven’t verified the others)

You then need to add one extra line to the top of the DCTL in a text editor:

DEFINE_ACES_PARAM(IS_PARAMETRIC_ACES_TRANSFORM: 0)

Restart Resolve, and your custom IDT will now show up at the bottom of the built-in IDT list.

Hi , This is amazing! Thank you for that ! Is it possible to include F- log2 ?Currently is not supported in Davinci and would be great if we can generate DCTL for it.

I generated the FLog DCTL with the tool and piped in the numbers from the FLog2 paper.
I do not have access to proper test material for it so can’t claim it’s working as intended.

I also noticed a typo in the comment line at the top of the tool stating “ACES DIT” instead of “ACES IDT” :slight_smile: if he reads this, could be nice to correct it.

// ACES IDT FujiFGamut(Rec.2020) - F-Log2 to AP0 - Linear
DEFINE_ACES_PARAM(IS_PARAMETRIC_ACES_TRANSFORM: 0)

__DEVICE__ inline float Log_to_linear(float inv)
{
  float outv;
  
if (inv > 0.100686685370811f)
{
 outv = (_powf(10.0f, (1.0f/0.245281f * inv - 0.384316f/0.245281f)) - 0.064829f) /5.555556f;
}
else
{
 outv = (inv - 0.092864f) /  8.799461f;
}
  return outv;
}

__DEVICE__ float3 transform(int p_Width, int p_Height, int p_X, int p_Y, float p_R, float p_G, float p_B)
{
  const float mtx[9] = {0.6788911506598102f,0.15886842237789234f,0.16224042703562752f, 0.04557083087232135f,0.8607127720474108f,0.0937163970408747f, -0.0004857103518124508f,0.025060195735059528f,0.9754255145687619f};

  float r1 = Log_to_linear(p_R);
  float g1 = Log_to_linear(p_G);
  float b1 = Log_to_linear(p_B);
  float r2 = r1 * mtx[0] + g1 * mtx[1] + b1 * mtx[2];
  float g2 = r1 * mtx[3] + g1 * mtx[4] + b1 * mtx[5];
  float b2 = r1 * mtx[6] + g1 * mtx[7] + b1 * mtx[8];

  return make_float3(r2, g2, b2);
}

Pretty cool :slight_smile: ! Logicly It should work if the formula didn’t change. I will test it . Thanks a lot for that !

BTW I also found that if you use Fuji (Rec.2020) for Gamut and ARRI Log C(SUP 3.x) for the gamma, even is not correct it gives me very nice result and I like it much better than the Fuji’s F-log2 LUT. The highlights rolloff seems much better. Not sure why but result from Fuji F-Log2 LUT gives sharper image and it looks more digital and pretty bad to my eyes .

So just test it and it seems that works and the difference from ARRI Log C(SUP 3.x) is almost not noticeable and definitely looks better than Fuji’s F-Log2 LUT
Thank you !

1 Like

With this node based approach how would you output to AP0?

What do you mean exactly?
The DCTL code I posted converts Rec.2020/FLog2 to AP0/Linear. You can store this file in the IDT folder of Resolve so it pops up in the ACES Transform list. (See Nick’s post in this thread) granted you add that line in he mentions.

I think if you use it as node DCTL it still does the same pretty much but I never tested that.

Sorry, I was referring to the method way back at the beginning of this thread that used nodes in Resolve to “manually” build an ACES pipeline, rather than the color management.

I was unclear there how to go from AP1 ACEScct to AP0. I suppose one could disable the ODT node and add a Color Space Transform that goes from AP1 ACEScct to AP0 linear?

At the end of the day, I feel like your approach of using the built-in ACES color management with an added DCTL for the Input is more elegant.

Ah, yes of course, that would be the way to go.

I always use manual management as I prefer to have full control and visibility of the pipe. Typically I would place the ODT on the timeline node tree. For full ACES where I don’t need to exclude clips this is practical and I can also place my showlook under it on the same tree. If stuff is more mixed for the project I tend to place them on the group post clip tree so other groups can have different setups. With multiple cameras I use groups for each camera and have the showlook under timeline. With single camera I use the post group for the showlook so it’s easier to turn the entire look on or off without disabling the ODT. In both setups you get at least the benefit of disabling your clip grade tree without disabling your color pipeline.

So yea it’s flexible enough but not perfect. Especially because your groups are always occupied for colormanagement rather than creative grading. I can fully understand other users preferring a project lead color management setup :slight_smile:

1 Like

Enlightening. Thanks so much for sharing!

Hi all,
i am new to the Forum and also new to ACES.
First of all want to say thank you, for all the work you guys do in the forum.

I recently started working with a Fuji XH2s in Flog2.
I do not really understand how to create DCTLs.
All I know, the provided LUT from fuji looks awful. So my workflow using resolve color management and a LUT (only due to the lag of an IDT), will not happen.

@Shebbe What would be the correct workflow or node structure, project setup, using your DCTL for A: going to rec709 and/or going to rec2100 st2084? If yo still need some testing material let me know. I would be happy to provide some F-Log2 Material.

I tried as follows but it did not seem to work:
Project settings:
DaVinci YRGB
Timeline Colorspace: DWG/intermediate
Output Color Space: Rec709.A

Node structure:

Your DCTL → A node for grading → ODT using a CST from Aces AP0 and ACES CCT to Rec709 Gamma 2.4.

However, enabling and disabling the node with the DCTL has no effect at all.

Thanks for your kind help.

Hey Dennis,

The DCTL is supposed to be added as an ACES IDT, it’s not set up to be loaded as DCTL in the node tree.

Windows:
C:\Users\ [your user folder] \AppData\Roaming\Blackmagic Design\DaVinci Resolve\Support\ACES Transforms\IDT

Mac:
~/Library/Application Support/Blackmagic Design/DaVinci Resolve/ACES Transforms/IDT

You can then load an ACES Transform node and find the color space at the bottom of the list.

Regarding your setup you have other inconsistencies as well.
If you decide to grade in an ACES pipeline I would recommend also grading in ACEScct. For manual colormanagement this means setting your timeline to ACEScct, not DWG/Intermediate.

  • ACES Transform: Fuji FLog2 to ACEScct
  • Grading
  • ACES Output Transform ACEScct to Rec.709.

If you don’t care about the ACES workflow but just want to use the IDT for conversion you can stay in DWG/Intermediate. Leave the timeline to that but your data needs to be DWG/Intermediate as well. Otherwise your color space aware tools aren’t behaving as they should.

This would be:

  • ACES Transform: Fuji FLog2 to “No Output Transform” (AP0/Linear)
  • CST: AP0/Linear to DWG/Intermediate, no tone mapping, chromatic adaptation on.
  • Grading
  • CST: DWG/Intermediate to Rec.709/Gamma 2.4, DaVinci tone mapping, forward OOTF checked

The extra step at the input stage is necessary because DWG/Intermediate is not yet present in the ACES Transform list in Resolve.

Thanks a lot for your in-depth explanation, I will try this out as soon as I can.
Well I preferred to work auto color managed so far, since it felt easier. I mainly work with an XH2s and a BMPCC6K. If I manage my color in ACES or in ResolveColorManagement, is not too important for me as long as it works. so I will give your first node tree a try.
I just had problems in the past to find out how to use ACES for the BMPCC6K and Film v5, that’s why I avoided it.

Regarding your first node tree, could I put the third node “ACES Output Transform ACEScct to Rec.709” To the timeline level, and behind it a CST to “Rec.709-Cineon film log” and then a “LUT”.
In general does it make sense to grade under a LUT or better just add the LUT at the end.

Sorry so many questions.

—EDIT—

So i tried out what you have suggested. Still facing the same problem (maybe just a problem with my thought process). If I build the mentioned node tree, and set the correct project settings. Whenever I turn the ACES IN node on and off I do not see any change at all. Is that normal? or did I do something wrong creating the dctl?

Thanks and have a good week.

That’s odd. Not sure why it’s not working. Mine works fine. Maybe try download mine and see what happens.

Regarding the rest of your manual management setup. ACEScct primaries are AP1 not AP0. You also don’t really need to use separate color space and gamma because you aren’t deviating from the default primaries+transferfunction combinations anyway.

I’d put anything that is part of your global look on the timeline level so it’s not copied over and over again. Just for simplicity and ease of adjustability.

I wouldn’t go to tone mapped Rec.709 first and then back to log through a different display transform. If you want to use cineon film luts it’s probably best to only use a CST to go from AP1/ACEScct to Rec.709/CineonFilmLog, then LUT, then output transform unless the LUT itself was already converting to Rec.709/Gamma 2.4 like the default PFE LUTs that come with Resolve.

I guess you mean before or after? If the intent of the LUT you use is film print emulation it’s a process that happens at the last stage of the image pipeline. So in that case it makes sense to place it at the end and grade underneath.

Also keep in mind that your intent is to grade in your chosen working space. If that’s ACEScct then stick to that if you want your color space aware operators to remain accurate. It wouldn’t make sense to convert to cineon from the get go unless you’d change your timeline working space to it.

Thanks for your efforts!
So using your DCTL definitely does do something. Seems that I either to stupid to do a copy & paste or using a standard MacOs text edit and transforming .crt to .dctl was a stupid idea.

So if I understood everything right then my process now is as follows:

Project settings:
DaVinci YRGB
TimelineColorSpace: ACES AP0 linear / ACES CCT
OutputColorSpace: Rec709 / gamma 2.4 (or in my case rec 709A due to apple stuf)

On the Colorpage:
Clip level:

  • ACES INPUT TRANSFORM to ACES CCT version 1.3
  • several nodes for adjustments and so on
  • ACES Output Transform to REC709 Cineon film log (if needed otherwise only 709 or 2100…)

Timeline level:

  • DaVinci FPE LUT (if I used cineon)
  • If no cineon, any global creative stuf (LUTs, Colonnades etc.)

Do i have to set my tools to the correct color space by hand, if I go the manual route, to make them color space aware?

Thanks a lot, greetings Dennis

AP1/ACEScct or if you uncheck use separate color space and gamma, just ACSEcct.

ACES doesn’t have a Rec.709/CineonFilmLog color space but they do have ADX10 which is equivalent. I am not sure if they are exactly the same. If it looks off, may want to use a CST to do this like I suggested. I would also move that conversion to the timeline level because it’s part of the global look and not your grading per clip.

As to the global setup, if you want to be efficient about it I would try moving everything except creative grading away from the clip level so while grading you can disable your clip nodes to evaluate changes without disabling your image pipeline.
I typically set the IDTs on the group pre-clip level and also things like noise reduction if it’s needed.

The only tool you can override is the HDR wheels via it’s dots menu, but it’s defaulted to read the chosen timeline space. The others will always be set to the color space defined in the project timeline color space. This is why it’s important to set this correctly to match the data you’re working with when grading.

Is the calculated conversion correct for flog? I used the tool but my black is below 0 and clipped highlights are not quite at the top.

Using davinci wide gamut it does behave properly so I’m assuming this conversion is incorrect.

Hi Femy,

If by tool you mean the DCTL that was discussed above your post, that was about FLog2 not FLog so that may be the expected result.

Do you mean DaVinci DRT (using Resolve Color Managed)? In RCM only FLog is available as far as I know so maybe again you were looking for FLog and not FLog2?