Upgrading to Flux.2 Max: One Model for Every Post
The Routing Problem
The previous image generation pipeline had two separate paths. Posts with a product image routed to fal-ai/flux-2-pro/edit โ a multi-reference compositor that could hold face, product, and moodboard references simultaneously. Posts without a product image went directly to fal-ai/flux-pro/kontext, the instruction-following editor, and stopped there. No naturalization pass.
This created a quality split. Product posts received a Kontext refinement pass to blend compositing artifacts. Non-product posts โ service businesses, lifestyle content, brand-only shots โ were delivered as-is from a single model call. The routing logic was a conditional branch that also encoded an unintentional quality tier.
Removing that branch was the simplest fix.
Why flux-2-max/edit
fal-ai/flux-2-max/edit is the highest-quality generation model currently available on Fal. Compared to flux-2-pro/edit, it produces better face consistency across multiple references, supports outputs up to 4 megapixels, and accepts ten simultaneous reference images rather than nine.
It also introduces native brand color conditioning. Hex values passed alongside the prompt โ primary and secondary brand colors extracted during onboarding โ are embedded directly into the generation instruction rather than woven awkwardly into prompt text. The model has a cleaner mechanism to understand what those values mean.
Pricing is megapixel-based: $0.07 for the first megapixel, $0.03 for each additional. At the standard 1080ร1080 output size โ approximately 1.17 megapixels โ the generation cost is $0.075. This is slightly less than the previous flux-2-pro/edit flat rate of $0.08 at that resolution.
Reference Slot Order
Ten slots, filled in priority order: influencer face first, then product references, then moodboard images.
[influencer, product_1, product_2, ..., moodboard_1, moodboard_2, ...]
Face identity is the anchor. If the model has to make trade-offs between conflicting reference signals, it should resolve them in favor of the face. Product references come next โ they carry the visual grounding that prevents the model from hallucinating packaging details or label text. Moodboard images are softer style signals and occupy the remaining slots.
The existing product_image_url and moodboard_image_url fields still work. New product_image_urls[] and moodboard_image_urls[] arrays allow filling additional slots โ useful for brands with multiple product angles, component cutouts, or campaign-level style references.
The Naturalize Pass, Now Universal
Multi-reference generation produces compositing artifacts regardless of whether a physical product is present. When a model conditions on a face from one photographic context and a moodboard from another, the result is a scene that reads as assembled rather than photographed. Skin has a uniform temperature. Lighting doesn't quite match the environment. Shadows are approximate.
These artifacts appear on service business posts as much as on product posts. A coffee shop influencer shot composed from a face reference and two cafe moodboard images will show the same synthetic flatness that a skincare post shows. The absence of a product doesn't prevent the problem โ it just changes which reference is causing the conflict.
The Kontext pass addresses this for every post now. The generated image becomes the canvas. Kontext is instructed to enhance skin texture, add natural lighting variation, and remove surface smoothness artifacts without touching faces, products, clothing, or composition. This is a targeted photorealism edit, not a restyle.
What This Costs
For a new generation at 1080ร1080:
flux-2-max/edit: ~$0.075- Kontext naturalize: $0.04
- Total: ~$0.115
Revisions remain unchanged. They route directly to fal-ai/flux-pro/kontext and cost $0.04.
The comparison to the old pipeline depends on post type. Non-product posts previously cost $0.04 with no naturalization pass โ they now cost $0.115 and receive one. Product posts previously cost $0.08 with a naturalization pass โ they now cost $0.115 with a higher-quality generation model. In both cases, the cost increase is the price of a uniform quality floor across every post type.
One Pipeline
The routing branch is gone. Every new generation runs the same two calls in sequence. Reasoning about what the pipeline will do for a given post no longer requires understanding which conditions trigger which path. The model is the same, the naturalization pass is the same, and the reference slot ordering is the same โ whether the post is for a skincare brand with five product images or a yoga studio with none.