
Stephen Marsh
Community Expert
Stephen Marsh
Community Expert
Activity
‎Feb 24, 2025
02:16 PM
I hope a better solution can be found to distinguish between the two,
That would be for the platform reporting on the metadata for content credentials, on their wording and how much detail they show.
but no matter what I think we're all unfortunately facing a future where it's going to be increasingly more difficult to tell what's real and what's been AI-generated.
By @SK321
I think that we can all agree on that point! :]
... View more
‎Feb 24, 2025
03:08 AM
1 Upvote
I'm confused, you mentioned Trim and it has an option for transparent pixels?
... View more
‎Feb 24, 2025
01:00 AM
On the topic of generic layer-saving scripts:
https://github.com/antipalindrome/Photoshop-Export-Layers-to-Files-Fast
https://github.com/Paul-Riggott/PS-Scripts/blob/master/Layer%20Saver.jsx
https://github.com/Paul-Riggott/PS-Scripts/blob/master/Layer%20Saver%20Plus.jsx (as mentioned above by @Jeff Arola)
https://github.com/mechanicious/photoshopCompositionComposer
Batch: https://www.marspremedia.com/software/photoshop/save-layers
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 23, 2025
10:02 PM
1 Upvote
‎Feb 23, 2025
10:02 PM
1 Upvote
In addition to setting the crop options and moving the crop to the right canvas edge, another option is to use the Image > Canvas Size command with the anchor set the the right centre. One can also create and transform a selection to the desired size and position and use Image > Crop.
... View more
‎Feb 23, 2025
03:42 PM
@AnimeApparelStore
Does moving the smart object to the top layer need to happen every time the mockup script is run?
Or can you set this up correctly beforehand and save it into the template?
I have requested access to the linked PSDs.
Edit: I have downloaded the files, please answer the two questions above to help me to better understand the issue.
... View more
‎Feb 23, 2025
03:33 PM
I tried everything sugggested. It work 5 times then quit and wont work again. I have unistalled and reinstalled all adobe and photoshop files. Getting mad because I pay a lot for this software for years. Any other ideas?
By @Rodney Satonica
You are replying to a 6-year-old topic, and JJMack has sadly passed on.
Can you confirm that you have reset preferences, as these are not reset when reinstalling software (backup any custom actions, brushes etc., before resetting prefs).
https://helpx.adobe.com/au/photoshop/using/preferences.html
After resetting preferences, if this doesn't fix the issue, you might wish to consider using the "cleaner": https://helpx.adobe.com/au/creative-cloud/kb/cc-cleaner-tool-installation-problems.html
Good luck!
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 23, 2025
02:02 PM
1 Upvote
‎Feb 23, 2025
02:02 PM
1 Upvote
@siomosp
Here is an example using the standard file Save As dialog for JPEG.
/*
Default JPEG Save to Baseline Standard.jsx
https://community.adobe.com/t5/photoshop-ecosystem-discussions/save-as-jpeg-again/td-p/12650865
Stephen Marsh, 12th January 2022 - v1.0
Info: Uses the standard Photoshop interface with preset JPEG options
*/
#target photoshop
if (app.documents.length > 0) {
var docName = app.activeDocument.name.replace(/\.[^\.]+$/, '');
try {
// Use the previously saved path
var docPath = app.activeDocument.path;
} catch (e) {
// If unsaved, prompt for save directory
var docPath = Folder.selectDialog("Unsaved base file, select the output folder:");
}
saveJPEG(10);
} else {
alert("You must have a document open!");
}
function saveJPEG(compValue) {
// Using the standard Photoshop dialog windows
var ID = function (s) {
return app.stringIDToTypeID(s);
};
var AD = new ActionDescriptor();
AD.putInteger(ID("extendedQuality"), compValue);
AD.putEnumerated(ID("matteColor"), ID("matteColor"), ID("none"));
AD.putObject(ID("as"), ID("JPEG"), AD);
AD.putPath(ID("in"), new File(docPath + "/" + docName + ".jpg"));
executeAction(ID("save"), AD, DialogModes.ALL);
}
... View more
‎Feb 23, 2025
03:39 AM
Here's the screenshot I mention above.
 
