Copy link to clipboard
Copied
Hi everyone,
I'm trying to automate applying a 3D LUT (.cube file) to a Color Lookup adjustment layer in my UXP plugin.
I am able to create the Color Lookup layer itself via batchPlay without any issue:
await action.batchPlay([{
_obj: "make",
_target:[{ _ref: "adjustmentLayer" }],
using: {
_obj: "adjustmentLayer",
name: layerName,
type: { _class: "colorLookup" }
}
}], { synchronousExecution: true });
However, applying an external 3D LUT file after that has not been successful.
I tried using batchPlay to set lookupFile, lookupType, and related properties — the batchPlay call completes without errors, but the LUT is not applied. The UI still shows "None", and the image appearance does not change.
Here is one of the batchPlay patterns I tried (called after creating the Color Lookup layer):
await action.batchPlay([{
_obj: "set",
_target: [{ _ref: "adjustmentLayer", _enum: "ordinal", _value: "targetEnum" }],
to: {
_obj: "adjustmentLayer",
type: {
_obj: "colorLookup",
lookupType: { _enum: "lookupType", _value: "3DLUT" },
lookupFile: lutFilePath, // full path to .cube file
lookupTable: "",
dither: true
}
}
}], { synchronousExecution: true });
Result: no error, but LUT is not applied (UI shows "None").
From what I’ve researched so far, it seems this may not be fully supported in the current UXP APIs.
I do understand this limitation — but if anyone knows of any practical workaround (for example: using built-in presets, preset copying, alternative API usage, or other approaches), I would very much appreciate your advice!
Environment:
Photoshop 26.1.1 and 25.9.x tested
Windows 11 Pro 23H2
UXP Plugin (JavaScript)
Thank you in advance!
Copy link to clipboard
Copied
@novy_jp by this point, if nobody hasn't helped you, have you tried using ChatGPT? CoPilot? DeepSeek? etc. I could do that and copy and paste... but....
Find more inspiration, events, and resources on the new Adobe Community
Explore Now