You need to create a module or uplugin that starts in the EarliestPossible phase. Also add FFXFSR3Settings and FSR3 to AdditionalDependencies and Plugins so that your module starts before those. This allows your module to start before any of the NVIDIA or AMD modules do their startup configuration. In your StartupModule function you configure all the CVar values related to the NVIDIA and AMD modules, then those modules will read the values in their startup phase.
These are the related CVars from the plugins that I touched last time I messed with this. It is up to you to read the documentation for each plugin and understand how to set all the values properly in relation not only to the NVIDIA vs AMD conflict, but also based on dx11, dx12, etc.
CVarFSR3UseRHI
CVarEnableFFXFI
CVarFSR3UseNativeDX12
CVarFSR3OverrideSwapChainDX12
CVarFFXFIUpdateGlobalFrameTime
CVarFSR3AllowAsyncWorkloads
CVarStreamlineInitializePlugin
e.g.
CVarStreamlineInitializePlugin.AsVariable()->Set(true, ECVF_SetByConsole);
The ECVF_SetByConsole property just marks the CVar priority so that other parts of the code or ini loading does not overwrite your chosen values. It’s a bit of a hack.
I cannot share the exact code for various reasons, but that should be enough for you to get started. Just be vary that all modules have a loading phase and you need to make sure that your module loads in a good spot and BEFORE the other modules do their startup thing. Remember that you cannot change the Frame Generation method during runtime and you have to restart the engine for the changes to apply. If you need a user setting you need to LoadConfigIni in your StartupModule to fetch the value in the EarliestPossible phase.
I hope that gets you moving.