Generate AI images

POST /api/v1/creative-hub/generate/image accepts flux_2_pro / gpt_image_1_5 (default flux_2_pro). Broader image catalog (Seedream, Nano Banana) lives in the studio suite. Async, output in Drive.

Written By Salvatore Sinigaglia

Last updated About 1 hour ago

POST /api/v1/creative-hub/generate/image accepts flux_2_pro / gpt_image_1_5 (default flux_2_pro). Broader image catalog (Seedream, Nano Banana) lives in the studio suite. Async, output in Drive.

Generate AI images

POST /api/v1/creative-hub/generate/image (verified apps/backend/src/routes/api/creative-hub-generate.route.ts). This legacy route accepts two providers: flux_2_pro (default, photoreal + product) and gpt_image_1_5 (text-aware). The broader image catalog in apps/backend/src/providers/creative/types.ts (seedream_4, seedream_4_5, nano_banana_pro, nano_banana, plus these two) is exposed through the newer studio suite (see ch-101). Params: prompt (required), provider (optional, default flux_2_pro), plus provider-specific fields. Async via generate-image.worker.ts; result URLs stored in creative_job.result_urls.

Who is this for

Mediabuyers needing static images for ads β€” product shots, lifestyle scenes, poster-style designs.

Providers on this route

The /generate/image route accepts flux_2_pro (default) and gpt_image_1_5. seedream_4_5 (and the other catalog models) are used from the newer studio suite, not this route.

flux_2_pro (default)

Best for: photorealistic images, product photography, lifestyle scenes.

Strengths:

  • High photo realism
  • Good at composition + lighting
  • Default choice for product ads

Weaknesses:

  • Limited text-on-image (asks to render copy = often garbled)

gpt_image_1_5

Best for: posters with text on image, designs that need readable copy embedded.

Strengths:

  • Renders text legibly (much better than other providers)
  • Good for "Sale 50% off" type posters

Weaknesses:

  • Slightly less photoreal than Flux

seedream_4 / seedream_4_5 (studio suite, not this route)

Seedream is the photoreal default in the broader catalog (used from the studio suite, not the /generate/image route). Good for photoreal and stylized looks depending on the model.

How to generate

Step 1: Open the generator

/creative-hub β†’ top toolbar β†’ AI Generate β†’ Image tab.

Or from within a folder β†’ Generate here β†’ Image.

Step 2: Pick a provider

Dropdown (default flux_2_pro). Pick per use case (see provider guidance above).

Step 3: Write the prompt

Text field. Be specific. Include:

  • Subject (what's in frame)
  • Action / pose
  • Style (photoreal / illustration / cinematic / etc.)
  • Framing (close-up / medium / wide)
  • Lighting (natural / studio / golden hour)

Example: "A product shot of a sleek black wireless headphone on a marble surface, studio lighting, soft shadow, hero composition, ultra-detailed."

Step 4: Set dimensions

width Γ— height in pixels.

Common dimensions:

Use caseWidth Γ— Height
Feed (1:1)1024 Γ— 1024 (default)
Stories / Reels (9:16)720 Γ— 1280 or 1080 Γ— 1920
In-stream (16:9)1280 Γ— 720 or 1920 Γ— 1080
Hero / landscape1600 Γ— 900

Larger dimensions cost more credits + take longer.

Step 5: Pick num_variants

How many variations to generate from the same prompt. Default 1, max varies by provider (typically 1-4).

For exploration: 3-4 variants. For locked concepts: 1.

Step 6: Submit

Click Generate. POST /api/v1/creative-hub/generate/image runs.

Returns 202 Accepted + {job_id, status: "pending"}.

Step 7: Track + download

UI shows the job in the Jobs panel. Status progresses pending β†’ processing β†’ completed (typically 10-60 sec).

Once completed: click the job β†’ preview + download. Files also added to your Creative Hub folder automatically.

Endpoint

POST /api/v1/creative-hub/generate/image (verified).

Body:

  • prompt (required, 1-2000 chars)
  • provider (optional, flux_2_pro | gpt_image_1_5, default flux_2_pro)
  • width, height (optional, 256-2048)
  • num_variants (optional, 1-4)
  • drive_folder_id (optional, target Drive folder for output)

Returns:

  • 202 Accepted
  • {job_id, status: "pending"}

Poll GET /api/v1/creative-hub/generate/jobs/:id.

Cost

Cost depends on provider + dimensions + num_variants. Recorded in creative_job.cost_cents. See ch-112 AI credits.

Prompt engineering tips

Be specific over general

  • Bad: "a person using a laptop"
  • Good: "a young professional woman in a sunlit cafe, working on a silver laptop, focused expression, candid composition, shallow depth of field"

Specify what NOT to include

  • Some providers support negative prompts. Use them: "no text, no watermark, no logos, no people in background"

Match aspect ratio to placement

  • Generate 1080 Γ— 1920 for Reels β€” not square then crop. Crop loses composition.

Iterate, don't over-tune one prompt

  • 3 variants of "version 1" is faster than 1 variant of "version 17"
  • Pick the best variant + iterate from there

Use real product images as input where possible

  • For product-shot replacements: pair with ch-117 compositing to overlay real product on AI-generated background

Common mistakes

  • Asking for text in flux_2_pro: switch to gpt_image_1_5
  • Generating square then cropping for Reels: generate 9:16 directly
  • Vague prompts: specificity = consistency
  • Forgetting to set folder_id: outputs land in root; harder to organize later
  • Generating 8 variants when 3 would do: wastes credits

Common issues

  • Generation rejected (content moderation): prompt triggered provider's safety filter. Reword without sensitive terms. Failed jobs are free.
  • Result doesn't match prompt: try the same prompt with another provider (e.g. switch flux β†’ gpt_image)
  • Generation stuck "processing" > 5 min: rare; usually self-resolves. If persistent, check ch-128.
  • Variants look identical: provider's seed handling; try slight prompt variations across variants

FAQ

Which AI image provider should I use in Wevion?

The /generate/image route offers two providers: flux_2_pro (the default, best for photorealistic product shots and lifestyle scenes) and gpt_image_1_5 (renders legible text on the image, so it suits posters like "Sale 50% off"). The broader catalog (Seedream, Nano Banana) is available through the newer studio suite rather than this route. Pick per use case in the provider dropdown.

What image dimensions can I generate?

You set width and height in pixels, both defaulting to 1024 for a square feed image. Common presets in Wevion are 720x1280 or 1080x1920 for Stories and Reels, 1280x720 or 1920x1080 for in-stream, and 1600x900 for hero landscape. Match the aspect ratio to your placement rather than cropping later, since larger dimensions cost more credits and take longer.

How do I generate several image variations at once?

Use the num_variants parameter, which defaults to 1 and typically maxes out at 1-4 depending on the provider. For exploration, generate 3-4 variants from the same prompt, then pick winners; for a locked concept, keep it at 1. In Wevion, iterating across a few variants is faster and cheaper than over-tuning a single prompt many times.

What happens if my image generation fails?

If a generation is rejected by the provider's content moderation, your prompt triggered a safety filter, so reword it without sensitive terms and resubmit. Failed jobs in Wevion are free, so a rejection costs no credits. If a result doesn't match your prompt, try the same prompt on a different provider, such as switching from flux_2_pro to gpt_image_1_5.