Layers

Content Generation

How Layers AI builds posts. Inputs, media types, and the generation-to-slot flow.

View as Markdown

The Social Content layer turns your brand brief into ready-to-publish posts. Find generated content at /project/{projectId}/content/generated.

Inputs

The generator reads:

  • Brand brief — name, description, voice, target audience (from project settings).
  • Banned phrases — strict deny list.
  • Reference posts — URLs you've pinned. The model studies pacing and hook structure.
  • Media library — product shots, app screenshots, lifestyle, logo (from media settings).
  • Influencers — synthetic personas for UGC remixes.
  • Products — your product catalog.

Media types

content_containers.media_type is one of:

  • image — static image or a multi-image Instagram carousel.
  • video — Instagram Reel or TikTok video, 9:16.
  • slideshow — TikTok photo slideshow.

There is no separate YouTube, X, or LinkedIn media flow — generation targets Instagram + TikTok only.

Generation cadence

Generation is driven by the Social Distribution layer, not scheduled independently. When generationMode = "automatic":

  1. social-distribution-plan computes how many slots are empty over the dynamic horizon (at least 3 days).
  2. It calls computeGenerationCount to derive generateCount = max(missingSlots - inFlight, 0).
  3. Generation is kicked off for that count.
  4. New content_containers attach to the earliest empty slot via attach-to-schedule.

With generationMode = "manual" (the default on new installs) you trigger generation yourself from the content tab.

Manual generation

Click Create new in the generated content tab. Pick the media type, optionally supply a reference asset or specific products/personas, and generate.

Reviewing drafts

Each generated container has a detail panel with media, caption, cost, and provenance (prompt, inputs, model).

Edit before publish

Inline editing of caption. For media changes, use Regeneration.

Approval gate

If the Social Distribution layer is in manual distributionMode, or the scheduled post is in pending_manual status, you approve from the scheduled-posts view before it publishes. See Approval workflow.

On this page