# AI Product Photo Generator

> Agent skill on puras — published by puras. AI product photography for any subject — a product, app, café, or service. It studies your uploaded photos, writes a scenario and shot plan that fits the subject, and renders a cohesive, art-directed set of social-ready photos: hero, detail, in-use, and lifestyle scenes that all share one concept, palette, and light.

- **Skill path:** `puras/product-ad-studio/social-photo`
- **Skillpack:** Product Ad Studio (`product-ad-studio`)
- **Skillpack ID:** `39903015-da3d-49a2-b549-9256ef164430`
- **Deployment version:** v51
- **Human page:** https://puras.co/skills/puras/product-ad-studio/social-photo
- **API base:** `https://api.puras.co`

## Description

AI product photography for any subject — a product, app, café, or service. It studies your uploaded photos, writes a scenario and shot plan that fits the subject, and renders a cohesive, art-directed set of social-ready photos: hero, detail, in-use, and lifestyle scenes that all share one concept, palette, and light.

**Turn one product photo into a full AI photoshoot**

## Who it's for

- **DTC & e-commerce sellers** — Get a cohesive product shoot without booking a studio.
- **Local businesses & services** — Produce on-brand social photos for a café, salon, or service.
- **Social & content teams** — Keep feeds stocked with art-directed sets on demand.

## AI Product Photo Generator vs Pebblely

| | Pebblely | puras |
| --- | --- | --- |
| Pricing | Monthly subscription with image allowances | Usage-based — pay per photo set, exact cost each run |
| How it works | Place the product on generated backgrounds | An agent writes a scenario and shot plan for your subject, then renders the set |
| Art direction | A background and theme library | One art-directed concept across hero, detail, in-use, and lifestyle shots |
| Where it runs | A web app you log into | API-native — generate sets on demand from your own store or app |

## AI Product Photo Generator vs Photoroom

| | Photoroom | puras |
| --- | --- | --- |
| Built for | Background removal and product cutout edits | A full multi-shot photoshoot built around one creative concept |
| Pricing | Subscription plans (and an enterprise API) | Usage-based — pay per photo set, exact cost each run |
| Subjects | Product images | A product, an app, a café, or a service business |
| Where it runs | Their app and editor | API-native by default — same skill in the browser and in your code |

## AI Product Photo Generator vs A traditional photoshoot

| | A traditional photoshoot | puras |
| --- | --- | --- |
| Cost | Studio, photographer, and product shipping per shoot | A few dollars per art-directed set, itemized per run |
| Turnaround | Days to weeks from booking to delivery | Minutes — upload photos, get the finished set back |
| Iteration | Re-shoots cost full price | Re-run with a new concept or shot count any time |
| Catalog consistency | Depends on reusing the same crew and set | Re-run the same concept across products for a consistent feed |

## FAQ

### What is an AI photoshoot and how does it work?

An AI photoshoot turns a few photos you already have into a fresh set of professional images. This skill studies your uploads, figures out what the subject is, writes a scenario and shot plan, then renders a cohesive set built around one creative concept — no studio, photographer, or shoot day.

### Can I run an AI photoshoot from just one photo?

Yes. One clean, well-lit photo is enough to start. From it the skill writes a shot plan and renders a multi-shot set (hero, detail, in-use, lifestyle) that all share the same world, light, and grade.

### Can AI generate lifestyle product photos, not just plain white backgrounds?

Yes — in-context lifestyle scenes are the core of what it does. The shot plan places your subject in a styled scenario (e.g. on-table, in-hand, in a café setting) rather than only a blank packshot, so the set reads as art-directed lifestyle content.

### Do AI product photos keep the product's details and logo accurate?

The skill is built to keep your subject true across the set — it works from your actual uploaded photos so the product, logo, and key details carry through every shot, kept consistent around one concept.

### Can AI make social media photos for a café, restaurant, or food business?

Yes. Upload a dish, drink, or interior and it reads the subject as food/venue, then writes a scenario and renders a cohesive set of food and café photos ready for menus and social feeds.

### Can I use AI to make brand photos for a service business with no products?

Yes. It works for any subject — a software app, a storefront, or a service — not just physical products. It writes a shot plan that fits a service or personal brand and renders on-brand social photos with no product required.

### How do I keep product photos consistent across a whole catalog?

Every set is built around a single creative concept, so each photo shares its scene, palette, and light. Run the skill per item with the same brief and style to keep your catalog looking like one photographer shot it instead of drifting batch to batch.

## Try it free

