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 5 hours 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 inapps/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, defaultflux_2_pro), plus provider-specific fields. Async viagenerate-image.worker.ts; result URLs stored increative_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:
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, defaultflux_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.