Midjourney moodboards now take uploads: reference sets for Sume edits

Midjourney's October 1 changelog lets moodboard pages accept file uploads. To reuse a reference set in an API, store the URLs and send them as input_references.

5 min readSume
All posts

Midjourney's October 1 alpha changelog says moodboard pages now accept direct file uploads, and that dragged images show an attach card with a style reference option. If you want the same reference set available to code, keep the image URLs in a list of your own and send them as input_references on Sume's POST /v1/images; Sume's request has no moodboard object, only the reference list.

That is the practical split: Midjourney's moodboard is a feature inside its app. A reference set for an API job is a list of public HTTPS image URLs that you version like any other config file.

What did the Midjourney changelog change?

From the Midjourney alpha changelog (read 2026-10-04), the items that touch references:

  • Moodboard pages accept direct file uploads.
  • Dragged images display an attach card with a style reference option.
  • All the srefs in a prompt now show as a single style pill with thumbnails.
  • Edits keep the base image's aspect ratio, so a stray --ar in the prompt will not stretch the result.

How many references can a Sume request carry?

Reference limits on Sume, read 2026-10-04
ModelReferences acceptedNote
openai/gpt-image-2.5 and SunburstUp to 16Also takes mask_url
ideogram/ideogram-v4.5Up to 5First is the edited image, up to 4 more are references
Most other edit-capable modelsUp to 10Read the input_references range in the catalog
Text-only models0References return 400

How do I keep a reference set in code?

Store the set as a small JSON file next to your prompts, upload the images somewhere public over HTTPS, and let one function turn the list into the request. Localhost, private-network and non-HTTPS URLs are rejected before submission, so a file on your laptop is not a reference until it is hosted.

import json, os, requests

def edit(set_file, prompt, model="openai/gpt-image-2.5"):
    urls = json.load(open(set_file))["urls"]
    refs = [{"type": "image_url", "image_url": {"url": u}} for u in urls]
    r = requests.post(
        "https://api.sume.com/v1/images",
        headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
        json={"model": model, "prompt": prompt, "input_references": refs},
        timeout=90,
    )
    r.raise_for_status()
    return r.json()

if __name__ == "__main__":
    out = edit("moodboard-autumn.json", "Match the palette and grain of these images")
    print(out["data"][0]["url"])

Will the result match the moodboard?

Not in the way a stored Midjourney style does. A list of images is guidance to an edit or reference model, and the prompt still carries the instruction. Name what to keep (palette, grain, lens look) in the prompt and keep the set small and coherent, since a long mixed list dilutes the signal. Compare against a single-image reference before you commit to a large set.

Sume does not offer Midjourney, so there is no sref to forward; the references act as guidance for the models in the Sume catalog.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume