Midjourney default parameters: a Sume image request template

Midjourney can now save your current settings as defaults. Here is the equivalent for the Sume image API: one JSON template merged into every request.

4 min readSume
All posts

Midjourney's alpha changelog of 9/23/26 added "Set current pills as default", and the 10/1/26 changelog adds default parameters inside folders. The Sume image API has no saved defaults on the server, so the equivalent is a template that lives in your code and is merged into every POST /v1/images call. This post shows the pattern and which fields belong in it.

What Midjourney changed

Both facts below come from Midjourney's own update pages. They describe the alpha web app, not an API.

Midjourney default-parameter facts, read 2026-10-02
DateChange
9/23/26Users can save custom prompt settings via "Set current pills as default".
10/1/26The ability to establish default parameters within folders.

The Sume equivalent: a template you own

A request to the Image API is plain JSON. Keep a base object per project (the folder equivalent) and overlay the prompt and any per-call fields. Good template fields are model, aspect_ratio, resolution, quality, output_format, and metadata.

metadata is a caller object that Sume stores on the job and does not send to the provider, so it is the right place for the project name or a template version. Leave prompt and input_references out of the template.

A merge function

Per-call fields win over template fields. Because a request that sets a parameter the model does not list is rejected with 400 unsupported_parameter, keep one template per model family rather than one global template.

import os, requests

TEMPLATES = {
    "product": {
        "model": "openai/gpt-image-2.5",
        "aspect_ratio": "4:5",
        "quality": "medium",
        "output_format": "png",
        "metadata": {"project": "product", "template": "v1"},
    },
}

def generate(project, prompt, **overrides):
    body = {**TEMPLATES[project], **overrides, "prompt": prompt}
    r = requests.post(
        "https://api.sume.com/v1/images",
        headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
        json=body,
        timeout=60,
    )
    return r.status_code, r.json()

print(generate("product", "matte black bottle on marble", quality="high"))

What a template cannot carry

Two Midjourney habits do not transfer. Sume does not serve seed (it returns 400 unsupported_parameter), so a template cannot make output repeatable. And pills such as style settings have no Sume field; put style words in the prompt text or pass reference images through input_references.

When a request runs past the 30 second blocking budget, the response is 202 with a job envelope instead of the image body, so check the status code before reading data. See Jobs and results.

Checklist

Before you commit a template to a repo:

  • Read GET /v1/images/models and confirm each field is listed for the model you pinned.
  • Version the template in metadata so you can tell later which defaults produced a job.
  • Keep the prompt and references out of the template so reviewers can diff only what changed.

Where a template helps most

Teams that produce a steady stream of similar images, such as product shots for one catalog, gain the most. When every request starts from the same object, a reviewer can read a single diff to see what changed between two batches, and a new teammate does not need to remember which quality or aspect ratio the team settled on.

A second benefit is cost control. Pin quality in the template and a stray high-quality request cannot slip in unless someone passes it as an override on purpose. Read the endpoint pricing lines for the model you pinned and note the expected cost per image next to the template.

Finally, keep the template next to the code that calls the API rather than in a wiki. A template that is versioned with the call site cannot drift away from it.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume