PLv6 Bug: Distortion / Constrain to image ... Incorrectly set by partial preset

@BHAYT, macOS applications are folders with the extension “.app”, which makes macOS display that folder as an application. Looking into the DPL6 app/folder, we can get to all the built-in presets:

The supplementary DNG preset is not shown in DPL either. Secret presets on Mac too :gift:

@platypus on Windows the DxO supplied presets are held as “.preset” files just like user and DxO presets in the standard directory C:\Users\Bryan Thomas\AppData\Local\DxO\DxO PhotoLab 6\Presets and in my case in a backup directory where I can develop new Partial presets by “hacking” old/earlier presets and then importing them back into a running PL6.

Backing up presets is as important as backing up the database, or more important if you are just using the database as DxPL temporary work files.

However, there is no such entry for 5 and I had trouble with “5 - No Correction” in the past but never pursued it in detail!

Hmm - thanks for the update.

1 Like

Indeed, and macOS provides the handy “Time Machine” backup feature.

1 Like

@platypus a useful facility that has no direct counterpart on Windows.

Although I did install a product (PowerQuest Drive Image) way back that captured all changes on my Father-in-Law’s machine because with his “lazy” mouse movements he moved (dragged) files inadvertently, couldn’t find them and then started again!?

Every change was captured in Zip files and I was able to “recover” what he had “lost”!

My own backup uses Beyond Compare and does not back up continually. The resulting backup is a copy rather than a history of changes so no “rolling back” to a given point in time.

Not quite that, Bryan - - I reckon it’s related to a “logic fault” (aka, a :beetle: ) in the translation from the state of “Constrain to Image” = False to the corresponding sidecar/.dop setting - which should be DistortionAnamorphosisKeepEntireImage = True … and vice versa.

@John-M I haven’t fully tested the whole story that you paint but I ran a test and was convinced that nothing was right until I discovered …

  1. Set up a new directory of 4 images, no DOPS with a ‘Preferences’ of

image

Which was wrong because I wanted to use ‘5 - …’ for RAW!!

  1. Set ‘Constrain to image’ to “OFF” for the first two images and left the other two alone and was convinced that DistortionAnamorphosisKeepEntireImage = False was set for all 4 images which it was

image

but I missed the Overrides = addition to the end of the DOP for the first two images

image

Now I will test with ‘5 - …’!

I think you’re over-complicating things, Bryan … Just do this.

John

1 Like

@John-M I made the above statement some posts ago, i.e. that I can reproduce the issue, which I just repeated with an empty database, a new folder of images, after a PL6 restart and it still gets the ‘Constrain to image’ set in spite of the fact that there is nothing in the preset that should cause that.

So no prior actions to cause values to be left behind and PL6.7.0 sets that item ON using …?

My other tests are to explore an issue that I had (or thought I had) with the “invisible” option 5 some time ago when I was using it as my default option for RAW images!

1 Like

The default for exactly that setting changed one or two times during the PL 6.x release cycle.

I think there is some state left in your preset file, or things just get messy with the changing defaults.

Anyway , recreating your partial preset should probably fix it I guess. Did you try that already ?

@jorismak as I stated in the last post to @John-M I repeated the test before making the post.

So

  1. I ‘Restored’ an empty database and navigated to directory where I had been testing presets. That was the only directory that I opened.

  2. All four images had ‘Distortion’ = OFF but ‘Constrain’ = ON. So I used my preset and set ‘Constrain’ = OFF for all four images and that is all that preset does.

  3. I selected the first image and executed ‘3 - Neutral colors’ and ‘Constrain’ = ON.

  4. I repeated the test at 3 on the second image and captured the snapshots

Before:-

after

  1. I then set all to OFF, navigated to an empty directory and ‘Restored’ an empty database.

  2. I repeated the navigation and the test and it happens every time, i.e. it is a “feature” of PL6.8.0 in this case!

In fact all the DxO presets cause the ‘Constrain’ to be set but 1, 2 and 3 do that at the same time as setting ‘Distortion’ = ON. But 3, 4 and 5 do it without activating ‘Distortion’ at all.

My ‘(P) Constrain to Image(OFF)’ will “rectify” the situation if anyone feels it needs rectifying and that is all that Partial preset does

image

Personally I feel that I want ‘Distortion’=ON, ‘Constrain to Image’=ON and Keep Ratio’=ON or all settings = OFF

BUT the ‘(P)__Distortion(OFF)’ and (ON) only toggle the ‘Distortion’ setting and do nothing to the ‘Constrain’ etc…

Plus if ‘Constrain …’ is toggled OFF then ‘Keep Ratio’ is cleared as well but toggling ‘Constrain …’ back ON leaves ‘Keep Ratio’ = OFF, i.e. there is no memory of its previous setting so it cannot be restored!?

For completeness there should be a ‘(P) Constrain to Image(ON), KR(ON)’ added to my ‘Distortion’ Partial presets

image

that contains

Preset = {
Settings = {
Base = {
DistortionAnamorphosisKeepEntireImage = false,
DistortionKeepRatio = true,
}
,
Overrides = {
}
,
Version = "17.3",
}
,
Version = "11.0",
}

The presets for 4 and 5 contain no mention of “Distortion” whatsoever and 5 doesn’t even seem to have a physical embodiment in the presets files, they are “figments” of DxPL’s “imagination” not mine or my presets.

Yes - that’s correct … but;

No - that’s not the case.

The issue can be readily replicated using DxO-issued presetsas explained here.

But, DxO’s default presets are not partial presets. So they set everything back to default, including the ‘constrain to image’ flag on the Distortion module.

As a test, I open an image, I load the ‘5 - no correction’ preset. Everything is off.
I now set the horizon to like 20 degrees as a test. I create a partial preset containing only the horizon module.

No, I reset the image back to ‘5 - no correction’. I apply my partial preset, and the horizon module is applied. Fine, but not special.

I reset the image back to ‘5 - no correction’. I change the ‘constrain to image’ flag to off (since it’s enabled by default). I now apply my partial preset, and again the horizon module gets set as in the preset. But the ‘constrain to image’ is left off, it’s not touched.

So partial presets are working? If the preset doesn’t contain the ‘distortion’ module, it’s left alone.

The two I’ve referred to (DxO’s 3 - Neutral Colors & 4 - Black & White ) are partial presets.


Note: It’s the Distortion correction that’s being wrongly impacted - - NOT the “Horizon module” (as you refer to it).

See simple test here - using DxO’s partial presets.

  1. Before applying 3 - Neutral Colors
    image - Constrain to Image = False

  2. After applying 3 - Neutral Colors
    image - Constrain to Image now True

… despite there being no setting for DistortionAnamorphosisKeepEntireImage included in the 3 - Neutral Colors partial preset.

I’ve used the Horizon module as ‘some content for the preset’, but I’ve shown that the distortion / constrain-to-image flag is untouched while applying presets that do not contain it. I was not talking about a problem in the Horizon module. I was using the Horizon module as something to demonstrate that the Distortion-constrain-image option is untouched in such cases.

And yes, if I try to edit the 3-neutral-color preset (you can’t save it though), I see that the distortion module is not included, so something is weird that. True.

But it’s also true what I said, if you recreate a partial preset it works just fine. The built-in DxO ones are toggling that image, and it’s because it is under the hood, not really meant / treated as partial presets.

If you create a partial preset yourself, the distortion module is untouched if you apply it.

edit:
(that 3-neutral-color preset is marked as a system preset, and is not a partial preset. It will behave weird, just take that for granted. If you make a new preset, you don’t get this issue).

Also, in the preset editor you can ‘copy’ 3-neutral-color, so you get ‘Copy of 3 - Neutral color’.
Now, Close DXO PL, open the created preset in a text editor from your presets folder, and you’ll see there is a line in there now suddenly that reads like ‘DistortionAnamorphosisKeepEntireImage = false’. Remove that line, save the file, and restart DxO PL (or, after making changes, make sure you restart DxO PL). Now the preset won’t touch the ‘constrain to image’ flag.

If your entire bug report is why an internal DxO preset behaves not the way you want, then the answer is simply ‘It are system presets, they have extra behaviour you will not see in the file itself’ (like this one, re-applying defaults between different versions, etc…).

In the TS / OP of this thread, the problem was stated that they made a partial preset themselves, which causes this issue. I stand by my answer: recreate the partial preset and you should not have this issue.
If you want to apply one of the DxO supplied presets but have this setting untouched, duplicate the preset and remove this line from the duplicate to have the effect.

Thank you, @jorismak - - A number of your assumptions and assertions were incorrect - - but, your observations prompted me to look more closely at the 3 - Neutral Color preset (as an example of the issue) … and now I understand the root of the problem :+1:

Explaining your misunderstandings first;

1) A preset with parameter isSystem = True does not force interpretation of it as a full (non-partial) preset.

  • Instead, this is an indication to PL that it should not allow the user to delete this preset via the PRESET EDITOR … as can be seen by the little padlock icons in its list of presets.
    image - Padlock icon = DxO system preset = Cannot be deleted

  • You can confirm this for yourself by making a manual copy of the 3 - Neutral Color.preset file (from outside PL), and remove the line isSystem = True - - Now start PL and apply this manual-copy … the result will be exactly the same as for the original 3 - Neutral Color preset … except, that now, when viewed via the PRESET EDITOR, it will not be listed with the padlock-icon - and it can be deleted (by the PE).

2) The 3 - Neutral Color preset IS a partial preset - - as is the “4 - Black & White” preset … they both change some settings without affecting others.


It was your following observation that prompted my curiosity …

… since removing the parameter DistortionAnamorphosisKeepEntireImage could not have been the reason for the change in behaviour (because that effectively reverts the preset back to its original state) … there had to be another difference in the preset resulting from the copy … and I found it.

  • The original 3 - Neutral Color preset file has Version ranges assigned as;
    image

  • By copying this preset (via the PRESET EDITOR), the Version range is changed to;
    image


Conclusion follows …

TL:DNR - Summary;

  1. Unless the (upper-range) number listed within preset-files is Version = 17.3 (or greater, for later versions of PhotoLab), PL will not apply the correct setting for Distortion / Constrain to Image

  2. This predicament can “sneak-up” on unsuspecting users because an upgrade of PL does not (necessarily) result in an update of the Version = XX.X line in preset files.

Recommendation to savvy users;

  • Before applying a PL upgrade, rename your Presets folder (to force creation of a new one).

  • After the installation, rebuild any customisation you may have applied to the Presets folder - paying particular attention to the new Version # lines … and replacing any standard DxO presets with the latest versions.

@John-M , are you sure that the version numbers change the effect of a preset?

I had changed version numbers occasionally, mostly to import new presets into older versions of DPL and found that the effects were the same, except for instructions that related to features absent in the older version. Such instructions were mostly ignored, although I had an issue or two doing this with DPL versions 4/5/6.

Again, I use DPL on macOS and the Win versions could act differently.

In this case - yes; that’s what made the difference - and resulted in PL correctly setting Constrain to Image via a partial-preset.

@jorismak proved this in his investigation test (tho, he came to the wrong conclusion from the result).

I reckon the current version of PL needed to use the Version # for correct setting of Constrain to Image because an earlier version (when this option was originally exposed to users) had it set the opposite way by default.

Yes - could be. You did say, earlier, that this problem wasn’t evident on the Mac version - - Perhaps the Mac version didn’t go thru the change in default-state … and, therefore, doesn’t need to use the Version# to get this setting right (?)

I had a whole reply, but apparently you can’t reply by email on the DxO forums.

Anyway, the versions causing different behaviour is more likely then my original thought.

I still consider it a bug that if you copy the preset , all those special behaviours do get written to your new preset (good), but there is no method in the GUI to control if the constrain flag is in the preset or not (bad).

The only method to control that, is editing the preset in a text editor. Bug, oversight , whatever. Not good UX at least :).

As why some people experience this differently… Yes. Maybe windows and Mac differences. There are lots.
Could also be - those presets are written in your user settings. So maybe they are not always updated during an install/ upgrade. So maybe some people have older versions of them , because they only get written on first start if they don’t exist yet? I’m just speculating though.

My version showed 11 or something for my system preset , but something way higher for a new empty preset. Maybe people exist out there wit
h higher versions of the factory presets.

It all ends up to the same though : if you have a user preset that toggles the ‘constrain’ flag and you dont want that, create a new empty preset and recreate your user preset , or edit the preset file and restart DxO PL if your comfortable with that .

And for DxO: it should be possible to control if the constrain flag is modified or not without having to edit the preset file . You can control if the distort module is included in a preset or not , but the constrain to image is a separate setting that has no UI counterpart to include or exclude from a preset.

DistortionAnamorphosisKeepEntireImage=false means ‘constrain to image is forced on’.
DistortionAnamorphosisKeepEntireImage=true means force it to off.
Removing that line all together from a preset means ‘leave it alone’.

And exactly that last state has no UI in the preset editor .

That also means that people copying a factory preset to then edit it , don’t have control over this, and you can’t see what is happening .

From programming myself , having a version number in a preset ro replicate program behaviour from that era to stay backwards compatible , sounds like a normal, logical thing to do.
The constrain to image has seen some differences in the PL 6 release cycle , so I kinda understand that the flag behaves differently depending on the version the preset has.

No way to alter it if bringing the preset to a newer version is the problem, although like is said, with a text editor you can work around it.

@John-M the only experiment is to see if newer versions of those factory presets are written if you have a new complete fresh install. But I don’t care enough to try it to be honest :).

I’ve checked the presets of DPLv6 over its evolution. For “Optics Only”, I see that

  • Version 6.3 introduced the constrain to image feature and set
    DistortionAnamorphosisKeepEntireImage = true.
  • Version 6.6 set
    DistortionAnamorphosisKeepEntireImage = false.
  • Changing the version number changes DPL’s interpretation of
    DistortionAnamorphosisKeepEntireImage on macOS

How I tested

  • Created a preset with DistortionAnamorphosisKeepEntireImage = true
  • Duplicated the preset a few times and edited the “settings” version number to be
    17.1, 17.2, 17.3 and 17.4.
  • DistortionAnamorphosisKeepEntireImage = true was only interpreted as expected,
    when the settings version number was 17.3 and 17.4.

Well, DxO has gone a longer way than I thought, interpreting the version numbers. :blush:

Presets I tested with:
Archive.zip (26.3 KB)

1 Like