Size-by-language ad matrix: one Sume job per cell

Luma Variants returns every size and language pair from one master. On Sume each pair is a job, so 2 sizes and 2 languages is 4 submits against plan capacity.

4 min readSume
All posts

Luma Variants returns a version for every size and language combination you pick, so 1:1 and 9:16 in English and Spanish gives four versions. On Sume, count each combination as one paid job. Four cells fit any plan; a five-size, five-language matrix is 25 jobs and is more than the accepted capacity of a Pro workspace.

The matrix example is from Luma's launch post. Capacity numbers are from Sume's Generation admission docs, read 2026-10-01.

How many jobs can a workspace hold?

Accepted job capacity is processing concurrency plus queue capacity, the most paid jobs that can be processing or queued at once. The docs say to prefer the live generation_limits field over the static table.

Accepted generation jobs by plan, read 2026-10-01.
PlanProcessingQueueAccepted
Free156
Pro42024
Startup84048
Scale20100120

What does a 3 by 5 matrix need?

Three sizes times five languages is 15 jobs. That fits Pro (24) and Startup (48) in one wave, but not Free (6). On Free, send six, wait for terminal states, then send the next batch. The queue-full rule is: stop adding work, poll until a job finishes, then retry with the same idempotency key.

What about the balance?

Each submit must reserve its estimate from the workspace balance. If Sume cannot, the call fails with 402 insufficient_credits before provider work starts, so a matrix can stop part-way. Submit the cells you care most about first, and give each cell a key such as ad-3-1x1-es.

How do I name the cells?

Store the cell, the job_id and the key together. That lets you re-read a finished cell and resubmit only the ones that failed. Aspect ratio support is covered in which Luma placements match Sume ratios.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume