{
  "schemaVersion": 2,
  "snapshotDate": "2026-10-04",
  "source": "Published prompts, static catalog snapshot 079d7405 (read-only aggregate)",
  "corpus": {
    "publishedPrompts": 3698,
    "latestIngestedAt": "2026-09-10T02:55:03.800Z",
    "latestTweetCreatedAt": "2026-08-14T23:07:25.000Z"
  },
  "models": [
    {
      "key": "gpt-image-2",
      "label": "GPT Image 2",
      "prompts": 2094
    },
    {
      "key": "nanobanana-pro",
      "label": "Nano Banana Pro",
      "prompts": 465
    },
    {
      "key": "unknown",
      "label": "Unlabelled model",
      "prompts": 457
    },
    {
      "key": "nanobanana-2",
      "label": "Nano Banana 2",
      "prompts": 284
    },
    {
      "key": "midjourney",
      "label": "Midjourney",
      "prompts": 118
    },
    {
      "key": "nanobanana",
      "label": "Nano Banana",
      "prompts": 94
    },
    {
      "key": "seedream",
      "label": "Seedream",
      "prompts": 88
    },
    {
      "key": "seedance",
      "label": "Seedance",
      "prompts": 58
    },
    {
      "key": "gpt-image-1",
      "label": "GPT Image 1",
      "prompts": 39
    },
    {
      "key": "veo",
      "label": "Veo",
      "prompts": 1
    }
  ],
  "categories": [
    {
      "key": "portraits",
      "label": "Portraits",
      "prompts": 2081
    },
    {
      "key": "posters-visuals",
      "label": "Posters & visuals",
      "prompts": 1575
    },
    {
      "key": "illustration-3d",
      "label": "Illustration & 3D",
      "prompts": 1273
    },
    {
      "key": "ads-product",
      "label": "Ads & product",
      "prompts": 868
    },
    {
      "key": "prompt-templates",
      "label": "Prompt templates",
      "prompts": 467
    },
    {
      "key": "brand-logo",
      "label": "Brand & logo",
      "prompts": 374
    },
    {
      "key": "videos",
      "label": "Video",
      "prompts": 290
    },
    {
      "key": "wallpaper",
      "label": "Wallpaper",
      "prompts": 175
    },
    {
      "key": "ui-interfaces",
      "label": "UI & interfaces",
      "prompts": 65
    },
    {
      "key": "charts-infographics",
      "label": "Charts & infographics",
      "prompts": 63
    }
  ],
  "monthlyPublished": [
    {
      "month": "2023-10",
      "prompts": 1
    },
    {
      "month": "2025-04",
      "prompts": 3
    },
    {
      "month": "2025-05",
      "prompts": 1
    },
    {
      "month": "2025-07",
      "prompts": 4
    },
    {
      "month": "2025-08",
      "prompts": 1
    },
    {
      "month": "2025-09",
      "prompts": 3
    },
    {
      "month": "2025-10",
      "prompts": 1
    },
    {
      "month": "2025-11",
      "prompts": 7
    },
    {
      "month": "2025-12",
      "prompts": 40
    },
    {
      "month": "2026-01",
      "prompts": 144
    },
    {
      "month": "2026-02",
      "prompts": 113
    },
    {
      "month": "2026-03",
      "prompts": 59
    },
    {
      "month": "2026-04",
      "prompts": 88
    },
    {
      "month": "2026-05",
      "prompts": 184
    },
    {
      "month": "2026-06",
      "prompts": 1261
    },
    {
      "month": "2026-07",
      "prompts": 1214
    },
    {
      "month": "2026-08",
      "prompts": 107
    }
  ],
  "copyRate": null,
  "copyRateStatus": "unavailable — no copy event export was authorised for this snapshot",
  "method": [
    "Aggregated the 3,698 published rows of the static PicGens catalog snapshot 079d7405 dated 2026-10-04 with scripts/generate-prompt-trends.mjs (metrics prompt-stats-v1).",
    "Count rows by stored model label, existing category tag and source-post month; keep “unknown” as a visible bucket instead of inferring a model from prompt wording.",
    "Prompt-anatomy metrics (length, JSON, template slots, in-image text, aspect ratios, camera settings, script) are computed from prompt text inside the generator; only counts, medians and definitions are published.",
    "Per-model medians and shares are published only for models with at least 30 rows.",
    "Do not expose raw prompt contents, row identifiers, creator handles, private fields or per-row behaviour."
  ],
  "limitations": [
    "The latest ingested row is 2026-09-10 and the latest source-post date represented is 2026-08-14; this is a dated snapshot, not a live trend feed.",
    "The corpus is public creator posts PicGens indexes after screening (minimum likes at collection, a verified prompt, quality and takedown review); it is not a sample of all AI image generation and not model market share.",
    "Category tags are keyword-assigned and can overlap, so category totals are not expected to sum to the corpus total.",
    "467 of 3,698 rows carry no source-post timestamp (catalogued templates), so month and engagement figures cover 3,231 rows.",
    "Text detectors (JSON, template slots, in-image text, aspect ratios, camera settings) are documented pattern matches, not human review; expect a small error rate in both directions.",
    "Engagement counts are stored at the last stats refresh and skew towards posts that passed the collection likes floor."
  ],
  "temporalCoverage": "2023-10-01/2026-08-14",
  "promptStats": {
    "metricsVersion": "prompt-stats-v1",
    "minModelRows": 30,
    "promptRows": 3698,
    "length": {
      "medianChars": 1062,
      "meanChars": 1364.3,
      "p25Chars": 561,
      "p75Chars": 1793,
      "medianWords": 148,
      "meanWords": 188.1
    },
    "structuredJson": 164,
    "templateSlots": 910,
    "inImageText": 1441,
    "aspectRatioMention": 1110,
    "cameraSpec": 694,
    "cjkScript": 230,
    "aspectRatios": [
      {
        "key": "4:5",
        "label": "4:5",
        "prompts": 346
      },
      {
        "key": "9:16",
        "label": "9:16",
        "prompts": 346
      },
      {
        "key": "3:4",
        "label": "3:4",
        "prompts": 210
      },
      {
        "key": "1:1",
        "label": "1:1",
        "prompts": 99
      },
      {
        "key": "16:9",
        "label": "16:9",
        "prompts": 63
      },
      {
        "key": "2:3",
        "label": "2:3",
        "prompts": 56
      },
      {
        "key": "3:2",
        "label": "3:2",
        "prompts": 17
      },
      {
        "key": "4:3",
        "label": "4:3",
        "prompts": 8
      },
      {
        "key": "21:9",
        "label": "21:9",
        "prompts": 2
      },
      {
        "key": "2:1",
        "label": "2:1",
        "prompts": 2
      },
      {
        "key": "1:2",
        "label": "1:2",
        "prompts": 1
      },
      {
        "key": "9:21",
        "label": "9:21",
        "prompts": 1
      }
    ],
    "images": {
      "rowsWithDimensions": 3658,
      "portrait": 2678,
      "landscape": 550,
      "square": 430
    },
    "colors": {
      "rowsWithColorTags": 3666,
      "buckets": [
        {
          "key": "brown",
          "label": "Brown",
          "prompts": 1382
        },
        {
          "key": "orange",
          "label": "Orange",
          "prompts": 1065
        },
        {
          "key": "black",
          "label": "Black",
          "prompts": 851
        },
        {
          "key": "white",
          "label": "White",
          "prompts": 595
        },
        {
          "key": "blue",
          "label": "Blue",
          "prompts": 594
        },
        {
          "key": "gray",
          "label": "Gray",
          "prompts": 592
        },
        {
          "key": "red",
          "label": "Red",
          "prompts": 342
        },
        {
          "key": "pink",
          "label": "Pink",
          "prompts": 211
        },
        {
          "key": "yellow",
          "label": "Yellow",
          "prompts": 201
        },
        {
          "key": "green",
          "label": "Green",
          "prompts": 169
        },
        {
          "key": "cyan",
          "label": "Cyan",
          "prompts": 123
        },
        {
          "key": "purple",
          "label": "Purple",
          "prompts": 49
        }
      ]
    },
    "engagement": {
      "rows": 3231,
      "medianLikes": 104,
      "medianBookmarks": 45,
      "rowsWithViews": 3231,
      "medianViews": 5208
    },
    "byModel": [
      {
        "key": "gpt-image-2",
        "label": "GPT Image 2",
        "promptRows": 2094,
        "medianChars": 1224,
        "medianWords": 169,
        "structuredJson": 96,
        "templateSlots": 485,
        "inImageText": 999,
        "engagementRows": 1627,
        "medianLikes": 95,
        "medianBookmarks": 42
      },
      {
        "key": "nanobanana-pro",
        "label": "Nano Banana Pro",
        "promptRows": 465,
        "medianChars": 978,
        "medianWords": 135,
        "structuredJson": 49,
        "templateSlots": 135,
        "inImageText": 174,
        "engagementRows": 465,
        "medianLikes": 302,
        "medianBookmarks": 186
      },
      {
        "key": "unknown",
        "label": "Unlabelled model",
        "promptRows": 457,
        "medianChars": 645,
        "medianWords": 81,
        "structuredJson": 3,
        "templateSlots": 168,
        "inImageText": 111,
        "engagementRows": 457,
        "medianLikes": 102,
        "medianBookmarks": 53
      },
      {
        "key": "nanobanana-2",
        "label": "Nano Banana 2",
        "promptRows": 284,
        "medianChars": 1301,
        "medianWords": 195,
        "structuredJson": 7,
        "templateSlots": 60,
        "inImageText": 79,
        "engagementRows": 284,
        "medianLikes": 107,
        "medianBookmarks": 41
      },
      {
        "key": "midjourney",
        "label": "Midjourney",
        "promptRows": 118,
        "medianChars": 548,
        "medianWords": 73.5,
        "structuredJson": 0,
        "templateSlots": 23,
        "inImageText": 16,
        "engagementRows": 118,
        "medianLikes": 116,
        "medianBookmarks": 23.5
      },
      {
        "key": "nanobanana",
        "label": "Nano Banana",
        "promptRows": 94,
        "medianChars": 433.5,
        "medianWords": 67.5,
        "structuredJson": 4,
        "templateSlots": 14,
        "inImageText": 18,
        "engagementRows": 94,
        "medianLikes": 85.5,
        "medianBookmarks": 2
      },
      {
        "key": "seedream",
        "label": "Seedream",
        "promptRows": 88,
        "medianChars": 971,
        "medianWords": 134.5,
        "structuredJson": 0,
        "templateSlots": 14,
        "inImageText": 21,
        "engagementRows": 88,
        "medianLikes": 89,
        "medianBookmarks": 14.5
      },
      {
        "key": "seedance",
        "label": "Seedance",
        "promptRows": 58,
        "medianChars": 565,
        "medianWords": 77,
        "structuredJson": 0,
        "templateSlots": 2,
        "inImageText": 8,
        "engagementRows": 58,
        "medianLikes": 91.5,
        "medianBookmarks": 0
      },
      {
        "key": "gpt-image-1",
        "label": "GPT Image 1",
        "promptRows": 39,
        "medianChars": 1189,
        "medianWords": 164,
        "structuredJson": 5,
        "templateSlots": 9,
        "inImageText": 15,
        "engagementRows": 39,
        "medianLikes": 205,
        "medianBookmarks": 176
      }
    ]
  },
  "definitions": {
    "published_prompts": "Rows of the PicGens catalog that are published (is_published = true) on the edition date, after takedowns and blocked creators are removed.",
    "model_share": "Published prompts carrying a stored model label divided by all published prompts. \"Unlabelled model\" is a visible bucket; no model is inferred from prompt wording.",
    "category_share": "Published prompts carrying a category tag divided by all published prompts. Tags are assigned from prompt-text keywords and can overlap, so shares do not sum to 100%.",
    "source_month": "Calendar month (UTC) of the source post timestamp. Rows without a source-post timestamp (catalogued templates) are excluded from this dimension.",
    "prompt_rows": "Published prompts with non-empty prompt text: the denominator for every prompt-anatomy share.",
    "length_chars": "Prompt length in Unicode code points after trimming surrounding whitespace.",
    "length_words": "Number of whitespace-separated tokens after trimming. Chinese, Japanese and Korean text has few spaces, so word counts understate those prompts; use characters to compare across languages.",
    "structured_json": "The whole prompt (after trimming and removing an optional Markdown code fence) parses as a JSON object or array.",
    "template_slots": "The prompt contains at least one fill-in slot: [text] or {{text}} of 1–60 characters with at least one letter, no quotation marks or line breaks, and not followed by \"(\" (a Markdown link).",
    "in_image_text": "The prompt asks for visible text in the image: it uses a text-rendering term (text, lettering, typography, typeface, font, headline, caption, subtitle, slogan, tagline, wordmark, logotype, signage, \"the words\"; 文字/字样/标题/文案/テキスト/텍스트) or introduces a quoted string with says/reads/title/label/sign/banner — after removing negations such as \"no text\", \"without lettering\" or \"text-free\".",
    "aspect_ratio_mention": "The prompt names an explicit aspect ratio W:H from this list: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, 9:21, 2:1, 1:2 (e.g. \"--ar 16:9\" or \"9:16 framing\"), not preceded or followed by another digit, dot or colon.",
    "camera_spec": "The prompt names a camera setting: a focal length (e.g. 85mm), an aperture (f/1.8), an ISO value (ISO 200) or a shutter speed (1/250s).",
    "cjk_script": "At least 30% of the letters in the prompt are Chinese, Japanese or Korean characters.",
    "image_orientation": "From the stored width and height of the first published image: portrait (height > width × 1.05), landscape (width > height × 1.05), otherwise square. Rows without stored dimensions are excluded.",
    "color_tags": "Up to three dominant-colour buckets per image, extracted from the thumbnail palette. Share = images carrying the colour divided by images with any colour tag.",
    "engagement": "Likes, bookmarks and views of the source post as stored at the last stats refresh, for rows with a source-post timestamp. Views are counted only where a non-zero view count was stored. Medians, not means, because counts are heavily skewed."
  }
}
