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

# Visual Library

> Generate cover art, promo flyers, and Spotify Canvas videos for your releases. Browse your full library of AI-generated and uploaded visual assets, attach them to releases, and download high-resolution exports.

export const TierBadge = ({tier}) => {
  const styles = {
    free: {
      label: "Free",
      color: "#A1A1AA"
    },
    starter: {
      label: "Starter+",
      color: "#00E6E2"
    },
    pro: {
      label: "Pro+",
      color: "#0068FF"
    },
    scale: {
      label: "Scale+",
      color: "#7A5BFF"
    },
    enterprise: {
      label: "Enterprise",
      color: "#FF7A59"
    },
    all: {
      label: "All plans",
      color: "#22C55E"
    }
  };
  const t = styles[tier?.toLowerCase()] ?? styles.all;
  return <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "4px",
    padding: "2px 10px",
    borderRadius: "999px",
    border: `1px solid ${t.color}40`,
    background: `${t.color}1A`,
    color: t.color,
    fontSize: "12px",
    fontWeight: 600,
    fontFamily: "var(--font-family-mono)",
    verticalAlign: "middle"
  }}>
      {t.label}
    </span>;
};

export const AICallout = ({page}) => {
  const slug = page ?? "";
  const mdUrl = `https://docs.patchline.ai${slug}.md`;
  return <div style={{
    marginTop: "32px",
    padding: "16px 20px",
    borderRadius: "12px",
    border: "1px solid rgba(0,230,226,0.25)",
    background: "linear-gradient(135deg, rgba(0,230,226,0.08), rgba(0,104,255,0.05))",
    color: "inherit",
    fontSize: "14px",
    lineHeight: 1.6
  }}>
      <strong style={{
    display: "block",
    marginBottom: "6px",
    color: "#00E6E2"
  }}>
        For AI agents reading this page
      </strong>
      The canonical machine-readable version of this page is at{" "}
      <a href={mdUrl}>
        <code>{mdUrl}</code>
      </a>
      . For product actions, connect to{" "}
      <code>www.patchline.ai/api/mcp/v1</code>
      {" "}and call MCP <code>tools/list</code> for the current tool schema.
      Rules for navigating these docs:{" "}
      <a href="https://docs.patchline.ai/AGENTS.md">
        <code>docs.patchline.ai/AGENTS.md</code>
      </a>
      .
    </div>;
};

The **Visual Library** is where all of your release artwork lives —
cover art, promo flyers, Spotify Canvas videos, and reference images.
Generate new visuals through Aria, upload your own, and attach the
final pick to any release in your campaign.

<TierBadge tier="starter" />   Generation features unlock on Starter+. Free tier can browse and upload.

## What you can do

| Lane                | What it generates                                                         |
| ------------------- | ------------------------------------------------------------------------- |
| **Cover art**       | Square release artwork from your prompt + optional reference images       |
| **Promo flyer**     | Social-ready flyer with optional CTA copy ("OUT NOW", "PRE-SAVE", custom) |
| **Canvas (motion)** | Spotify Canvas-style looping video                                        |

Every generation hands off to Aria for prompt interpretation, then
Aria coordinates the underlying generative tools and saves the
finished asset back into your Visual Library.

## Where it lives

Sidebar → **Visual Library**.

## How to generate

<Steps>
  <Step title="Pick a lane">
    On the bottom composer, choose the lane (Cover Art, Flyer, or
    Motion).
  </Step>

  <Step title="(Optional) Select a campaign">
    Click the campaign chip to bind this generation to a specific
    release. Aria pulls the release's track context, genre, and any
    existing artwork as creative reference.
  </Step>

  <Step title="(Optional) Attach reference images">
    Click + → **Upload local image** or **Choose from Studio** to drop
    visual references in. Aria uses them to lock style and mood.
  </Step>

  <Step title="Write the prompt and Generate">
    Describe the look, mood, or concept. Hit **Generate** — Aria takes
    over and the generated asset lands in the library in a few
    seconds.
  </Step>

  <Step title="Attach to a release">
    Click any asset → use it as the cover art, promo flyer, or canvas
    for a release.
  </Step>
</Steps>

## Browsing

The grid view filters by **All**, **Cover Arts**, **Promo Flyers**, or
**Canvas Videos**. Search box filters by title. Hover any asset for a
download or delete affordance. Click into an asset to open the
lightbox — from there you can download, replace, or send the asset
back through Aria for a revision.

## Replacing release art

If a release already has an active cover or canvas, Visual Library
shows it in context. You can swap it for any asset in the library —
the change reflects on the live release and any
[smart links](/storefront/smart-links) attached.

## Pricing

Plans, AI credits, and limits live on the [pricing page](https://patchline.ai/pricing) — we keep them there so they're always current.

## Related pages

* [Projects](/releases/release-planner) — bind visuals to specific releases
* [Music Store](/storefront/overview) — store banners come from here too
* [Aria overview](/aria/overview) — the assistant doing the generation
* [Smart links](/storefront/smart-links) — live links that pull from your visuals

## FAQ

<AccordionGroup>
  <Accordion title="Can I keep iterating on a cover I generated?">
    Yes — open it in the lightbox and choose **Edit** to send it back
    through Aria with a follow-up prompt.
  </Accordion>

  <Accordion title="Do I need to attach a campaign?">
    No, freeform generation works. Attaching a campaign just gives
    Aria more context (track sonic identity, artist style, prior
    visual choices) so the output matches your release.
  </Accordion>

  <Accordion title="What aspect ratios are supported?">
    1:1 (square), 9:16 (vertical for Stories / Reels / Canvas), and
    16:9 (horizontal for trailers and banners).
  </Accordion>

  <Accordion title="Can I replace a cover I already pushed to a release?">
    Yes — the lightbox **Replace** action swaps it in place, and the
    change reflects on the live release page and any associated
    [smart links](/storefront/smart-links).
  </Accordion>
</AccordionGroup>

<AICallout page="/visual-library/overview" />
