AI magazine cover generator API: covers with room for type

Generate a magazine-cover-style image with Sume: run the sume-magazine-cover-campaign Format with your photos, then set the masthead yourself.

5 min readSume
All posts

To generate a magazine-cover-style image with the Sume API, run the catalog Format sume-magazine-cover-campaign at POST /v1/formats/sume/sume-magazine-cover-campaign/runs, with your brief in instruction and the portrait or product photos in attachments. Its description names clean campaign typography zones, which reads as room for type: plan to set the masthead and cover lines yourself.

The facts below come from Sume's Format catalog, Create a run, Structured output, and Image API docs, read on 2026-09-27. The Format's description is quoted from its catalog entry.

What does the magazine cover Format make?

sume-magazine-cover-campaign (catalog title: Sume Magazine Cover Campaign) is a catalog image Format. Its description reads: "Create a finished magazine-cover-style campaign image with a bold portrait, designed negative space, and clean campaign typography zones. Use when the user asks for beauty launches, fashion campaigns, cover reveals, and branded editorial social posts. Not for: animated or motion deliverables."

That is the Format's stated aim, not a promise about a given image, and it makes a still rather than a moving cover. GET /v1/formats/sume/sume-magazine-cover-campaign returns the description; the recipe body is not returned, because it reaches the agent, not the caller. Any key with formats:write may call the Format.

How do I brief a cover?

A cover run carries the same fields as any Format run. The ones that shape a cover:

  • Attach the portrait and the product as input_image items with public HTTPS image_urls, up to 30 per run. filename is the label the agent sees.
  • Say where your type will go in instruction, such as a clear top third for the masthead. It accepts 8000 characters, and about the first 4000 reach the run.
  • Sume publishes no field list for input; the Format's recipe reads the keys it recognizes. No documented field carries masthead text, so keep the words on your side.
  • Bind an output_schema with a SumeMediaFile# field for the cover, and make any text field nullable. On the projection path, text that would come from your brief comes back null.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-magazine-cover-campaign/runs" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: acme-spring-cover-v1" \
  -d '{
    "instruction": "Spring launch cover. Keep the top third clear for a masthead.",
    "attachments": [
      { "type": "input_image", "image_url": "https://example.com/model.jpg", "filename": "model.jpg" },
      { "type": "input_image", "image_url": "https://example.com/cream.png", "filename": "cream.png" }
    ],
    "output_schema": {
      "name": "acme/cover/v1",
      "schema": {
        "type": "object",
        "additionalProperties": false,
        "required": ["cover_image", "alt_text"],
        "properties": {
          "cover_image": { "$ref": "SumeMediaFile#" },
          "alt_text": { "type": ["string", "null"] }
        }
      }
    },
    "primary_output_key": "cover_image",
    "generation_spend_cap_usd": 10
  }'

How do I get the cover back?

The create answers 202 with a run receipt. Poll GET /v1/format-runs/{run_id}, or send communication.webhook_url and receive one signed format.run.terminal POST. With the schema above, primary_output_url is the cover. Its media.sume.com URL does not expire, and it is public to anyone holding it.

If nothing the run made satisfies your schema, output is null, output_error says why, and over the API the run ends failed; artifacts[] still lists what the run made. Then lay out the masthead and cover lines in the zones, in your own design step.

Can I generate a cover with the Image API instead?

Yes, when you want to choose the model and write the prompt. POST /v1/images takes the portrait and product as input_references with public HTTPS URLs, and the options below shape a cover. A model accepts only the values its catalog descriptors list, so read GET /v1/images/models first; a parameter the model does not list is refused with 400 unsupported_parameter.

Ratios and sizes are covered in AI image generation API aspect ratios, and 4K and image counts in 4K AI image generation API.

Request options from Image API, read 2026-09-27.
FieldValuesNote
aspect_ratioPortrait ratios include 2:3, 3:4, 4:5, and 9:164:5 is the Instagram portrait ratio
resolution512, 1K, 2K, 4KOnly the tiers a model lists
qualityauto, low, medium, high, xhigh, maxCatalog-gated
nUp to 10 images per callPer-model ceilings are lower
input_referencesPublic HTTPS image URLsA {min: 0, max: 0} range means text-to-image only
output_formatpng, jpeg, webp, svgOptional

What are the limits?

From the same docs pages:

  • Attachments are JPEG, PNG, WebP, GIF, or AVIF, up to 30 MB per image and 500 MB per run. input_image is the only attachment type.
  • Format generation is metered at API pricing rates under generation_spend_cap_usd: up to $500, null runs at $500, and 0 is rejected.
  • Image API billing is all-or-nothing: a completed generation is billed in full, a failed one is not billed. Its data[].url is a Sume-hosted signed URL.
  • The Format's description rules out animated or motion deliverables. For a campaign film, see AI fashion editorial video API.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume