> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ninjachat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Recipes

> Real workflows, no special tools — generate once, then edit and reference.

Everything below composes `create_media`, continuity (`source`), and creative memory (`use`). All images here were made through these exact flows.

## Pick the aspect from the destination

| Going to                   | Use            |
| -------------------------- | -------------- |
| Hero, banner, OG card      | `16:9`         |
| TikTok, Reels, Story       | `9:16`         |
| Post, avatar, product tile | `1:1`          |
| Poster, portrait           | `2:3` or `3:4` |

## Campaign

One product reference keeps the bottle identical across every direction.

> "I'm launching a sparkling yuzu drink called KIYO — give me 4 campaign directions."

<Columns cols={4}>
  <Frame>
    <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/kiyo/d-1.webp" alt="KIYO campaign direction 1" />
  </Frame>

  <Frame>
    <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/kiyo/d-2.webp" alt="KIYO campaign direction 2" />
  </Frame>

  <Frame>
    <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/kiyo/d-3.webp" alt="KIYO campaign direction 3" />
  </Frame>

  <Frame>
    <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/kiyo/d-4.webp" alt="KIYO campaign direction 4" />
  </Frame>
</Columns>

> "The second one. Make it a wide banner."

<Frame caption="Winner → placements. Edit the keeper into 1:1, 9:16, 16:9 — don't regenerate from scratch.">
  <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/kiyo/banner.webp" alt="KIYO banner cut from the winning direction" />
</Frame>

1. Lock the product: `upload_asset` or `reference_image_urls`, "keep packaging unchanged"
2. Four directions: `create_media` `action: "options"` with `max_spend_cents`
3. Winner → placements via edits of the keeper
4. Animate the strongest with `image_to_video`

## Website

<Frame caption="Claude Code built this site. NinjaChat made every visual — hero, features, banner.">
  <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/worlds/takt-site-desktop.webp" alt="Product site with agent-generated visuals" />
</Frame>

1. Brief → `options` → user picks a direction
2. Hero at `16:9`, continuing from the pick (`source: "2"`)
3. Supporting shots via `source` so the look stays coherent
4. Files land by `filename` — the agent downloads and commits

## Product photography

<Frame caption="Save the product once (save_creation_as, type: &#x22;product&#x22;) — it stays identical in every shot.">
  <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/kiyo/bottle.webp" alt="KIYO bottle product shot" />
</Frame>

1. Reference the exact product → `save_creation_as` `{type: "product"}`
2. Studio / editorial / lifestyle / outdoor variants with `use: ["<name>"]`

## Motion

Reference-locked keyframes first, then film.

<Columns cols={2}>
  <Frame>
    <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/worlds/aera-master.webp" alt="Racing shoe master keyframe" />
  </Frame>

  <Frame>
    <img src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/worlds/aera-key2.webp" alt="Racing shoe keyframe 2 — same shoe, new scene" />
  </Frame>
</Columns>

<Frame caption="Same shoe in every shot — keyframes by reference, then image_to_video.">
  <video autoPlay muted loop playsInline src="https://cdn.photogenius.ai/new-ai-images/mcp-landing/v1/worlds/aera.mp4" />
</Frame>

<Tip>
  The one rule: **generate once, then edit and reference.** Continuing from a keeper is cheaper and more consistent than re-prompting from zero.
</Tip>
