Data-driven graphics make it possible to produce multiple versions of an image quickly and accurately for print or web projects. For example, you can produce 100 versions of a web banner with different text and images, all based on a template design.

Follow these general steps to create graphics from templates and data sets:

Create the base graphic to use as the template.

Use layers to separate the elements that you want to change in the graphic.

Define variables in the graphic.

Variables specify the parts of the image that change. (See Define variables.)

Create or import the data sets.

You can create the data sets in the template, or import them from a text file. (See Define a data set and Creating data sets in external files.)

Preview the document with each data set.

To see how your final graphics will look, you can preview before you export all the files. (See Preview or apply a data set.)

Generate your graphics by exporting them with the data.

You can export them as Photoshop (PSD) files. (See Generate graphics using data sets.)

Photoshop Different versions of an image using variables
Creating different versions of an image using variables

A. Source file template B. User defines layers as variables. C. Different versions of the image can be created, each with a different variable data set. 

Define variables

You use variables to define which elements in a template change. You can define three types of variables. Visibility variables show or hide the content of a layer. Pixel Replacement variables replace the pixels in the layer with pixels from another image file. Text Replacement variables replace a string of text in a type layer.


GoLive recognizes all text and visibility variables, but not Pixel Replacement variables.

Photoshop define variables
Two versions of an image based on the same template

A. Visibility variable B. Pixel Replacement variable C. Text Replacement variable 

You cannot define variables for the Background layer.

  1. Choose Image > Variables > Define.
  2. Select a layer from the Layer pop‑up menu that contains the content you want to define as a variable.
  3. Select one or more types of variables:


    Shows or hides the content of the layer.

    Pixel Replacement

    Replaces the pixels in the layer with pixels from another image file.

    Text Replacement

    Replaces a string of text in a type layer.

  4. Do one of the following:
    • Choose Name and enter a name for the variable. Variable names must begin with a letter, underscore, or colon and cannot contain spaces or special characters (except for periods, hyphens, underscores, and colons).

    • Choose an existing variable from the Name pop‑up menu to link this layer to. Layers linked to the same variable are shown next to the Name menu, along with the link icon.

  5. For Pixel Replacement variables, set the following options.
    • Choose a method for scaling the replacement image: Fit scales the image so that it fits in the bounding box (which may leave parts of the bounding box empty), Fill scales the image so that it fills the bounding box entirely (which may cause the image to extend beyond the bounding box), As Is applies no scaling to the image, and Conform scales the image non-proportionally so that it fits in the bounding box.

    • Click a handle on the alignment icon  to choose an alignment for placing the image inside the bounding box. (This option is not available for Conform.)

    • Select Clip To Bounding Box to clip areas of the image that do not fit in the bounding box. This option is available only when the Fill or As Is replacement method is selected. (This option is not available for Conform.)

  6. To define variables for another layer, choose a layer from the Layer pop‑up menu. An asterisk appears next to the name of a layer that contains variables. You can use the navigation arrows to move between layers.
  7. Click OK.

Rename a variable

  1. Choose Image > Variables > Define.
  2. Choose the layer that contains the variable from the Layer pop‑up menu.
  3. To rename the variable, enter a name in the Name text box. Variable names must begin with a letter, underscore, or colon and cannot contain spaces or special characters (except for periods, hyphens, underscores, and colons).
  4. To remove the variable, deselect it.

Define a data set

A data set is a collection of variables and associated data. You define a data set for each version of the graphic that you want to generate.

  1. Do one of the following:
    • Choose Image > Variables > Data Sets.

    • If the Variables dialog box is open, choose Data Sets from the pop‑up menu at the top of the dialog box, or click Next.


    You must define at least one variable before you can edit the default data set.

  2. Click the New Data Set button .
  3. Select a variable from the Name pop‑up menu or the list at the bottom of the dialog box.
  4. Edit the variable data:
    • For Visibility variables , select Visible to show the layer’s content or Invisible to hide the layer’s content.

    • For Pixel Replacement variables , click Select File and select a replacement image file. Click Do Not Replace before the data set is applied to leave the layer in its current state.


    Do Not Replace does not reset the file to its original state if another replacement has been applied previously.

    • For Text Replacement variables , enter a text string in the Value text box.
  5. Define additional data sets for each version of the graphic you want to generate.

