Midjourney V8.2 personalization profiles: the Sume substitute
Midjourney V8.2 builds personalization profiles from your image ratings. The Sume image API has none; a brand brief plus reference images does the same job.

Midjourney V8.2 ships better personalization: profiles built from the images you have rated, with a larger pool of images to learn from. The Sume image API has no per-user taste profile and does not learn from your ratings. What you can do is write your taste down: a short brand brief in the prompt and a fixed set of reference images in input_references. That gives consistent output you can version and share.
What Midjourney says
From the Version 8.2 post and the 9/23 changelog.
| Item | What the page says |
|---|---|
| Released | V8.2 on July 24, 2026. |
| Personalization | Better comprehension of individual preferences, especially with extensive rating histories. |
| Profiles | A much larger and improved pool of images for creating personalization profiles. |
| 9/23/26 | New Style Profiles and Featured tabs with detail pages. |
What replaces a profile on Sume
A profile is hidden state. On Sume you make that state explicit and put it in the request. Two parts carry most of the effect.
- A brief of three to five sentences: subject matter, lighting, palette, mood, and what to avoid, written positively.
- Reference images chosen from your own best work, sent as
input_references. Models differ in how many they take, so read theinput_referencesrange for the model you pinned. - A pinned model id and quality, so a change of model never silently changes the look.
A reusable profile file
Store the profile as data so it is reviewed like code. The request builder reads it and sends the brief as the start of every prompt.
import json, os, requests
profile = {
"model": "openai/gpt-image-2.5",
"brief": "Warm natural light, muted earth palette, calm minimal sets, no neon.",
"refs": ["https://example.com/ref1.jpg", "https://example.com/ref2.jpg"],
}
def render(subject):
r = requests.post(
"https://api.sume.com/v1/images",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
timeout=60,
json={
"model": profile["model"],
"prompt": f"{subject}. {profile['brief']}",
"aspect_ratio": "auto",
"input_references": [
{"type": "image_url", "image_url": {"url": u}} for u in profile["refs"]
],
},
)
return r.status_code, r.json()What you give up
A rating-based profile improves as you rate more images. A file does not, unless you update it. Review it monthly: add new best-of references, drop stale ones. Also note that references steer a model but do not train it; Sume's image API lists no fine-tuning or custom-model endpoint in the docs.
See the related post on style references for how the reference approach compares with Midjourney's sref codes.
Checks before you rely on it
Run the profile through a few unrelated subjects and look for the same palette and mood. If a reference dominates too much, swap it for a plainer one. If the brief is ignored, shorten it.
Sources
Related posts
More in Use cases
- Music bed under narration: the no-spoken-word clause for Lyria 3.5
To get a music bed that stays out of a voiceover's way, end the Sume music prompt with no vocals, no spoken word, then duck it under the voice in Timeline.
- Score a scene from its still: image_url on Sume music, Lyria 3.5
Pass the accepted scene still as image_url on a Sume music request so the score matches the picture. What the field accepts, what it does not, and the cost.
- Translate text inside an image: one Nano Banana 2 edit per language
Google says Nano Banana 2 can translate and localize text within an image. Loop one edit per language through Sume POST /v1/images and keep the layout fixed.
- Nano Banana Pro 4:5 is not 1080x1350: crop and resize in Python
On Sume, Nano Banana Pro takes 4:5 at about 928x1152, not exact 1080x1350. Resize to Instagram's size locally with Pillow, with the small crop explained.
Written by Sume