ARTICLE

Batch Banana FLUX 3 Image plus MCP: a second bulk-catalog leg in Bubble with BIAIG after promo pricing

After 8 Oct 2026 UTC, FLUX 3 routing is more than BFL API calculators. A Batch Banana MCP leg still needs the same Bubble job/ref model as your first leg—BIAIG-style scheduled API workflows.

Context after the promo window

Black Forest Labs shipped FLUX 3 Image on 1 Oct 2026. A ~50% launch discount on BFL API use ran through 8 Oct 2026, 15:00 UTC; after that, list/API pricing applies (BFL’s pricing page shows a calculator example around $0.048/image at 1K; full tiers vary by resolution).

FLUX 3 Image targets layout-heavy work: up to 10 reference images, bounding-box placement, unified generate/edit, and multi-resolution output. For me that shifted bulk-catalog design—not just cost—toward how you store refs and job state in Bubble. Worth reading next: After 8 Oct: FLUX 3.

Batch Banana added FLUX 3 Image the same day and exposes it via hosted MCP at https://mcp.batchbanana.com/mcp (OAuth, workspace credits, no API key in the client). Batch Banana bills FLUX 3 in credits (e.g. 6/12/72 for 1K/2K/4K per its release note)—a different billing shape than direct BFL USD API credits.

Two legs, one catalog

In this digest stack, BIAIG is an editorial label for the first leg: the familiar Bubble bulk-image path (API Connector/plugin plus Schedule API workflow on a list → parallel independent workflows, task/job IDs, polling, durable storage because provider URLs often expire). Scout did not find a public product literally named BIAIG—I treat it as your existing in-app/API route. Same topic: Tencent Hy Image 3.5 Preview.

The second leg is MCP-triggered batches: an agent calls Batch Banana tools, results land in the Batch Banana library, and your Bubble app must still mirror job IDs, ref slots, and final assets if the catalog lives in Bubble.

Aggregator legs (WaveSpeedAI submit/poll with ordered 1–10 refs; Vercel AI Gateway bfl/flux-3-image) stay relevant for post-promo cost/routing comparisons but are not MCP-native like Batch Banana.

BFL’s official MCP (https://mcp.bfl.ai, OAuth billed to the org) does not clearly list FLUX 3 Image on generate_image in the public tool docs I reviewed (often FLUX.2 image models plus FLUX 3 video). I verify live bfl://models or current Mintlify before I route anything.

Batch Banana MCP: what to actually call

From MCP tool documentation:

  • Async flow: generate_image → get_generation (do not assume a synchronous URL in Bubble without polling).
  • Library-backed refs: search_library, import_image—refs live in the BB workspace, not automatically in your Bubble DB.
  • Quote before spend, request-key idempotency (IDEMPOTENCY_CONFLICT; price changes can reject requests).
  • Caps: e.g. up to 8 images per generate_image; bulk edit_image up to 256 (free edits) / 40 (paid edits)—plan chunking for large catalogs.
  • RATE_LIMITED: Bubble parallel scheduling can hit provider limits; use backoff and partial-failure handling.

Ops: whoever connects MCP to a workspace spends real credits; MCP does not delete work, but spend still happens.

Bubble data model (shared across both legs)

One bulk catalog → one canonical row (your internal catalog key), two entry points → two provider job namespaces. Without that, consistency checks (same prompt, refs, model, resolution) drift.

Minimum fields per catalog row

Field Purpose
catalog_row_id Your canonical Bubble key
leg biaig_api | batch_banana_mcp | (optional aggregator)
provider_job_id BB generation/job ID, BFL request_id, WaveSpeed prediction id—do not mix types in one field; prefer typed subfields
idempotency_key BB MCP request key plus Bubble-side dedup on agent/workflow retry
status queued / running / succeeded / failed / expired_url
model + resolution FLUX 3 Image tier (1K/2K/4K)
prompt_hash Dedup and audit
ref_slots[1..10] URL or file id after import to durable storage (S3/plugin file)
layout_payload Bounding-box JSON (BFL-native)—do not assume 1:1 through BB MCP or aggregators without verification
quoted_credits / quoted_usd Leg-specific quote snapshot before spend
final_asset_url After copy from provider/BB library to your storage
consistency_group_id When two legs generate the “same” SKU for A/B or failover

Ref slots: normalize, do not blindly copy

  • FLUX 3 / Batch Banana: up to 10 refs.
  • BFL MCP snippet: up to 8 input_image slots per request.
  • WaveSpeed edit: 1–10 ordered URLs.

In Bubble, store an ordered list with slot index and source (bubble_file, bb_library_id, external_url_temp). When switching legs, remap—do not silently truncate.

Consistency checks with two bulk entry points

Before marking catalog rows published:

  1. prompt_hash, model, resolution match within a consistency_group_id when comparing legs.
  2. ref_slots: same count and order—or an explicit ref_mapping_note when a leg shortens refs.
  3. Every succeeded row’s provider_job_id has a final_asset_url on durable storage (not only BB library or a temp BFL URL).
  4. Idempotency: agent retries or scheduled reruns do not double spend without a new key.

Bubble Schedule API workflow on a list and MCP batches are both parallel; rate limits and duplicate jobs are an ops design problem, not “free” MCP magic.

Post-promo routing (honest framing)

After the promo I stopped asking “cheapest row in a spreadsheet.” The real question is catalog of record and who polls and persists.

  • BIAIG leg: control in Bubble workflows, direct BFL API or plugin—BFL USD/credits; you own polling.
  • Batch Banana MCP leg: fast agent-driven bulk plus library refs, BB credit billing, documented async/idempotency—but Bubble mirroring is mandatory.
  • Aggregator/Gateway: single API key, different ID shapes—a third leg only if already in your architecture (prior digest “Flare–Sunburst–WaveSpeedAI” routing is internal/compare context; Scout found no stable public product match under those names).

I would not build cross-leg failover without aligned ref/layout semantics—feature parity is not guaranteed.

Pre-production checklist

  1. Canonical catalog_row_id plus typed provider_job_id per leg.
  2. Quote and idempotency key on every spend (MCP and API).
  3. Import refs to durable storage; document slot indices.
  4. Polling workflow or agent discipline for get_generation / plugin status.
  5. Partial failure: which rows retry vs quarantine.
  6. Who holds OAuth on the BB workspace / BFL org.
# Pre-production check Details
1 Canonical catalog_row_id plus typed provider_job_id per leg Per-leg identity
2 Quote and idempotency key on every spend MCP and API
3 Import refs to durable storage Document slot indices
4 Polling workflow or agent discipline get_generation / plugin status
5 Partial failure policy Which rows retry vs quarantine
6 OAuth ownership BB workspace / BFL org

Open questions (from Scout packet)

  • What does BIAIG mean in your stack—plugin, custom workflow, or bulkimagegeneration.com?
  • Does mcp.bfl.ai expose FLUX 3 Image on generate_image today?
  • Which identifier is canonical for audit—internal row key or provider id?

Sources: Batch Banana release and MCP docs, BFL model/pricing/MCP docs, Bubble bulk operations manual, WaveSpeed/Vercel changelog—see Scout packet. Pricing and tool catalogs are time-sensitive; verify before deploy.

← All articles