AI Generation overview — what you can create

5 generation types: images / videos / avatars / TTS / compositing. Async: POST 202 + job_id → poll GET /generate/jobs/:id. Provider catalog 6+6+3+3+1. Cost tracked per job.

Written By Salvatore Sinigaglia

Last updated About 1 hour ago

5 generation types: images / videos / avatars / TTS / compositing. Async: POST 202 + job_id → poll GET /generate/jobs/:id. Provider catalog 6+6+3+3+1. Cost tracked per job.

AI Generation overview — what you can create

Wevion's Creative Hub supports 5 generation types. The provider catalog (in providers/creative/types.ts) is 6 image + 6 video + 3 avatar + 3 TTS + 1 compositing; the legacy /generate/* route exposes only a subset (see each type below). All generation is async: POST returns 202 Accepted with a job_id; client polls GET /api/v1/creative-hub/generate/jobs/:id until status = completed. Output stored in your Drive folder + recorded to the creative_job table for credit accounting.

Who is this for

Anyone considering AI generation. Reference page for what's possible and which provider to pick.

The 5 generation types

1. Images

Static images for feed / Stories / posters.

Catalog: seedream_4 (default photoreal), seedream_4_5, nano_banana_pro, nano_banana (image edit), flux_2_pro, gpt_image_1_5 (text-aware).

Endpoint: POST /api/v1/creative-hub/generate/image — the legacy route accepts only flux_2_pro / gpt_image_1_5 (default flux_2_pro). See ch-113.

2. Videos

Short videos for Reels / TikTok / in-stream.

Catalog: luma_ray3, runway_gen4, kling_2_6, kling_3_0, veo_3_1, seedance_pro.

Endpoint: POST /api/v1/creative-hub/generate/video — the legacy route accepts only luma_ray3 / runway_gen4. See ch-114.

3. Avatars (UGC videos)

Lip-synced spokesperson videos.

Catalog: heygen, kling_avatar, veed.

Endpoint: POST /api/v1/creative-hub/generate/avatar — the legacy route runs via HeyGen. See ch-115.

4. Text-to-speech (TTS)

Voice narration / multilingual VO.

Catalog: elevenlabs (high quality, multilingual, voice cloning), openai_tts (good baseline, faster + cheaper), heygen.

Endpoint: POST /api/v1/creative-hub/generate/tts — the legacy route accepts elevenlabs / openai_tts. See ch-116.

5. Compositing

Assemble clips + text + audio into final ad.

ProviderStrengths
creatomateTemplate-based compositing

Endpoint: POST /api/v1/creative-hub/generate/composite. See ch-117.

The async job pattern

All generation endpoints behave identically at the lifecycle level:

  1. Submit: POST /api/v1/creative-hub/generate/{type} with params → returns 202 Accepted + {job_id, status: "pending"}
  2. Process: SQS worker picks up; status flips pendingprocessing
  3. Complete: worker writes the result + marks status: completed
  4. Or fail: on error, status: failed + error_message populated
  5. Poll: client polls GET /api/v1/creative-hub/generate/jobs/:id every 5-10 sec
  6. Download: once completed, client fetches the result

Generation time varies:

  • Images: 10-60 sec
  • Short videos (5-10s clips): 1-5 min
  • Avatar videos: 2-10 min (longer scripts = longer)
  • TTS: 5-30 sec
  • Compositing: 30 sec - 5 min depending on complexity

creative_job table

Each generation creates a creative_job row with:

  • id (UUID), user_id, team_id
  • type (image / video / avatar / tts / composite)
  • status (pending / processing / completed / failed)
  • provider (one of the catalog providers)
  • prompt (text input)
  • settings (JSON — provider-specific params)
  • result_urls (JSON array of output file URLs)
  • cost_cents (Int — charged amount)
  • drive_folder_id (where output stored)
  • metadata (JSON), error_message (on failure)
  • created_at, completed_at

Used by /jobs/:id for status + by Jobs panel UI.

Cost accounting

Each generation deducts from team credit balance:

  • Cost varies by provider + type + duration + resolution
  • Recorded in cost_cents (integer cents)
  • Ledger entry in credit_transaction (debit)
  • Failed jobs do not charge (cost_cents = 0)

View balance + transactions at /settings/team/billing. See ch-112 AI credits.

Choosing a provider

For images

  • Photoreal default: seedream_4
  • Product photography: flux_2_pro
  • Posters with text: gpt_image_1_5
  • Image edit (e.g. product-in-hand): nano_banana_pro / nano_banana

For videos

  • Cinematic ads: luma_ray3
  • Text-to-video first try: runway_gen4
  • Physics-heavy scenes: kling_2_6 / kling_3_0
  • Highest quality (Google): veo_3_1
  • Additional model: seedance_pro

For avatars

  • heygen, kling_avatar, or veed. Pick the avatar + voice in the provider's library first.

For TTS

  • Premium / cloned voice: elevenlabs
  • Baseline / multilingual default: openai_tts

Best practices

Generate variants

AI is cheap relative to manual. Generate 3-5 per concept, pick winners.

Match aspect ratio to placement

  • 9:16 for Reels / Stories / TikTok
  • 1:1 for feed
  • 16:9 for in-stream

Pair generations

  • TTS narration + video (compositing in ch-117)
  • AI image background + uploaded logo (compositing)
  • Multiple language variants of same avatar (different voice_id per locale)

Watch your credit balance

Generations add up. Set alerts at /settings/team/billing for low-balance warnings.

Common mistakes

  • Picking provider blindly: each has strengths; match to use case
  • Generating long videos for short ad placements: 30s video for a 6s placement = waste of credits; generate target duration
  • Forgetting failed jobs are free: don't over-engineer retries
  • Polling too aggressively: every 5-10 sec is plenty; faster polling doesn't speed up generation

FAQ

What can I create with Wevion's AI generation?

Wevion's Creative Hub supports 5 generation types: images (feed, Stories, posters), videos (Reels, TikTok, in-stream), avatars (lip-synced UGC spokesperson videos), text-to-speech narration, and compositing that assembles clips, text, and audio into a final ad. The provider catalog is 6 image + 6 video + 3 avatar + 3 TTS + 1 compositing, though the legacy /generate/* route exposes only a subset. Each type has its own endpoint under /api/v1/creative-hub/generate/.

Why doesn't my generated file appear immediately?

All Wevion AI generation is async. A POST returns 202 Accepted with a job_id and status pending, then an SQS worker processes it before writing the results. Your client polls GET /api/v1/creative-hub/generate/jobs/:id every 5-10 seconds until status is completed. Images take 10-60 seconds, short videos 1-5 minutes, and avatar videos 2-10 minutes.

Am I charged if an AI generation fails?

No. Failed jobs do not charge — their cost_cents is 0. Successful generations deduct from your team credit balance, with the cost varying by provider, type, duration, and resolution, recorded as a debit in the credit_transaction ledger. You can view your balance and transactions at /settings/team/billing.

Which provider should I choose for images?

The photoreal default is seedream_4; for product photography use flux_2_pro; for posters with text on the image use gpt_image_1_5 (text-aware); for image editing like product-in-hand use nano_banana_pro / nano_banana. Note the legacy /generate/image route accepts only flux_2_pro / gpt_image_1_5 (default flux_2_pro). Match the provider to your use case rather than picking blindly.

FAQ

What can I create with Wevion's AI generation?

Wevion's Creative Hub supports 5 generation types: images (feed, Stories, posters), videos (Reels, TikTok, in-stream), avatars (lip-synced UGC spokesperson videos), text-to-speech narration, and compositing that assembles clips, text, and audio into a final ad. The provider catalog is 6 image + 6 video + 3 avatar + 3 TTS + 1 compositing, though the legacy /generate/* route exposes only a subset. Each type has its own endpoint under /api/v1/creative-hub/generate/.

Why doesn't my generated file appear immediately?

All Wevion AI generation is async. A POST returns 202 Accepted with a job_id and status pending, then an SQS worker processes it before writing the results. Your client polls GET /api/v1/creative-hub/generate/jobs/:id every 5-10 seconds until status is completed. Images take 10-60 seconds, short videos 1-5 minutes, and avatar videos 2-10 minutes.

Am I charged if an AI generation fails?

No. Failed jobs do not charge — their costcents is 0. Successful generations deduct from your team credit balance, with the cost varying by provider, type, duration, and resolution, recorded as a debit in the credittransaction ledger. You can view your balance and transactions at /settings/team/billing.

Which provider should I choose for images?

The photoreal default is seedream4; for product photography use flux2pro; for posters with text on the image use gptimage15 (text-aware); for image editing like product-in-hand use nanobananapro / nanobanana. Note the legacy /generate/image route accepts only flux2pro / gptimage15 (default flux2pro). Match the provider to your use case rather than picking blindly.

Steps

  1. Submit: POST /api/v1/creative-hub/generate/{type} with params → returns 202 Accepted + {job_id, status: "pending"}
  2. Process: SQS worker picks up; status flips pending → processing
  3. Complete: worker writes the result + marks status: completed
  4. Or fail: on error, status: failed + error_message populated
  5. Poll: client polls GET /api/v1/creative-hub/generate/jobs/:id every 5-10 sec
  6. Download: once completed, client fetches the result

Last updated: 2026-05-17