Photoshop Script Collection
100 free ExtendScript tools for Adobe Photoshop, covering layers, text, export, batch processing, colour adjustment, selection, retouching and more. Cross-platform compatible with Photoshop CS6 through CC 2025.
What's Included
A production-ready toolkit organised into 10 categories, built by Mapsoft's Photoshop development team.
100 Scripts
Covering file operations, layers, text, export, colour adjustment, selection, document setup, smart objects, retouching and utility operations.
Cross-Platform
All scripts work on both Mac and Windows without modification. Platform-agnostic file paths and no OS-specific APIs.
Production Ready
ScriptUI dialogs for configuration, error handling for edge cases, and unit-safe operations that preserve your workspace preferences.
Installation
Copy to Scripts Folder
Locate your Photoshop Scripts folder:
Windows: C:\Program Files\Adobe\Adobe Photoshop [version]\Presets\Scripts\
Mac: /Applications/Adobe Photoshop [version]/Presets/Scripts/
Copy the script folders (File Operations, Layer Management, Text, etc.) into the Scripts directory.
Restart Photoshop. Scripts will appear under File > Scripts.
Alternative: Run Directly
Go to File > Scripts > Browse..., navigate to the .jsx file and click Open. The script runs immediately without needing to restart Photoshop.
Tip: Keyboard Shortcuts
For frequently used scripts, assign keyboard shortcuts via Edit > Keyboard Shortcuts > Shortcuts For: Application Menus > File > Scripts.
Script Catalogue
Browse all 100 scripts organised by category. Each script includes ScriptUI dialogs for configuration.
File Operations
13 scripts
Batch processing for files, folders, and bulk image operations.
| Script | Description | Use Case |
|---|---|---|
BatchAddBorder.jsx | Adds coloured borders and frames to all images in a folder | Preparing images for print framing or gallery display |
BatchApplyAction.jsx | Runs a Photoshop Action on every image in a folder | Automating repetitive edits across hundreds of files |
BatchConvertFormat.jsx | Converts images between JPEG, PNG, TIFF, and PSD formats | Format standardisation for asset pipelines |
BatchCropToSelection.jsx | Crops all images to a specified pixel area from edges | Consistent cropping of screenshots or scans |
BatchMetadataInjector.jsx | Embeds IPTC metadata (author, copyright, keywords) into files | Copyright protection and image cataloguing |
BatchRenameFiles.jsx | Renames files with prefix, sequential numbering, and date stamps | Organising photo shoots or stock image libraries |
BatchResize.jsx | Resizes images by percentage, pixel dimensions, or longest edge | Preparing thumbnails or web-resolution images |
BatchRotateImages.jsx | Rotates images by 90/180/270 degrees or a custom angle | Correcting orientation for scanned or imported images |
BatchTrimAndSave.jsx | Trims transparent or white edges and saves each file | Cleaning up rendered assets with excess whitespace |
BatchWatermark.jsx | Adds text or image watermarks with positioning control | Protecting proofs and preview images |
FileInfoReport.jsx | Generates a CSV report of all image properties in a folder | Asset auditing and cataloguing |
MultiFormatSave.jsx | Saves the current document in multiple formats at once | One-click export for web, print, and archive copies |
RecursiveFolderProcessor.jsx | Processes images in nested subfolders recursively | Batch operations across complex directory structures |
Layer Management
13 scripts
Layer organisation, manipulation, and bulk operations for complex PSD files.
| Script | Description | Use Case |
|---|---|---|
BulkRenameLayers.jsx | Renames layers with find/replace, prefix, suffix, and numbering | Organising layers for developer handoff or animation |
CollectSimilarLayers.jsx | Groups layers by type (text, shapes, raster, smart objects) into folders | Auto-organising messy PSD files |
CopyLayerStyles.jsx | Copies layer effects from one layer to selected others | Applying consistent styling across multiple elements |
DeleteEmptyLayers.jsx | Finds and removes empty or fully transparent layers | Reducing file size and cleaning up layer panels |
DistributeLayersEvenly.jsx | Spaces layers evenly across the canvas horizontally or vertically | Creating evenly spaced layout compositions |
DuplicateLayerStructure.jsx | Duplicates the group/layer hierarchy without pixel content | Creating template structures for new projects |
DuplicateToAllOpenDocs.jsx | Copies the active layer to all other open documents | Distributing watermarks or logos across multiple files |
ExportLayersToFiles.jsx | Exports each layer as a separate image file | Extracting assets from layered compositions |
FindSelectLayers.jsx | Searches layers by name, type, or blend mode | Finding specific layers in complex documents |
FlattenSelectedGroups.jsx | Flattens specific layer groups while preserving others | Selective flattening to reduce complexity |
LayerVisibilityManager.jsx | Toggle, solo, and manage layer visibility states | Quickly isolating layers for review or export |
RandomizeLayerOrder.jsx | Shuffles the stacking order of layers randomly | Creating randomised compositions and collages |
SortLayers.jsx | Sorts layers alphabetically, by type, or by size | Maintaining consistent layer ordering conventions |
Text & Typography
11 scripts
Text editing, formatting, extraction, and typographic manipulation tools.
| Script | Description | Use Case |
|---|---|---|
AddTextWatermarkLayer.jsx | Creates a text watermark layer with positioning and opacity | Adding copyright or draft notices to documents |
ChangeAllFonts.jsx | Changes all text layers to a new font in one click | Brand font updates across an entire design |
ConvertPointToParagraph.jsx | Converts between point text and paragraph (area) text | Reformatting text for responsive or print layouts |
ExportTextToCSV.jsx | Exports all text layer contents and styles to a CSV file | Content extraction for translation or review |
FindReplaceText.jsx | Find and replace text across all text layers | Batch updating dates, names, or terms |
ImportTextFromCSV.jsx | Updates text layers with content from a CSV file | Data-driven design and personalisation |
LoremIpsumGenerator.jsx | Generates placeholder text layers of various lengths | Filling mockups and wireframes with dummy text |
ScaleTextToFit.jsx | Auto-scales text to fit within specified pixel bounds | Fitting headlines and labels to fixed-size containers |
TextOutlineCreator.jsx | Creates outlined/stroked text effects as separate layers | Adding outline effects for titles and headings |
TextStyleCopier.jsx | Copies font, size, colour, and style from one text layer to all others | Enforcing consistent typography across a document |
TextStyleReport.jsx | Generates a report of all text styles used in the document | Typography auditing and style guide documentation |
Export & Format
11 scripts
Specialised export workflows, format conversions, and asset generation.
| Script | Description | Use Case |
|---|---|---|
AnimatedGIFFromLayers.jsx | Creates an animated GIF using layers as frames | Quick animation from layered compositions |
ContactSheetCreator.jsx | Generates a contact sheet/thumbnail grid from a folder | Photo cataloguing and client review sheets |
ExportDocumentMetadata.jsx | Exports EXIF/IPTC metadata to CSV for cataloguing | Asset management and archival documentation |
ExportLayerComps.jsx | Exports each Layer Comp as a separate image file | Presenting design variations to clients |
ExportWithBackgroundVariants.jsx | Exports document with different background colours | Generating assets for light/dark themes |
IconSetGenerator.jsx | Creates icon sets at multiple sizes (favicon, iOS, Android) | App icon generation for all platforms |
LayerCompExporter.jsx | Exports layer comps with naming and format options | Automated comp export for presentations |
MultiResolutionExport.jsx | Exports at 1x, 2x, 3x for responsive/retina design | Multi-resolution asset pipelines for web and mobile |
PDFExportOptions.jsx | Exports to PDF with quality and compatibility settings | Print-ready or screen-optimised PDF generation |
SaveForWebPresets.jsx | One-click save with optimised web presets | Quick web-optimised export without dialog navigation |
SpriteSheetGenerator.jsx | Combines layers into a CSS sprite sheet with coordinates | Game development and web sprite generation |
Colour & Adjustment
10 scripts
Colour correction, profile conversion, and creative colour effects.
| Script | Description | Use Case |
|---|---|---|
BatchAutoLevels.jsx | Applies Auto Levels, Auto Contrast, and Auto Colour to a folder | Quick tonal correction for event photography |
BatchColorProfileConvert.jsx | Converts colour profiles (sRGB, Adobe RGB, CMYK profiles) | Print/web workflow transitions |
CMYKSafetyChecker.jsx | Highlights out-of-gamut colours that may not print correctly | Pre-press colour verification |
ChannelMixerPresets.jsx | Creative presets: B&W, vintage, cross-process, cinematic teal & orange | One-click creative colour grading |
ColorPaletteExtractor.jsx | Extracts dominant colours and creates a swatch layer | Generating colour palettes from photographs |
HarmonizeColors.jsx | Applies colour grading for unified warm, cool, or vintage looks | Unifying colour across mixed-source image sets |
InvertColorsSelective.jsx | Inverts individual R/G/B channels selectively | Creative effects and channel-specific corrections |
ReplaceColorAcrossLayers.jsx | Replaces a specific colour with another across all layers | Brand colour updates in multi-layer designs |
SplitToningAutomation.jsx | Adds split toning with different colours for highlights and shadows | Adding mood and style to photography |
WhiteBalanceCorrection.jsx | Adjusts white balance by temperature presets or custom values | Correcting colour casts from mixed lighting |
Selection & Masking
8 scripts
Selection creation, modification, and masking tools for precise editing.
| Script | Description | Use Case |
|---|---|---|
ChannelBasedSelection.jsx | Creates luminosity masks and channel-based selections | Advanced compositing and targeted adjustments |
CreateMaskFromSelection.jsx | Creates layer masks, alpha channels, or quick masks from selection | Non-destructive masking workflows |
ExpandFeatherRefine.jsx | All-in-one selection modification: expand, contract, feather, smooth | Refining selections without multiple menu trips |
MarchingAntsToPath.jsx | Converts selection to a work path or clipping path | Creating vector paths from pixel selections |
PathToSelectionConverter.jsx | Converts paths to selections with feathering and operation options | Using vector paths for precise pixel selection |
SelectByColorRange.jsx | Colour-range selection with adjustable fuzziness | Isolating specific colours for editing or removal |
SelectSimilarLayers.jsx | Finds layers matching type, blend mode, opacity, or name pattern | Bulk operations on layers with similar properties |
SelectionFromTransparency.jsx | Creates selection from a layer's transparency | Generating selections from existing artwork edges |
Document & Canvas
9 scripts
Document setup, canvas manipulation, and layout tools.
| Script | Description | Use Case |
|---|---|---|
AddGuideGrid.jsx | Creates column/row grids with gutters, margins, rule of thirds, and golden ratio | Layout design with professional grid systems |
CanvasResizeWithOptions.jsx | Resizes canvas with anchor position, fill colour, and relative sizing | Precise canvas adjustments for print or web |
CropToAspectRatio.jsx | Crops to standard ratios (1:1, 16:9, 3:2, 4:5, and more) | Preparing images for social media or video formats |
DuplicateAndFlatten.jsx | Quick flattened duplicate of the current document | Creating a flat preview without affecting the original |
NewDocumentFromPreset.jsx | Creates documents from web, print, social media, and mobile presets | Starting projects with correct dimensions and DPI |
PrintReadyWithBleed.jsx | Sets up bleed area, trim marks, and safety zone with visual guides | Print preparation for professional output |
RotateStraighten.jsx | Rotates canvas by presets or custom angles with auto-crop | Straightening crooked scans and photos |
SplitDocumentIntoTiles.jsx | Splits large images into a grid of smaller tile images | Printing large format or creating image maps |
TrimTransparentPixels.jsx | Trims transparent edges with optional padding | Cleaning up rendered assets for tight bounding boxes |
Smart Objects
6 scripts
Smart Object management, replacement, and manipulation tools.
| Script | Description | Use Case |
|---|---|---|
CreateSmartObjectFromLayers.jsx | Converts layers or groups into a Smart Object | Non-destructive editing and reusable components |
EditSmartObjectInPlace.jsx | Opens Smart Object contents for editing with a guided workflow | Quick Smart Object editing without manual navigation |
MockupGenerator.jsx | Creates device mockups (phone, laptop, tablet) with design placement | Presenting designs in realistic device contexts |
RasterizeAllSmartObjects.jsx | Rasterizes all Smart Objects to reduce file complexity | Preparing files for delivery or reducing file size |
ReplaceSmartObjectContent.jsx | Batch replaces Smart Object content for mockup templates | Generating multiple mockup variations automatically |
SmartObjectReport.jsx | Lists all Smart Objects with dimensions, position, and properties | Auditing Smart Object usage in complex documents |
Retouching & Filters
7 scripts
Photo retouching workflows, sharpening, noise reduction, and creative filter effects.
| Script | Description | Use Case |
|---|---|---|
BatchNoiseReduction.jsx | Applies Dust & Scratches or Median noise reduction to a folder | Cleaning up high-ISO or scanned images |
BatchSharpenForWeb.jsx | Sharpens images with web-optimised Unsharp Mask or High Pass | Output sharpening for web publication |
DodgeBurnSetup.jsx | Creates non-destructive 50% grey dodge & burn layers | Professional retouching layer setup |
FrequencySeparationSetup.jsx | Sets up low/high frequency layers for skin retouching | Separating colour/tone from texture for precision editing |
HDRToneMapping.jsx | Simulates HDR tone mapping with multiple blend mode layers | Adding dynamic range to flat or single-exposure images |
SkinRetouchScaffold.jsx | Creates a complete retouching layer stack (healing, D&B, colour, sharpen) | Professional portrait retouching workflow setup |
VignetteEffect.jsx | Adds customisable vignette (elliptical, circular, rectangular) | Drawing attention to the centre of an image |
Utility
12 scripts
General-purpose tools, diagnostics, and productivity scripts.
| Script | Description | Use Case |
|---|---|---|
BatchFileRenamer.jsx | Renames image files with sequential numbering and date stamps | Organising photo libraries and asset folders |
BatchResolutionChanger.jsx | Changes DPI with or without resampling | Switching between web (72 ppi) and print (300 ppi) |
CloseAllDocuments.jsx | Closes all open documents with save/discard options | Quick session cleanup after batch editing |
CreateColorSwatches.jsx | Creates a visual swatch document from a list of hex colours | Design documentation and style guide creation |
DocumentInfoReporter.jsx | Shows dimensions, colour mode, layers, channels, and profile info | Quick document diagnostics and pre-flight checks |
FindReplaceInLayers.jsx | Find/replace in layer names with bulk rename options | Organising and standardising layer naming conventions |
FlattenAndSaveAs.jsx | Flattens the document and saves a copy in any format | Preserving the layered original while saving flat copies |
HistogramAnalyzer.jsx | Analyses histogram: mean, median, clipping, and exposure assessment | Evaluating exposure and tonal range before editing |
LayerCounter.jsx | Quick layer statistics by type, blend mode, and visibility | Understanding document complexity at a glance |
PreferencesBackupRestore.jsx | Backs up and restores Photoshop preference settings | Preserving workspace setup across reinstalls |
QuickExportCurrentLayer.jsx | One-click export of the active layer as a trimmed PNG | Rapid asset extraction during design work |
StampVisibleToNewLayer.jsx | Merges all visible layers to a new layer (Stamp Visible) | Creating a composite snapshot without flattening |
Common Workflows
Combine scripts for end-to-end production workflows.
Photo Retouching
- Run
FrequencySeparationSetup.jsxto separate texture from colour - Run
DodgeBurnSetup.jsxto create D&B layers - Run
SkinRetouchScaffold.jsxfor a complete layer stack - Run
BatchSharpenForWeb.jsxfor output sharpening
Web Asset Pipeline
- Run
MultiResolutionExport.jsxfor @1x/@2x/@3x assets - Run
SaveForWebPresets.jsxfor optimised web images - Run
SpriteSheetGenerator.jsxto create CSS sprites - Run
IconSetGenerator.jsxfor multi-platform icons
Print Preparation
- Run
BatchColorProfileConvert.jsxto convert to CMYK - Run
CMYKSafetyChecker.jsxto verify colour gamut - Run
PrintReadyWithBleed.jsxto add bleed and trim marks - Run
BatchResolutionChanger.jsxto set 300 ppi - Run
PDFExportOptions.jsxfor final output
Batch Processing
- Run
BatchResize.jsxto standardise dimensions - Run
BatchAutoLevels.jsxfor auto tonal correction - Run
BatchWatermark.jsxto add copyright notices - Run
BatchConvertFormat.jsxfor final format
Compatibility
Tested and supported across all modern Photoshop versions on Mac and Windows.
Platform: Mac OS X 10.12+ / Windows 10/11
Technical Notes
- Scripts use ExtendScript (.jsx), Adobe's JavaScript implementation for Creative Suite/Cloud applications.
- All scripts are wrapped in IIFEs
(function() { ... })()to avoid polluting the global scope. - Ruler units and dialog modes are saved and restored to preserve workspace preferences.
- Action Manager descriptors are used for operations not exposed in Photoshop's DOM API (layer masks, Smart Object editing, layer effects).
- File I/O operations use
FileandFolderobjects from ExtendScript's cross-platform API.
Download the Collection
Get all 100 Photoshop scripts in a single download. Free to use, modify, and distribute.