Kit Mockup PSD Templates.

How to set up a Photoshop file so it syncs cleanly into PerkUp's mockup editor. Get the layer names right and the upload succeeds; get them wrong and the importer hands back a list of exactly what to fix.

The five rules

  1. One PSD per product. Every color variant and every view (front, back, sleeve) lives in the same file as separate layers.
  2. The PSD does not need to be 300 DPI. 72 DPI is usually right. What matters is that each print area's physical inches are correct.
  3. Layer names are the contract. The importer reads color:white, front:background:white, front:printarea:dtf, front:bleed:dtf. Names are case-insensitive; underscores become spaces (chili_red → "Chili Red").
  4. Every color needs a color: swatch with a solid fill. Every view needs a :background: per color; every printable view needs a :printarea:.
  5. Folders don't matter. Organize visually however you like — only layer names are read.

DPI is a scale factor, not a quality setting

Print files are rendered at 300 DPI by our system after upload. The PSD only needs to encode the correct physical inches of each print area — pixel count is secondary. The math:

pixels = physical_inches × file_DPI

A 13" × 16" hoodie front at 72 DPI is just 936 × 1,152 px — small, fast, and identical accuracy to a 300-DPI file. We read the actual DPI from the PSD binary, convert each print area to inches, then render artwork at physical_inches × 300 DPI. Low PSD DPI does not degrade print quality — customers print their own vector/raster artwork, and raster uploads are checked at ≥300 DPI in the editor.

SettingWhat it should be
Canvas DPI72 DPI default; up to ~100 DPI is fine
Color modeRGB (8-bit) — not CMYK
File format.psd.psb is not supported
File sizeUnder ~100 MB (lower DPI if bigger)

Layer naming convention

Every layer that drives a mockup uses colon-separated names, lowercase, with underscores converting to spaces at display time.

PatternPurposeExample
color:<name>Color variant — must have a solid fillcolor:chili_red
<view>:background:<color>Product photo per view + colorfront:background:white
<view>:printarea:<technique>Where the customer's artwork goesfront:printarea:dtf
<view>:printareaShorthand for printarea:dtffront:printarea
<view>:bleed:<technique>Optional bleed region (needs matching print area)front:bleed:dtf

Views can be anything (front, back, left_sleeve, inside_collar). Techniques are a fixed list — anything else is ignored with a warning:

dtg · embroidery · embroidery_full_color · dtf · uv · uv_360
sublimation · digital · cut_and_sew · screen_printing
laser_engraving · trucolor

Minimal valid PSD

A two-color t-shirt with front and back DTF print areas — 8 layers total:

📁 Colors
   color:white
   color:black
📁 Front
   front:background:white
   front:background:black
   front:printarea:dtf
📁 Back
   back:background:white
   back:background:black
   back:printarea:dtf

Adding a technique means one more printarea layer; adding a color means one color: swatch plus a :background: layer for every view.

Full spec for engineers. The authoritative version, including every validation error and where it's enforced in the codebase, lives at docs/mockup-templates/psd-spec.md in the monorepo. The importer is in functions/src/catalogs/imgly/psd/; the technique enum is the source of truth in proto/canvas/imgly.proto → PrintTechnique.

Source: docs/mockup-templates/psd-spec.md (PerkUp monorepo). Enforced by functions/src/catalogs/imgly/psd/. Last verified 2026-06-07.