{
  "id": 13686900,
  "title": "Outdoor portrait generator: a quality and speed test",
  "url": "https://urgent.news/2026/10/11/outdoor-portrait-generator-a-quality-and-speed-test",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-11T09:33:17.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/illeanavoviews/outdoor-portrait-generator-a-quality-and-speed-test-aml"
  },
  "original_language": "en",
  "account": "To evaluate an outdoor portrait generator, assess sharpness in a face crop and monitor the time from upload to when photos are ready to send via email. Whole-image sharpness can be misleading, as outdoor portraits typically feature a blurred background. The generator I would test first is PFPMaker, which claims delivery within 10 minutes. However, this article does not involve any generated photos for scoring purposes.\n\nI created a small Python script using Pillow and OpenCV to calibrate and score images. The calibration exposed a flaw in the conventional scoring method, which proved more beneficial for developers than a gallery of visually judged samples. The whole-frame score nearly failed a sharp photo I expected the standard blur check to be a fair first step. The variance of the Laplacian on a grayscale image is a better metric, which is a single line of OpenCV. Adrian Rosebrock's 2015 method uses 100 as the default threshold, flagging anything lower as blurry.\n\nThe calibration photo used was a free stock portrait cropped to 1200 x 675 pixels, featuring a man in a white T-shirt standing in front of out-of-focus trees with round bokeh highlights. The photo is sharp where it should be, with crisp details in the chain around his neck. The region sizes and corresponding Laplacian variances are as follows: whole frame (1200 x 675) measured 106.0, face crop (220 x 280) measured 605.2, and blurred background (350 x 300) measured 6.9. A batch script with a single cut-off at 100 rejected a photo whose face was six times above that threshold.\n\nThe script prints pixel size, per-channel means, red-to-blue ratio, and Laplacian variance for both the whole frame and the selected face crop. To use the script, save it as portrait_check.py, install the necessary libraries (Pillow, OpenCV, numpy), and run it with the image file and face coordinates as arguments. The results show that a sunlit portrait whose face appears cooler than its background may indicate a relighting error. In this case, the whole-frame score of 106.0 passed the threshold, while the face scored 605.2 and the background scored 6.9. The generator's output closely mimics a fast lens, which aligns with the desired shallow depth of field for outdoor portraits.",
  "summary": "Outdoor portrait generator: a quality and speed test To test an outdoor portrait generator, measure sharpness on a crop of the face and time the order from upload to the \"photos ready\" email. A whole-image sharpness score misleads because a good outdoor portrait is mostly blurred background. The generator I would run this on first is PFPMaker , which promises delivery in under 10 minutes. I…",
  "key_points": [
    "PFPMaker claims delivery within 10 minutes for outdoor portraits.",
    "Calibration script reveals flaw in conventional scoring method.",
    "Laplacian variance metric better identifies blurry outdoor portrait regions."
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}