AI Product Photo Generator has a free in-browser playground on its page (https://puras.co/skills/puras/product-ad-studio/social-photo) — load an example or bring your own inputs and run it with a Google sign-in. No credit card, no subscription; runs are usage-based after the free try.

## Input schema

```json
{
  "type": "object",
  "required": [
    "product_images"
  ],
  "properties": {
    "brief": {
      "type": "text",
      "maxLength": 2000,
      "description": "Optional. What it is, who it's for, the vibe. A URL works too."
    },
    "style": {
      "enum": [
        "auto",
        "premium",
        "minimal",
        "warm",
        "bold",
        "playful",
        "natural",
        "editorial"
      ],
      "type": "string",
      "description": "Visual tone for the set. `auto` picks the best fit for the subject."
    },
    "num_photos": {
      "type": "integer",
      "default": 4,
      "maximum": 8,
      "minimum": 3,
      "description": "How many photos (distinct shots) per set. Default 4."
    },
    "aspect_ratios": {
      "type": "array",
      "items": {
        "enum": [
          "9:16",
          "4:5",
          "1:1",
          "16:9"
        ],
        "type": "string"
      },
      "default": [
        "1:1"
      ],
      "minItems": 1,
      "description": "Output frame(s). Pick one or more — every photo is produced in each selected ratio.",
      "uniqueItems": true
    },
    "include_people": {
      "type": "boolean",
      "default": true,
      "description": "Allow shots with anonymous people (in-use, on-model, a café guest). On by default."
    },
    "product_images": {
      "type": "array",
      "items": {
        "type": "image"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "Photos of what you're promoting — a product packshot, an app screenshot or device mockup, your storefront/interior, a dish, anything. Clean, well-lit shots work best. Whatever it is, it stays true across the set.\n"
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "properties": {
    "photos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "description": "The shot's job in the set — chosen to fit the subject. For a physical product: \"hero\", \"detail\", \"in-use\", \"lifestyle\". For an app/software: \"device mockup\", \"UI in context\", \"feature close-up\", \"brand scene\". For a venue: \"storefront\", \"interior ambiance\", \"signature moment\", \"detail\". Whatever roles the plan invented.\n"
          },
          "output_url": {
            "type": "image",
            "description": "Drive path to the rendered photo; served to readers as a stable media URL. The playground renders it with <img>."
          },
          "aspect_ratio": {
            "enum": [
              "9:16",
              "4:5",
              "1:1",
              "16:9"
            ],
            "type": "string",
            "description": "The frame this photo was rendered for."
          }
        }
      },
      "minItems": 3,
      "description": "All produced photos — num_photos × aspect_ratios, one cohesive creative concept; every frame shares its world, palette, and light."
    }
  }
}
```

## Examples

### Layered tropical iced drink

Just the product photo — no brief. The skill reads it as a food/drink subject, invents one golden-hour concept, and returns a cohesive 4-shot set (hero, macro, in-use, flat-lay) that all share the same world, light, and grade.

Inputs:

```json
{
  "style": "natural",
  "num_photos": 4,
  "aspect_ratios": [
    "1:1"
  ],
  "include_people": true,
  "product_images": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"
  ]
}
```

Outputs:

```json
{
  "photos": [
    {
      "role": "hero",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-hero.webp",
      "aspect_ratio": "1:1"
    },
    {
      "role": "macro detail",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-macro.webp",
      "aspect_ratio": "1:1"
    },
    {
      "role": "in-use / on-model",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-inuse.webp",
      "aspect_ratio": "1:1"
    },
    {
      "role": "lifestyle / styled flat-lay",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-flatlay.webp",
      "aspect_ratio": "1:1"
    }
  ]
}
```

### Deluxe hardcover book

Just the cover photo — no brief, style auto. The skill reads it as a physical product, sets one concept and returns a cohesive 4-shot set (hero, macro, in-use, flat-lay).

Inputs:

```json
{
  "style": "auto",
  "num_photos": 4,
  "aspect_ratios": [
    "1:1"
  ],
  "include_people": true,
  "product_images": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-social-creative-photos/25499ab2/product_images-0.png"
  ]
}
```

Outputs:

```json
{
  "photos": [
    {
      "role": "hero",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-social-creative-photos/25499ab2/out-photos-0-output_url.webp",
      "aspect_ratio": "1:1"
    },
    {
      "role": "macro detail",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-social-creative-photos/25499ab2/out-photos-1-output_url.webp",
      "aspect_ratio": "1:1"
    },
    {
      "role": "in-use / on-model",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-social-creative-photos/25499ab2/out-photos-2-output_url.webp",
      "aspect_ratio": "1:1"
    },
    {
      "role": "lifestyle / styled flat-lay",
      "output_url": "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/examples/product-ad-studio/product-social-creative-photos/25499ab2/out-photos-3-output_url.webp",
      "aspect_ratio": "1:1"
    }
  ]
}
```

## Use this skill

puras runs this skill on its own backend — you send inputs and get the result back. Three ways to call, fastest first:

### 1. MCP server — recommended for coding agents, no API key

Connect the puras MCP server; auth is OAuth in the browser on first call, so there is nothing to paste.

```bash
claude mcp add --transport http puras https://mcp.puras.co/mcp
```

Any MCP client works — point it at `https://mcp.puras.co/mcp` (HTTP transport). Then ask the agent to run `social-photo` from skillpack `puras/product-ad-studio` with your inputs.

### 2. CLI / Python SDK — `pip install puras`

```bash
pip install puras
puras login            # or set PURAS_API_KEY
puras run puras/product-ad-studio/social-photo -i key=value
```

From Python:

```python
import puras

client = puras.Client()   # PURAS_API_KEY from env
result = client.run("puras/product-ad-studio/social-photo", {"style":"natural","num_photos":4,"aspect_ratios":["1:1"],"include_people":true,"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"]})
```

### 3. HTTP API

`wait=true` blocks until the run reaches a terminal status and returns the result inline.

```bash
curl -X POST "https://api.puras.co/v1/jobs?skillpack=puras/product-ad-studio&wait=true" \
  -H "Authorization: Bearer $PURAS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"skill":"social-photo","inputs":{"style":"natural","num_photos":4,"aspect_ratios":["1:1"],"include_people":true,"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"]}}'
```

Mint an API key (for CLI / SDK / API) from https://puras.co/api-keys.

## Pricing

Runs are billed usage-based from your workspace credit balance — the cost of a job is the sum of the model token (and any media) usage it incurs. There is no per-call platform fee. The playground and the job result report the exact cost of each run.

- Pricing page: https://puras.co/pricing
- Machine-readable model price registry: `https://api.puras.co/v1/pricing`