By @ali_4619
The message is referring to the original files and their name or location, not the "shortcut" or "alias" shown in Phtoshop's home screen or recent files menu, which can't be edited.
This is just a "helpful feature" to list recently opened documents and is easily broken if files are renamed or moved. This is similar to a shortcut in Windows or alias on the Mac breaking if a file is renamed or moved.
You should know where files are located and take care not to rename, move or delete them if this will create problems.
... View more
‎Feb 23, 2025
02:22 AM
Another way for Question #1 without using groups or smart objects to protect the existing clipping relationship:
1) Select/target the clipping base layer
2) Ctrl/Cmd + J to dupe the layer
3) Select the previous original clipped layer Alt/Opt + [
4) Ctrl/Cmd + Shift + ] to move the layer to the top of the stack
... View more
‎Feb 23, 2025
01:51 AM
Question #1:
I am not sure if this needs to happen every time the mockup script is run, or if you only need to set up the layers correctly beforehand.
If it only needs to happen once to the template before it is used to populate mockups, then just dupe the layer move it and then reset the clipped layers back as they were.
If this needs to happen each time the script is run, then you will need to automate the steps.
There might be a way to script this using the internal layers structures that mark the beginning and end of clipped layers, however, that is beyond my scripting abilities.
Although the following can be scripted or possibly put into an action, I will detail the manual steps:
1) Copy the base layer to the clipboard
2) The base layer of the clipping mask and the clipped layers need to be protected, encapsulated in either a group or as a smart object.
3) Paste in place the copied base layer so that it is placed at the top of the layer stack.
Optionally, you can ungroup or convert the smart object back to a layer group and then ungroup if you wish to have the clipped ayers back as they were.
It's also possible to duplicate the base layer to a new document, then duplicate the layer back to the original document rather than copy/paste in place.
Question #2:
Smart object sizing uses the PPI resolution value of the smart object image vs. the parent containing document's PPI value. So start by comparing the PPI resolution values of the parent document and the edited smart object document. At the same time, compare the height in pixels of the parent containing document's layer compared to the edited smart object height in pixels.
... View more
‎Feb 22, 2025
07:53 PM
Looks like you have the AI answers you need to get the URL... But do they actually work? :] This wasn't the case in my test.
... View more
‎Feb 22, 2025
05:24 PM
@bruno_4933
When the file is open in Photoshop, go to File > File Info and look at the raw data tab for crs: metadata. These entries are the camera raw settings used by Lr or ACR.
A Photoshop script can remove this metadata. Test with care on a duped or non-critical file, I don't use Lr so I don't know if this will help or not:
// Remove Camera Raw Settings CRS Metadata from Open Doc.jsx
#target photoshop
removeCRS();
function removeCRS() {
if (!documents.length) return;
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
var xmp = new XMPMeta(activeDocument.xmpMetadata.rawData);
XMPUtils.removeProperties(xmp,XMPConst.NS_CAMERA_RAW, "", XMPConst.REMOVE_ALL_PROPERTIES);
app.activeDocument.xmpMetadata.rawData = xmp.serialize();
}
https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 22, 2025
04:18 PM
1 Upvote
‎Feb 22, 2025
04:18 PM
1 Upvote
Maybe one could have a script that would get the locations of the recent files and put them in a list, where they could then be opened in Windows Explorer to be renamed or deleted.
By @Semaphoric
That is certainly possible via scripting, but keep in mind that is editing the originals, not the alias/shortcut/pointers to the images that Photoshop stores in an unknown location and format.
This script will create a text report on the desktop containing the paths and filenames of the files in the recent files menu. Note that all files are returned until the menu is cleared, regardless of the value set to display N number of recent files. The report is grouped into valid and invalid files, with invalid being files that have been renamed or moved and will no longer be accessible.
/*
Recent Files Report.jsx
Stephen Marsh
v1.0 - 23rd of February 2025: tested on Mac and Windows
~ This script generates a report of the recent files in Photoshop, classifying them as valid or invalid based on their existence on disk.
~ The report is saved to the desktop as a text file and opened in the default text editor.
https://community.adobe.com/t5/photoshop-ecosystem-discussions/photo-rename-and-delete-from-home-page-of-photoshop/td-p/15170183
*/
#target photoshop
// Ensure we have access to the app object
if (app.documents.length > 0 || app.recentFiles.length > 0) {
var recentFiles = app.recentFiles;
var validFiles = [];
var invalidFiles = [];
var validFilesCount = 0;
var invalidFilesCount = 0;
// Loop through recent files and classify them as valid or invalid
for (var i = 0; i < recentFiles.length; i++) {
if (fileExists(recentFiles[i])) {
validFiles.push(formatPathForOS(recentFiles[i]));
} else {
invalidFiles.push(formatPathForOS(recentFiles[i]));
}
}
// Prepare the content for the text file
var content = "Valid recent files:\n";
for (var i = 0; i < validFiles.length; i++) {
content += validFiles[i] + "\n";
validFilesCount++;
}
content += "\nInvalid recent files:\n";
for (var i = 0; i < invalidFiles.length; i++) {
content += invalidFiles[i] + "\n";
invalidFilesCount++;
}
// Write the content to a text file on the desktop
var file = new File("~/Desktop/Recent_Files_Report.txt");
file.open("w");
file.write(content);
file.close();
alert("Report Completed!" + "\r\r" + "Number of valid recent files: " + validFilesCount + "\r\r" + "Number of invalid recent files: " + invalidFilesCount + "\r\r" + "The report has been saved to your desktop as " + file.name);
// Open the file in the default text editor
file.execute();
} else {
alert("No recent files found.");
}
function fileExists(filePath) {
var file = new File(filePath);
return file.exists;
}
function formatPathForOS(filePath) {
try {
// Create a File object which will handle path formatting automatically
var fileObj = new File(filePath);
// fsName provides the platform-specific path format
return fileObj.fsName;
} catch (e) {
// Return original path if conversion fails
return filePath;
}
}
https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html
... View more
‎Feb 22, 2025
03:44 PM
And no, there shouldn't be general desaturation, only those colors that are out of gamut in the specific target CMYK profile.
By @D Fosse
Agreed, I don't know how they are performing the "CMYK preview" within the web browser. I doubt that it is ICC-based and that they use a different profile when viewing a mug vs. a t-shirt printed on white fabric vs. printed on a different colour using a base-white ink, but web page previews aren't my area of speciality. My guess is a very simple, inaccurate method to dumb down the colour preview.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 22, 2025
03:31 PM
1 Upvote
‎Feb 22, 2025
03:31 PM
1 Upvote
Do you suggest using a Monitor Calibration Hardware tool such as "Datacolor Spyder X Pro?"
By @JGiunta
If you are interested in more accurate viewing (dependent on ambient environment viewing conditions), then yes.
... View more
‎Feb 22, 2025
03:29 PM
@pjspix Please detail the process that you are taking, step by step.
... View more
‎Feb 22, 2025
07:35 AM
It's all about nuances, comprehension, perception and interpretation. "Made with AI" isn't the same thing as "Entirely generated with AI".
Adobe via content credentials is adding quite detailed information and as this is in beta, it's likely that things will evolve.
What other platforms do with this provenance information is up to them.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 22, 2025
06:47 AM
1 Upvote
‎Feb 22, 2025
06:47 AM
1 Upvote
@SK321
It's very easy to avoid the tools in Photoshop that use generative AI. That is entirely under your own control. Both the Remove tool and Content-aware fill can be set to not use AI.
If it's just a speck of dust, why would you need AI to remove that? We have removed dust without any problems long before AI.
What surprises me nowadays is how AI is considered necessary for even the most trivial tasks.
By @D Fosse
I totally agree with this post, well said!
It's funny, back in 2002 when the healing tools first appeared in Photoshop 7, that technology felt like AI when all we knew was the clone tool!
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 22, 2025
06:39 AM
1 Upvote
‎Feb 22, 2025
06:39 AM
1 Upvote
Maybe one could have a script that would get the locations of the recent files and put them in a list, where they could then be opened in Windows Explorer to be renamed or deleted.
That is certainly possible via scripting, but keep in mind that is editing the originals, not the alias/shortcut/pointers to the images that Photoshop stores in an unknown location and format.
Deleting a file in the list might cause glitches later, so the script should maybe rebuild the recent files list after the editing.
By @Semaphoric
I don't believe that Adobe made this possible via scripting, and AFAIK, Adobe has never divulged where this information is stored or whether it can be accessed.
Users have asked for the ability to remove items selectively and to pin items for years now. We can't pin and there are only hacks to selectively remove individual files by moving or renaming them outside of Photoshop, before going back to Photoshop and attempting to access the now invalid entry in order to clear it.
Another option is to just clear the list of all recent items and then set it to show zer0 recent files and be done with it.
A script can be used to open files without populating the recent menu or home screen:
/*
Open Files Without Populating the Open Recent list.jsx
Stephen Marsh
*/
#target photoshop
var selectFile = File.openDialog("Please select the file/s:", Multiselect = true);
for (var i = 0; i < selectFile.length; i++) {
var openFiles = app.open(File(selectFile[i]));
}
Another option could be to use my "Photoshop Session Manager" script to save & restore Photoshop open document sessions, which isn't thumbnail view based, but text based and is intended for multiple open images, not opening single ad-hoc images:
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 22, 2025
01:16 AM
1 Upvote
‎Feb 22, 2025
01:16 AM
1 Upvote
I am suspecting the issue is related to the open command...does the droplet open 1 image, then runs the action, and after action has run, opens the next image and so on?
By @thomash46409394
Yes, however, it depends on whether you have a close step in the action as to whether the processed images remain open or not.
Droplets are closely related to the Batch command, they are both designed to open and process one image at a time. Other documents can already be opened and used as the source for other operations, however, depending on the operations performed. batch actions may sometimes get confused as to which document is which.
Batch:
https://helpx.adobe.com/photoshop/using/processing-batch-files.html#process_a_batch_of_files
Droplets:
https://helpx.adobe.com/photoshop/using/processing-batch-files.html#create_a_droplet_from_an_action
It sounds like you need a script, not an action.
Are the sets of two files in the same folder, or two different folders?
What criteria should Photoshop use to open each set of two images? Is this just a simple alpha-numeric filename sort?
A couple of examples, where 2 or moe files are opened and combined into sets of N quantity layers:
https://community.adobe.com/t5/photoshop-ecosystem-discussions/script-to-automate-load-files-into-stack/m-p/13499068#U14928257
https://community.adobe.com/t5/photoshop-ecosystem-discussions/script-to-open-files-and-layer-them/m-p/12532657#U14933502
I'm happy to make adjustments to one of my current scripts to help you batch 2 images at a time, I just need to understand your workflow and process.
... View more
‎Feb 21, 2025
04:05 PM
Please provide at least 2 sample PSD files and the required CSV files for testing.
Will there be a matching CSV for each PSD file? Or a common CSV for all PSD files?
The more infor and samples that you provide, the better.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 21, 2025
03:59 PM
2 Upvotes
‎Feb 21, 2025
03:59 PM
2 Upvotes
Hello,
Why do I see so many changes in Printify's CMYK checker, but zero changes when I convert in Photoshop? What am I missing?
Thanks,
-J
By @JGiunta
It depends on the source file and assigned/assumed ICC profile and the destination profile and settings used for softproofing or conversion.
I doubt that the Printify website is using ICC-based colour management to simulate printing previews, they probably just have some simple "desaturate by N%" toggle.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 21, 2025
03:56 PM
1 Upvote
‎Feb 21, 2025
03:56 PM
1 Upvote
There will always be ways to cheat this, so it comes down to how hard you want to make this.
https://www.davidebarranca.com/2016/07/html-panel-tips-22-protecting-your-code/
https://www.davidebarranca.com/2017/02/html-panel-tips-23-javascriptobfuscator-api-gulp-js-plugin/
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 21, 2025
03:20 PM
1 Upvote
‎Feb 21, 2025
03:20 PM
1 Upvote
Hah, since vector shape tools were introduced, I'd just cheat!
vectorEllipse(0, 0, 500, 500);
function vectorEllipse(top, left, bottom, right) {
var desc200 = new ActionDescriptor();
var desc201 = new ActionDescriptor();
var ref7 = new ActionReference();
ref7.putProperty(stringIDToTypeID("path"), stringIDToTypeID("workPath"));
desc200.putReference(stringIDToTypeID("null"), ref7);
desc201.putInteger(stringIDToTypeID("unitValueQuadVersion"), 1);
desc201.putUnitDouble(stringIDToTypeID("top"), stringIDToTypeID("pixelsUnit"), top);
desc201.putUnitDouble(stringIDToTypeID("left"), stringIDToTypeID("pixelsUnit"), left);
desc201.putUnitDouble(stringIDToTypeID("bottom"), stringIDToTypeID("pixelsUnit"), bottom);
desc201.putUnitDouble(stringIDToTypeID("right"), stringIDToTypeID("pixelsUnit"), right);
desc200.putObject(stringIDToTypeID("to"), stringIDToTypeID("ellipse"), desc201);
executeAction(stringIDToTypeID("set"), desc200, DialogModes.NO);
// Cut and paste to create a new path that isn't a live shape
executeAction(stringIDToTypeID("cut"), undefined, DialogModes.NO);
executeAction(stringIDToTypeID("paste"), undefined, DialogModes.NO);
}
... View more
‎Feb 21, 2025
03:06 PM
I haven't played with Content Aware Tracing for adding bleed to an image with a clipping path, or a path that would be used as a cut path on a CNC table etc.
Some previous discussions:
https://community.adobe.com/t5/photoshop-ecosystem-discussions/adding-bleeds-to-an-outlined-photo/m-p/10886580
https://community.adobe.com/t5/photoshop-ecosystem-discussions/how-to-bleed-photos-with-diecut-shape-in-photoshop/m-p/10625624
https://community.adobe.com/t5/photoshop-ecosystem-discussions/ading-bleed-to-complex-stickers/m-p/11150470
... View more
‎Feb 21, 2025
03:01 PM
It's not possible to record an action to change the gradient type, at least that's what I believe. I'll wait for the scripters to see this thread, but I'm suspicious that it is possible using a script either.
By @Bojan Živković
If it can't be recorded in an action, scripting it would require a deeper knowledge of Action Manager code than I possess.
Usually with actions, you can record the selection of a tool preset, with the tool preset having the desired properties.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 21, 2025
05:22 AM
1 Upvote
‎Feb 21, 2025
05:22 AM
1 Upvote
@iRushab wrote:
Yay! It worked. Thanks @Stephen Marsh
Fantastic!
Yes, I have tested it for both text and pixel replacement with multiple columns.
The prerequisites are:
* Variables/Data Sets must be defined, for consistency I advise using the same CSV as used when running the script to initially create the data sets.
* The first column in the CSV will be used for the filename suffix, it therefore must have valid, legal characters.
There is placeholder code in the script to use the data set index numbers for the suffix rather than the spreadsheet first column, although it's probably easier to just have the first column using sequential numbers.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 21, 2025
03:30 AM
1 Upvote
‎Feb 21, 2025
03:30 AM
1 Upvote
Ah, I only tested with relative paths:
my file.jpg
Not with full absolute paths:
/some location/some folder/my file.jpg
I'm guessing that it's choking on the directory forward-slash separators, which would create an illegal filename.
I'll revise the code so that only the content after the last directory separator is used.
EDIT: I have updated the previous code, please try again... This is for the Mac, I haven't tested Windows back-slash \ path separators yet!
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Feb 21, 2025
03:22 AM
1 Upvote
‎Feb 21, 2025
03:22 AM
1 Upvote
ExifTool doesn't find an ICC profile, however, there is an sRGB rendering intent, which appears to be picked up and displayed as sRGB in some software:
[System] FileSize : 19 kB [System] FileModifyDate : 2025:02:21 22:18:19+11:00 [System] FileAccessDate : 2025:02:21 22:18:21+11:00 [System] FileInodeChangeDate : 2025:02:21 22:18:20+11:00 [System] FilePermissions : -rw-r--r-- [File] FileType : PNG [File] FileTypeExtension : png [File] MIMEType : image/png [PNG] ImageWidth : 375 [PNG] ImageHeight : 812 [PNG] BitDepth : 8 [PNG] ColorType : RGB with Alpha [PNG] Compression : Deflate/Inflate [PNG] Filter : Adaptive [PNG] Interlace : Noninterlaced [PNG] SRGBRendering : Perceptual [PNG] Gamma : 2.2 [PNG-pHYs] PixelsPerUnitX : 2835 [PNG-pHYs] PixelsPerUnitY : 2835 [PNG-pHYs] PixelUnits : meters [Composite] ImageSize : 375x812 [Composite] Megapixels : 0.304
... View more
‎Feb 21, 2025
02:46 AM
...by labeling content with no AI in it as AI.
By @QINGCHARLES
Please explain clearly what you mean, as this sounds patently false.
... View more