You can edit, rename, or delete the data set later by first choosing it from the Data Set pop‑up menu and editing its options. Use the arrow icons to move between data sets. Click the Delete icon to delete a data set.

Preview or apply a data set

You can apply a data set’s contents to the base image while leaving all the variables and data sets intact. This changes the look of the PSD document to contain the values of the data set. You can also preview how each version of your graphic will look with each data set.


Applying a data set overwrites your original document.

  • Choose Image > Apply Data Set. Select the data set from the list and preview the image in the document window. To apply the data set, click Apply. Click cancel if you are previewing and don’t want to change the base image.

    You can also apply and preview a data set in the Data Set page of the Variables dialog box.

Generate graphics using data sets

After you define variables and one or more data sets, you can output, in batch mode, images using the data set values. You can output images as PSD files.

  1. Choose File > Export > Data Sets As Files.
  2. Enter a base name for all files generated. You may create your own file-naming scheme if you want.
  3. Click the Select Folder button to select a destination directory for your files.
  4. Choose data sets to export.
  5. Click OK.

Creating data sets in external files

You can quickly create a large number of data sets by creating an external text file that contains all the variable information and loading that file into a PSD document containing variables. One method is to enter your data into a text file or Microsoft Excel spreadsheet and then export it to a tab or comma-separated file.

The syntax of the external text file is as follows (where each line that starts with “Variable” or “Value” is an entire line by itself in your file):

VariableName1<sep>VariableName2<sep> <sep>VariableNameN <nl> 

All the variable names are listed on the first line, in the order that the values are given in subsequent lines. Each subsequent line represents one data set, with the values for each variable given.


To create multiple lines of text in a single line of text in a data set, enclose the text in double quotes and insert hard returns in the tab- or comma-separated file where you want the breaks to occur.  

External text file syntax elements


Either a comma-separated (CSV) or a tab (tab-delimited) file that separates each variable name or value.


A newline character that ends each data set and can be a line feed, carriage return, or both.

“true” and “false”

Allowed values for a visibility variable.


Spaces around the delimiter are removed when parsing the file; between words in a value string (e.g., two of a kind) spaces are maintained and leading and trailing spaces are maintained if enclosed in double quotes (e.g., “one kind ”).

Double quotes

Can be part of a value if preceded by another double quote (e.g., ““B”” would be “B” in the data set).

If <sep> or <nl> is part of the variable value, then the entire value must be enclosed in double quotes.

All variables defined in the PSD document must be defined in the text file. An error is displayed if the number of variables in the text file does not match the number in the document.

Example data set:

Using a template for flowers that holds variables for tulip and sunflower, you can set up a text file that looks like this:

{contents of FlowerShow.txt} 
Variable 1, Variable 2, Variable 3 
true, TULIP, c:\My Documents\tulip.jpg 
false, SUNFLOWER, c:\My Documents\sunflower.jpg 
false, CALLA LILY, c:\My Documents\calla.jpg 
true, VIOLET, c:\My Documents\violet.jpg


You can use a relative path for the image location if the text file is in the same folder as the image file. For example, the last item in the example can be: true, VIOLET, violet.jpg.

Import a data set

  1. Do one of the following:
    • Choose File > Import > Variable Data Sets.

    • Choose Image > Variables > Data Sets and click the Import button.

  2. Navigate to the text file to import.
  3. Set up your import options.

    Use First Column For Data Set Names

    Names each data set using the content of the first column of the text file (the values for the first variable listed). Otherwise, the data sets are named “Data Set 1, Data Set 2, and so on.”

    Replace Existing Data Sets

    Deletes any existing data sets before importing.

  4. Set the encoding of the text file or leave the setting Automatic.
  5. Click OK.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy