CoolFace
Datasetpublic

avihayamor/social-instagram-marketing

Social — Instagram Marketing Multimodal Dataset A synthetic, multimodal dataset for Social, an AI Instagram-marketing agent. Every row is a single Instagram post idea that pairs a marketing caption with a matching AI-generated image, conditioned on a business brief and brand preferences. Agent pattern: owner brief + brand preferences → 3 similar successful posts (retrieval / recommendation) + 1 freshly generated post (caption + image). Rows (total) 1,447… See the full description on the dataset page: https://huggingface.co/datasets/avihayamor/social-instagram-marketing.

sourceHugging Facecc-by-4.0updated 3mo agoView on Hugging Face
1likes201downloads
Dataset Card

Social — Instagram Marketing Multimodal Dataset

A synthetic, multimodal dataset for Social, an AI Instagram-marketing agent. Every row is a single Instagram post idea that pairs a marketing caption with a matching AI-generated image, conditioned on a business brief and brand preferences.

Agent pattern: owner brief + brand preferences → 3 similar successful posts (retrieval / recommendation) + 1 freshly generated post (caption + image).
Rows (total)1,447
Multimodal pairs (rows with a real image)1,000
Modalitiestext (caption, hashtags, CTA) + image (PNG)
LanguageEnglish
LicenseCC-BY-4.0
Status100% synthetic — no scraping, no personal data

Sample generated posts

<p> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/images/img00000.png" width="32%" alt="Sample post 1"/> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/images/img00001.png" width="32%" alt="Sample post 2"/> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/images/img_00002.png" width="32%" alt="Sample post 3"/> </p>


Quick start

python
from datasets import load_dataset

ds = load_dataset("avihayamor/social-instagram-marketing", split="train")
print(ds[0]["caption"], ds[0]["hashtags"])

Images live in the images/ folder and are referenced by each row's image_path.


How it was built

The dataset is generated end-to-end — nothing is scraped or hand-written.

  • —Captions — produced with Qwen/Qwen2.5-7B-Instruct through the Hugging Face serverless Inference API, in small JSON batches (temperature 0.9), then parsed, validated, and de-duplicated.
  • —Images — produced with black-forest-labs/FLUX.1-schnell (text-to-image) from each row's image_prompt.
  • —Diversity — a seed grid of 30 business types × 8 brand voices × 8 palettes × 20 occasions × 2 formats is randomly sampled so combinations stay varied.
  • —Robustness — generation is fully resumable via on-disk checkpoints, with retry/backoff on API errors.

Schema

columndescription
business_typetype of business (e.g. coffee shop, yoga studio)
brand_voicetone of voice (e.g. playful and witty)
brand_palettecolor palette (e.g. pastel and soft)
platformalways "Instagram"
format"feed post" or "story"
occasionmarketing occasion (e.g. grand opening)
captiongenerated post caption
hashtagsspace-separated hashtags
ctashort call-to-action
image_prompttext-to-image prompt used to render the photo
image_pathrelative path to the generated PNG (in images/)
has_imagewhether a real image was generated for this row

Dataset statistics (EDA)

  • —Rows total: 1,447
  • —Rows with a real image (multimodal pairs): 1,000
  • —Diversity: 30 business types · 8 brand voices · 8 palettes · 20 occasions
  • —Format split: feed post 726 · story 721
  • —Caption length: mean 9.8 words (min 3, max 25)
  • —Hashtags per post: mean 4.0

Visual EDA

<p> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/eda/edabusinesstype.png" width="48%" alt="Posts by business type"/> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/eda/edaformat.png" width="48%" alt="Posts by format"/> </p> <p> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/eda/edacaptionlength.png" width="48%" alt="Caption length in words"/> <img src="https://huggingface.co/datasets/avihayamor/social-instagram-marketing/resolve/main/eda/edahashtags.png" width="48%" alt="Hashtags per post"/> </p>

EDA findings & model-failure flags

Model failures are flagged transparently rather than silently cleaned:

  • —Exact duplicate captions: 0
  • —Near-duplicate captions (normalized): 0
  • —Empty / very short captions (< 4 words): 5
  • —Very long captions (> 60 words): 0
  • —Posts with no hashtags: 0
  • —Captions that leaked a `#` into the caption body (the model was asked to keep hashtags out of the caption text): 322 — the main observed instruction-following slip, logged here for transparency.

Overall the generator followed instructions well: JSON parse failures were retried, duplicates were dropped during generation, and missing required fields were ~0.


Files

  • —social_dataset.csv / social_dataset.parquet — the tabular dataset
  • —images/ — 1,000 generated PNG images referenced by image_path
  • —eda/ — exploratory data analysis charts

Intended use & limitations

Built as a course project. The content is fully synthetic marketing material: no real brands, no personal data, and no harmful or adult domains. Captions and images are AI-generated and may contain factual or stylistic mistakes, so they should not be treated as ground-truth marketing copy.