{
  "name": "LayerPSD text pass benchmark",
  "description": "Each design is read before the split; every line of regular-size text is cut out onto its own layer with its words, size, colour and effects, and written into the PSD as Photoshop type. A line counts as lifted when it comes out on its own layer and its text matches the ground truth (case, spaces and dash variants ignored). Headlines taller than 8% of the image stay in the picture by design and are not scored here.",
  "date": "2026-10-05",
  "runs": 2,
  "designs": 30,
  "linesPerRun": 206,
  "displayLinesPerRun": 28,
  "license": "CC BY 4.0",
  "method": "https://layerpsd.com/editable-text-psd",
  "metrics": {
    "linesLifted": "Ground-truth lines that came out on their own layer with the text read correctly (summed over runs).",
    "characterAccuracy": "Character accuracy of the lifted lines against the ground truth.",
    "displayLinesKept": "Headlines taller than 8% of the image correctly left in the picture.",
    "liftedLinesStillReadable": "Lifted lines whose old pixels can still be read in the cleaned image (cut not complete).",
    "extraLines": "Lines lifted that are not in the ground truth."
  },
  "ownKey": {
    "model": "gemini-3.5-flash, thinking off (flash-lite joins after 25 s)",
    "linesLifted": 409,
    "linesTotal": 412,
    "characterAccuracy": 0.999,
    "displayLinesKept": 54,
    "displayLinesTotal": 56,
    "liftedLinesStillReadable": 26,
    "extraLines": 4,
    "readsFailed": 0,
    "reads": 60
  },
  "freeKey": {
    "model": "gemini-3.5-flash-lite",
    "linesLifted": 400,
    "linesTotal": 412,
    "characterAccuracy": 0.998,
    "displayLinesKept": 55,
    "displayLinesTotal": 56,
    "liftedLinesStillReadable": 9,
    "extraLines": 8,
    "readsFailed": 0,
    "reads": 60
  },
  "categories": [
    {
      "category": "posters and flyers",
      "designs": 8,
      "linesPerRun": 33,
      "ownKey": {
        "lifted": 66,
        "of": 66
      },
      "freeKey": {
        "lifted": 63,
        "of": 66
      }
    },
    {
      "category": "social graphics and banners",
      "designs": 9,
      "linesPerRun": 61,
      "ownKey": {
        "lifted": 121,
        "of": 122
      },
      "freeKey": {
        "lifted": 117,
        "of": 122
      }
    },
    {
      "category": "app and game screens",
      "designs": 6,
      "linesPerRun": 85,
      "ownKey": {
        "lifted": 168,
        "of": 170
      },
      "freeKey": {
        "lifted": 166,
        "of": 170
      }
    },
    {
      "category": "slides, menus and infographics",
      "designs": 4,
      "linesPerRun": 27,
      "ownKey": {
        "lifted": 54,
        "of": 54
      },
      "freeKey": {
        "lifted": 54,
        "of": 54
      }
    },
    {
      "category": "photos and art without text",
      "designs": 3,
      "linesPerRun": 0,
      "ownKey": {
        "lifted": 0,
        "of": 0
      },
      "freeKey": {
        "lifted": 0,
        "of": 0
      }
    }
  ],
  "cases": [
    {
      "id": "game-ui",
      "category": "app and game screens",
      "lines": 11,
      "displayLines": 0,
      "source": "user report (image not published)",
      "ownKey": {
        "lifted": 22,
        "of": 22
      },
      "freeKey": {
        "lifted": 22,
        "of": 22
      }
    },
    {
      "id": "social-cover",
      "category": "social graphics and banners",
      "lines": 28,
      "displayLines": 4,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 55,
        "of": 56
      },
      "freeKey": {
        "lifted": 55,
        "of": 56
      }
    },
    {
      "id": "cafe-flyer",
      "category": "posters and flyers",
      "lines": 4,
      "displayLines": 2,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 8,
        "of": 8
      },
      "freeKey": {
        "lifted": 8,
        "of": 8
      }
    },
    {
      "id": "bloom",
      "category": "posters and flyers",
      "lines": 3,
      "displayLines": 1,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 6,
        "of": 6
      },
      "freeKey": {
        "lifted": 3,
        "of": 6
      }
    },
    {
      "id": "festival-poster",
      "category": "posters and flyers",
      "lines": 7,
      "displayLines": 1,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 14,
        "of": 14
      },
      "freeKey": {
        "lifted": 14,
        "of": 14
      }
    },
    {
      "id": "product-banner",
      "category": "social graphics and banners",
      "lines": 5,
      "displayLines": 0,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 10,
        "of": 10
      },
      "freeKey": {
        "lifted": 8,
        "of": 10
      }
    },
    {
      "id": "poster",
      "category": "posters and flyers",
      "lines": 2,
      "displayLines": 1,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 4,
        "of": 4
      },
      "freeKey": {
        "lifted": 4,
        "of": 4
      }
    },
    {
      "id": "desk-flatlay",
      "category": "photos and art without text",
      "lines": 0,
      "displayLines": 0,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 0,
        "of": 0
      },
      "freeKey": {
        "lifted": 0,
        "of": 0
      }
    },
    {
      "id": "dragon-art",
      "category": "photos and art without text",
      "lines": 0,
      "displayLines": 0,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 0,
        "of": 0
      },
      "freeKey": {
        "lifted": 0,
        "of": 0
      }
    },
    {
      "id": "sneaker-photo",
      "category": "photos and art without text",
      "lines": 0,
      "displayLines": 0,
      "source": "LayerPSD example",
      "ownKey": {
        "lifted": 0,
        "of": 0
      },
      "freeKey": {
        "lifted": 0,
        "of": 0
      }
    },
    {
      "id": "insta-bakery",
      "category": "social graphics and banners",
      "lines": 6,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 12,
        "of": 12
      },
      "freeKey": {
        "lifted": 12,
        "of": 12
      }
    },
    {
      "id": "insta-quote",
      "category": "social graphics and banners",
      "lines": 4,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 8,
        "of": 8
      },
      "freeKey": {
        "lifted": 8,
        "of": 8
      }
    },
    {
      "id": "insta-sale",
      "category": "social graphics and banners",
      "lines": 3,
      "displayLines": 2,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 6,
        "of": 6
      },
      "freeKey": {
        "lifted": 6,
        "of": 6
      }
    },
    {
      "id": "flyer-yoga",
      "category": "posters and flyers",
      "lines": 7,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 14,
        "of": 14
      },
      "freeKey": {
        "lifted": 14,
        "of": 14
      }
    },
    {
      "id": "flyer-garage",
      "category": "posters and flyers",
      "lines": 4,
      "displayLines": 2,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 8,
        "of": 8
      },
      "freeKey": {
        "lifted": 8,
        "of": 8
      }
    },
    {
      "id": "flyer-concert",
      "category": "posters and flyers",
      "lines": 3,
      "displayLines": 3,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 6,
        "of": 6
      },
      "freeKey": {
        "lifted": 6,
        "of": 6
      }
    },
    {
      "id": "banner-shoes",
      "category": "social graphics and banners",
      "lines": 6,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 12,
        "of": 12
      },
      "freeKey": {
        "lifted": 12,
        "of": 12
      }
    },
    {
      "id": "banner-skincare",
      "category": "social graphics and banners",
      "lines": 5,
      "displayLines": 2,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 10,
        "of": 10
      },
      "freeKey": {
        "lifted": 10,
        "of": 10
      }
    },
    {
      "id": "banner-electronics",
      "category": "social graphics and banners",
      "lines": 4,
      "displayLines": 1,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 8,
        "of": 8
      },
      "freeKey": {
        "lifted": 6,
        "of": 8
      }
    },
    {
      "id": "app-banking",
      "category": "app and game screens",
      "lines": 23,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 46,
        "of": 46
      },
      "freeKey": {
        "lifted": 45,
        "of": 46
      }
    },
    {
      "id": "app-fitness",
      "category": "app and game screens",
      "lines": 14,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 28,
        "of": 28
      },
      "freeKey": {
        "lifted": 28,
        "of": 28
      }
    },
    {
      "id": "app-dashboard",
      "category": "app and game screens",
      "lines": 21,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 42,
        "of": 42
      },
      "freeKey": {
        "lifted": 41,
        "of": 42
      }
    },
    {
      "id": "game-rpg",
      "category": "app and game screens",
      "lines": 10,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 20,
        "of": 20
      },
      "freeKey": {
        "lifted": 20,
        "of": 20
      }
    },
    {
      "id": "game-puzzle",
      "category": "app and game screens",
      "lines": 6,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 10,
        "of": 12
      },
      "freeKey": {
        "lifted": 10,
        "of": 12
      }
    },
    {
      "id": "slide-roadmap",
      "category": "slides, menus and infographics",
      "lines": 11,
      "displayLines": 0,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 22,
        "of": 22
      },
      "freeKey": {
        "lifted": 22,
        "of": 22
      }
    },
    {
      "id": "slide-stats",
      "category": "slides, menus and infographics",
      "lines": 4,
      "displayLines": 3,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 8,
        "of": 8
      },
      "freeKey": {
        "lifted": 8,
        "of": 8
      }
    },
    {
      "id": "menu-cafe",
      "category": "slides, menus and infographics",
      "lines": 6,
      "displayLines": 1,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 12,
        "of": 12
      },
      "freeKey": {
        "lifted": 12,
        "of": 12
      }
    },
    {
      "id": "thumb-youtube",
      "category": "social graphics and banners",
      "lines": 0,
      "displayLines": 2,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 0,
        "of": 0
      },
      "freeKey": {
        "lifted": 0,
        "of": 0
      }
    },
    {
      "id": "infographic-water",
      "category": "slides, menus and infographics",
      "lines": 6,
      "displayLines": 2,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 12,
        "of": 12
      },
      "freeKey": {
        "lifted": 12,
        "of": 12
      }
    },
    {
      "id": "poster-jp",
      "category": "posters and flyers",
      "lines": 3,
      "displayLines": 1,
      "source": "generated with GPT Image 2",
      "ownKey": {
        "lifted": 6,
        "of": 6
      },
      "freeKey": {
        "lifted": 6,
        "of": 6
      }
    }
  ]
}
