The important trade-off is simple: provider portability is useful only if the user can see, and the system can enforce, the cost of a generation before a remote call commits it. In a marketplace that answers questions from a private knowledge base and then generates an image from the answer, I would make estimation a separate decision point, persist its result, and permit generation only when the estimate fits the caller's credit policy. That gives us a useful failure boundary instead of discovering an unexpected charge after a timeout or retry.
Short answer: query the available image models, send the intended model, resolution, and quantity to /v1/ai/cost/estimate , then use the returned estimate as both UI data and a credit-limit check. The generation request comes only after that check succeeds.…