SuperAPI AI Directory

advibly-collage-motion

Design & creation

View repository

Updated 10-25 16:18

About this skill

Advibly Collage Motion

One pipeline, two halves: analyze a reference into an editable spec, then build on-brand stills and assemble-from-empty motion. Everything runs on the Advibly MCP. The look is the halftone paper-collage / stop-motion-graphic editorial style: flat bold color field, halftone (printed-dot) elements, clean cut edges with a soft drop shadow between layers, one sharp idea per scene, and motion that builds the scene piece by piece instead of wobbling a finished frame.

Speak in the user's language. No em dashes anywhere in output; use periods or line breaks. Keep labels and copy free of emoji unless asked.

Hard defaults (do not drift)

  • Image model: advibly_generate_image with model: "nano-banana-2". nano-banana-2 holds the paper-craft texture (dot pattern, cut edge, layer shadow, flat color) better than gpt-image-2, renders up to 4K, and takes reference images. If a burned-in label keeps degrading across rerolls, fall back to gpt-image-2 or seedream-5-pro (both stronger at native text) for that scene only, never mid-set for the texture-carrying frames.
  • Faithful color, not brand palette: pass on_brand: false. The decoded spec owns the color field and palette, so the brand-kit sheet must not be force-attached or it recolors the look. brand_id is still required on every generation call (it files the work in the user's library); it does not style the output when on_brand is false. Only set on_brand: true when the user explicitly wants the collage recolored to their brand.
  • Video model: advibly_generate_video with model: "gemini-omni-flash" (8s or 10s per clip, 9:16 or 16:9, native audio). Omni Flash animates from a single start frame, so the default assembly opens on the empty-field still and the prompt drives the pieces sliding in. It has no end frame: when the clip must land on the exact finished composition, or you need 1:1 or a 15s duration, switch that set to seedance-2.0 (supports start_image_url + end_image_url for a mechanical empty-to-finished interpolation, plus all aspect ratios). See B3 for both routes. Pick one model per delivered set and stay on it.
  • No text-overlay tool. Advibly has none by design. Scene labels are burned in at image generation by the image model. If a label keeps degrading, reroll with num_images (up to 4), simplify the label, or switch that one scene to gpt-image-2 / seedream-5-pro. Never plan to overlay text afterward.
  • Tools are deferred. Load the exact Advibly tool schemas with tool search before the first call each session (search "advibly generate image", "advibly generate video", "advibly upload asset", "advibly list brands"). Confirm parameter names against what loads rather than assuming.

The Advibly asset workflow (memorize)

Advibly is simpler than an S3-presign dance. An image generated by advibly_generate_image already returns a public url you can drop straight into reference_image_urls or start_image_url / end_image_url on the next call. No re-upload needed.

To bring in a file the user owns (a product photo, a logo, an external reference):

  1. advibly_upload_asset with source_url (public/signed link, best for large files and video) OR data_base64 (raw bytes, for smaller local images), plus the required brand_id.
  2. It returns a reusable url (use as reference_image_url for images or source_video_url for video) and an asset_id.

Store-brand shortcut: to lock the exact catalog product, pass product_id (from advibly_get_products) to the generation tool instead of hunting for its photo URL. On an image call it attaches the product's hero photo as an edit-mode reference; do not also pass on_brand: true.

Pass the product or brand reference image in every generation call so subject and palette stay locked across the set.


PHASE A: ANALYZE (decode a reference into an editable spec)

Run this whenever a reference is in play. If the user refers to an image but none is attached, ask for it rather than guessing.

Mindset

The driving question is: "If I had to regenerate this exact frame from scratch on nano-banana-2, what would I need to specify?" Over-analyze on purpose, because the next request is almost always a variation ("same look, change the color field", "same style, different idea"), and that only works if every attribute is independently swappable. For every observation, name the technique and the why, not just a label. "Has texture" is nothing. "Visible halftone dot pattern on the black-and-white elements, dense at 45 lpi, which reads as printed-magazine craft instead of flat digital" is reproducible.

Look in passes before writing

  • The medium first: is this paper-cut, layered collage, halftone print, stop-motion frame, or a flat vector pretending to be paper. This decides everything downstream.
  • The color field: the single flat background color, exact hex, evenness, any subtle paper grain on it.
  • The elements: each cut-out piece, its outline crispness, the dot pattern inside it, its drop shadow (offset, softness, opacity) that lifts it off the field.
  • The idea: the concept or visual pun the scene carries. This is the part worth protecting in any variation.
  • The composition and depth layers: foreground pieces over midground over the flat field.
  • Any burned-in label: content, font character, weight, placement, treatment.

Output for each reference, in this exact structure

## [Short title describing the frame]

### Breakdown
A walk through the dimensions below under clear subheadings (Medium and craft, Color field, Elements and cut, Composition and depth, Idea, Label, Mood). Every element carries its technique and why.

### Generic prompt
One self-contained natural-language paragraph that names medium, color field, every element with its halftone and cut treatment, composition, label, and mood, ready to paste into nano-banana-2. No reference to "the image above".

### JSON spec
The field-by-field collage spec (schema below) as valid JSON.

The collage JSON spec

This is the centerpiece. Valid JSON, no comments, no trailing commas, every field concrete. Each field is independently editable so a later "change only the color field" means rewriting one block and re-emitting the whole thing. Always self-contained. Never write "same as previous"; each generation has zero memory of any other.

style_signature is one compact liftable line (for example "flat cobalt field, halftone cut-outs, crisp edges with soft drop shadow, single editorial idea, premium print-craft") so the user can anchor other prompts to the look without carrying the whole object.

{
  "medium": "",
  "craft_style": "",
  "aspect_ratio": "",
  "style_signature": "",
  "color_field": {
    "background_hex": "",
    "evenness": "",
    "paper_grain": ""
  },
  "elements": [
    {
      "what": "",
      "role": "",
      "halftone": "",
      "cut_edge": "",
      "drop_shadow": "",
      "color_treatment": "",
      "placement": ""
    }
  ],
  "palette_hex": [],
  "composition": {
    "layout": "",
    "depth_layers": "",
    "negative_space": "",
    "balance": ""
  },
  "idea": "",
  "label": {
    "present": "",
    "content": "",
    "font_character": "",
    "weight": "",
    "placement": "",
    "treatment": ""
  },
  "mood": "",
  "references_era": "",
  "negative_prompt": ""
}

references/collage-dimensions.md holds precise vocabulary for halftone, cut, layer, color-field, and label treatments, plus a fully worked example. Read it the first time you produce a spec so the specificity is calibrated.

Multiple references

Decode each fully and separately. Then add one ## Shared style summary capturing the common system: the color-field logic, the halftone density, the cut and shadow convention, the label treatment, and the idea-density. Make it specific enough to seed a fresh on-brand frame.

Follow-ups

  • "Replicate it": deliver the JSON spec as is, then go to Phase B to generate.
  • "Make similar": keep structural fields (medium, craft_style, halftone, cut, color logic, composition) and vary surface ones (elements, idea, label) so it shares the look without copying.
  • "Keep everything, change only X": rewrite only that block, re-emit the entire JSON.

PHASE B: BUILD (stills then assemble-from-empty motion)

B0: Pick the brand and flow

  1. Brand - advibly_list_brands. One brand: use it. Several: ask which. None: send the user to advibly.com/onboarding (this skill reads a brand, it cannot create one). You need the brand_id on every generation call.
  2. If a reference was decoded in Phase A, the spec is your blueprint. If the user has only a brief or a product, draft the spec fields from the brief first (color field, idea, label), then proceed. If the user just wants stills and no motion, stop after B2.

B1: Brief intake (one message, only if needed)

If the spec and the user's ask already answer these, skip and proceed. Otherwise ask all at once:

  1. Assets to lock to? A product photo or logo (upload with advibly_upload_asset, or pass a store product_id), or generate fresh.
  2. Clip duration: 8s or 10s on Gemini Omni Flash. (For 15s, the set switches to seedance-2.0; for a 5s teaser, to kling-v3. See B3.)
  3. Format: 9:16 vertical or 16:9 horizontal on Gemini Omni Flash. (For 1:1 square, the set switches to seedance-2.0.)
  4. How many scenes in the set?
  5. The idea per scene, or "you propose them".

B2: Generate the stills

For each scene, call advibly_generate_image once:

advibly_generate_image
  prompt: <the spec turned into a self-contained collage prompt, label burned in>
  brand_id: <brand id>
  model: "nano-banana-2"
  on_brand: false
  aspect_ratio: <from the spec / B1>
  resolution: "2K"        # bump to 4K for hero frames
  reference_image_urls: [<product or brand reference URL>]   # or use product_id for store products

Burn the 2 to 4 word scene label into the prompt; do not plan to overlay it later. In the prompt, point at references descriptively ("the product from the reference photo, red bottle, label clearly visible").

Two stills matter per animated scene:

  • The empty-field still: the identical frame with the bare color field and no elements. This is the start_image_url for both video routes: Omni Flash animates forward from it, and Seedance interpolates from it to the finished still. Generate it from the same spec with the elements removed so the field, grain, and label-less background match exactly.
  • The finished still: the full composition with all elements in place. It is the visual target and the end_image_url for the Seedance route. Even on the Omni Flash route, keep it as the reference the user approves so both of you agree on where the build lands.

If a generate call returns status: pending, the image still renders in chat automatically; only call advibly_get_generation (wait: true) when you need the finished url to reuse downstream (which you always do here, for the video step). Display each still, ask "does this work or change it?", and reroll with an adjusted prompt or num_images until approved. Keep one model across the texture-carrying frames.

B3: Assemble-from-empty motion

The signature is that the frame builds itself: it opens on the empty color field and the cut-out elements slide in from the edges and snap into place. Pick one route for the whole set so it stays uniform.

Default route, Gemini Omni Flash (start on empty, prompt-driven):

Open on the empty-field still and let the prompt drive the build. Omni Flash animates forward from the start frame, adds native audio, and reads the assembly from the words.

advibly_generate_video
  prompt: <assembly prompt, see below>
  brand_id: <brand id>
  model: "gemini-omni-flash"
  aspect_ratio: <9:16 or 16:9>
  duration: <8 or 10>
  start_image_url: <empty-field still URL>

Because Omni Flash has no end frame, the landing composition is inferred from the prompt, not locked. If a clip must hit the exact finished frame (tight product label, precise final layout), or you need 1:1 or 15s, use the seedance route below for that whole set.

Guaranteed route, Seedance 2.0 (frame interpolation, exact empty-to-finished):

Give Seedance both ends. It mechanically interpolates from empty field to finished composition. This is the route for a precise landing, 1:1, or 15s.

advibly_generate_video
  prompt: <assembly prompt, see below>
  brand_id: <brand id>
  model: "seedance-2.0"
  mode: "pro"                       # pro for the cleanest motion; fast is cheaper
  aspect_ratio: <from B1>
  duration: <10 or 15>
  start_image_url: <empty-field still URL>
  end_image_url: <finished still URL>

Prompt shape (both routes):

Paper-collage stop-motion assembly. Open on an empty flat [color] field, no elements. One by one the cut-out halftone pieces slide in from the frame edges and snap into place with a crisp stop-motion cadence, soft drop shadows settling under each piece as it lands, until the full composition is assembled: [list the elements and final layout]. Burned-in label "[label]" appears last. Flat even lighting, premium print-craft texture, slight paper grain, no camera wobble, no zoom drift. [duration]s, [aspect ratio].

5s teaser: switch that set to model: "kling-v3" (3-15s, supports start_image_url + end_image_url and native audio via generate_audio).

Each video call waits ~40s and usually returns status: pending with a generation_id; the clip still appears in chat. Collect the finished URL with advibly_get_generation (wait: true) only when you need it for assembly. Display the result. Offer: keep it, re-edit (same still, adjusted prompt), or render a variant.

B4: Scale

Lock the look once (color field, halftone and cut convention, label treatment), then vary only the idea per scene. Batch the set the same way. Consistency across scenes is what makes it read as a brand rather than one-offs.

B5: Assemble the set (optional)

With a shell available (Claude Code): download the clips and concat them in scene order.

mkdir -p collage-ad && cd collage-ad
curl -sL -o scene1.mp4 "<url1>"   # repeat per scene
ffmpeg -y -i scene1.mp4 -i scene2.mp4 -i scene3.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[v][a]" \
  -map "[v]" -map "[a]" -c:v libx264 -pix_fmt yuv420p -c:a aac final-collage.mp4

Same model and settings across clips, so the concat is clean. If the clips have no audio track, drop the [N:a] inputs and a=1 from the filter and use concat=n=N:v=1:a=0[v] mapping only [v].

Without a shell (claude.ai, mobile): deliver the clip URLs in scene order and tell the user to stitch them in CapCut.

B6: Optional publish

If the user wants to post the set, advibly_social_list_accounts shows connected platforms and advibly_social_create_post publishes or schedules (attach single clips via generation_ids, or a stitched file uploaded with advibly_upload_asset via media_urls). Only offer this after the user has seen the final result.


Notes and rules

  • One model per delivered set. Pick the video model once for the whole set: Gemini Omni Flash by default (9:16 or 16:9, 8s or 10s), Seedance 2.0 when you need an exact empty-to-finished landing, 1:1, or 15s, Kling for a 5s teaser. Do not mix video models within a set the user expects to look uniform. Same for stills: keep nano-banana-2 across the texture-carrying frames, with the label-degrade swap to gpt-image-2 / seedream-5-pro applied per-scene only.
  • Faithful, not on-brand, by default. on_brand: false so the decoded color field survives. brand_id is always passed for filing. Only flip to on_brand: true on explicit request to recolor to the brand.
  • Self-contained prompts always. Every image and video prompt stands alone; generators have no memory of earlier calls.
  • Reference image in every call. Keeps subject, palette, and craft locked.
  • Labels are burned in at generation, never overlaid (Advibly has no overlay tool).
  • Confirm tool names and params with tool search each session; Advibly tools are deferred and model IDs change.
  • No em dashes, minimal emoji in any drafted copy or label.
  • On failure: content_rejected means the policy blocked the prompt, rework the wording rather than retry verbatim. insufficient_credits: call advibly_buy_credits and share the checkout link. Otherwise reroll with adjusted params, or offer the frame-interpolation route for a stubborn assembly.

Reference files

  • references/collage-dimensions.md: vocabulary and taxonomies for halftone, cut and edge, drop shadow, color field, paper grain, composition, label treatment, and named collage looks, plus one fully worked decode-and-spec example. Consult it when decoding a reference or calibrating a spec.