MODEL IDmeta:muse@image
live

Muse Image

Meta
by Meta

Muse Image is Meta's flagship image generation model from Meta Superintelligence Labs. It is built for prompt-faithful image creation, precision editing, and multi-reference composition, with strong text rendering and the ability to refine existing photos through localized markup-based edits. Meta positions it as an agentic image model that plans layouts, uses search and coding tools to improve accuracy, blends multiple visual references intelligently, and handles both creative generation and practical visual tasks such as infographics, QR codes, restorations, product-style mockups, and photobomber removal.

Muse Image

Editing images with Muse Image

How to edit an image with Muse Image: passing one source image, targeting a region in words, removing objects, restoring old photos, and refining a result across passes.

Introduction

Ask most image models to take one thing out of a photo and you get a different photo back. The object is gone, and so is the light you shot it in. Muse Image handles an edit as a scoped change. You pass one image and one instruction, the model plans the change before it renders, and the rest of the frame comes back the way you shot it.

The edit below is a single call. One photo went in with an instruction to remove the walker cutting through the right of the frame. Drag the handle and the couple and the midday light come back untouched, with the seawall and the bay running continuous where he stood.

A young couple smiling at the camera on a stone clifftop viewpoint above a bright blue bay, a whitewashed coastal town on the far shore, and a stranger with a yellow hiking backpack walking through the right of the frame looking down at his phone
OriginalEdited
One source photo and one instruction: the passer-by on the right is gone and the seawall behind him is rebuilt

This guide covers the edit request, writing an instruction the model can act on, pointing at a region without a mask, clearing objects and people out of a frame, restoring a damaged photo, and refining a result across passes. Building one image out of several sources is multi-reference composition, and generating from nothing is prompting.

The request

An edit is one image and one instruction. It goes out as an imageInference call with the source in inputs.referenceImages and the change written into positivePrompt. There is no mask parameter and no separate edit task type, so the instruction is the whole interface.

import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'meta:muse@image',
  positivePrompt: 'Remove the man with the yellow hiking backpack walking through the right side of the frame, and continue the stone wall, the bay, and the coastal town behind him. Keep the couple, their poses and clothing, the viewpoint, and the midday light exactly as they are.',
  inputs: {
    referenceImages: [
      'https://im.runware.ai/image/os/a14d18/ws/2/ii/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.jpg'
    ]
  },
  resolution: '2K'
})
import asyncio
import os

from runware import Runware


async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "meta:muse@image",
            "positivePrompt": "Remove the man with the yellow hiking backpack walking through the right side of the frame, and continue the stone wall, the bay, and the coastal town behind him. Keep the couple, their poses and clothing, the viewpoint, and the midday light exactly as they are.",
            "inputs": {
                "referenceImages": [
                    "https://im.runware.ai/image/os/a14d18/ws/2/ii/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.jpg"
                ]
            },
            "resolution": "2K"
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "9c1f4a2b-7d3e-4f80-b512-6a7c8d9e0f13",
      "model": "meta:muse@image",
      "positivePrompt": "Remove the man with the yellow hiking backpack walking through the right side of the frame, and continue the stone wall, the bay, and the coastal town behind him. Keep the couple, their poses and clothing, the viewpoint, and the midday light exactly as they are.",
      "inputs": {
        "referenceImages": [
          "https://im.runware.ai/image/os/a14d18/ws/2/ii/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.jpg"
        ]
      },
      "resolution": "2K"
    }
  ]'
runware run meta:muse@image \
  positivePrompt="Remove the man with the yellow hiking backpack walking through the right side of the frame, and continue the stone wall, the bay, and the coastal town behind him. Keep the couple, their poses and clothing, the viewpoint, and the midday light exactly as they are." \
  inputs.referenceImages.0=https://im.runware.ai/image/os/a14d18/ws/2/ii/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.jpg \
  resolution=2K
{
  "taskType": "imageInference",
  "taskUUID": "9c1f4a2b-7d3e-4f80-b512-6a7c8d9e0f13",
  "model": "meta:muse@image",
  "positivePrompt": "Remove the man with the yellow hiking backpack walking through the right side of the frame, and continue the stone wall, the bay, and the coastal town behind him. Keep the couple, their poses and clothing, the viewpoint, and the midday light exactly as they are.",
  "inputs": {
    "referenceImages": [
      "https://im.runware.ai/image/os/a14d18/ws/2/ii/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.jpg"
    ]
  },
  "resolution": "2K"
}
Response
[
  {
    "taskType": "imageInference",
    "taskUUID": "9c1f4a2b-7d3e-4f80-b512-6a7c8d9e0f13",
    "imageUUID": "4e7b2c19-8a5d-4c63-9f10-2b3c4d5e6f78",
    "imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/4e7b2c19-8a5d-4c63-9f10-2b3c4d5e6f78.jpg"
  }
]

Four fields shape an edit:

  • inputs.referenceImages carries the source as a URL, a UUID from an earlier task, a data URI, or base64. It accepts up to ten images, and a scoped edit passes exactly one. Several sources make it a composition instead, covered in multi-reference composition.
  • resolution accepts the single value 2K and takes its aspect ratio from the image you passed in, so a 3:2 photo comes back 3:2. It requires inputs.referenceImages, which makes it the sizing built for editing.
  • width and height are the alternative, and the two sizing routes are mutually exclusive. The pair has to come from the model's eight fixed shapes, listed in the prompting guide, so unless your source already matches one of them the output comes back at a different shape from the photo you sent.
  • settings.thinkingLevel controls how much the model plans before it renders and defaults to high. Edits benefit from the planning, and the trade against low is covered in prompting.

settings.webSearch and settings.imageSearch are on by default and pull real-world facts and references into a generation. An edit that rearranges what is already in the frame has nothing to look up, and switching them off is covered in grounded generation. Everything else the request accepts, including the output and delivery fields, is listed in the Muse Image model reference.

There is no seed parameter anywhere in the request. Every call renders fresh, so the same source and the same instruction give you a slightly different result each time, and the untouched parts of the frame are re-rendered along with the part you asked about. Store the file from the pass you approve, because you cannot reproduce it later.

Writing the edit instruction

What you write is a description of the change, not a description of the picture you want, and the shortest wording that identifies the target is usually the one that lands. Re-describing the whole scene reads to the model as a generation brief, and a generation brief gets you a new room rather than your room with one thing missing.

Re-description:
A bright modern living room with a light oak floor, a pale grey sofa with cushions,
a low walnut coffee table, tall windows with sheer curtains, and no moving box on the rug.

Instruction:
Remove the cardboard moving box from the rug in front of the sofa and continue the oak
floor and the rug pattern where it stood. Keep the sofa, the coffee table, the curtains,
and the daylight exactly as they are.

Two habits carry almost every edit. Name the change and only the change, so the model has one job and one place to do it. Then name what stays, because an instruction that ends after the change leaves the model free to interpret the rest of the frame as fair game. A closing clause that lists the furniture and the light costs you nothing and fences the edit in.

Removing objects and people

Taking something out of a frame is the first edit most products ship. You name the object and where it sits, and the model reconstructs what belongs behind it instead of blurring the shape away. Property listings are the everyday case: the shoot comes back with a moving box on the rug and a laundry basket by the armchair, and the agent needs the room, not the move.

A bright modern living room with a pale grey sofa and a walnut coffee table, an open cardboard moving box on the rug and a black laundry basket full of clothes beside the armchair
OriginalCleared
Two objects named in one instruction, with the floor and rug rebuilt underneath

Both objects are gone and the oak boards run unbroken under the rug where the box sat. The instruction did two jobs: it identified the objects precisely enough to find them, and it said what should be there instead. Naming the fill matters whenever the background is patterned or structured, since "remove the box" leaves the model to guess the direction of the floorboards and the shape of the rug underneath.

People come out the same way, and the hero at the top of this page is the harder version of it: a walker mid-stride at the edge of the frame hides a section of wall and water that has to be invented rather than copied from nearby. Give the model both halves of the job, the person to remove and the background that continues behind them, and hold the rest of the frame with a preserve clause.

Targeting a region in words

There is no mask input and no way to draw on the image, so the words carry the coordinates. An instruction lands where you point it when the target has a distinguishing attribute and a position in the frame. Drop either one and the model picks its own reading of the scene, which usually means it clears more than you wanted.

Remove the stack of unopened mail and the black phone charger with its coiled cable, from the left end of the sideboard top, and continue the walnut grain and the plaster wall behind them, Keep the green ceramic vase and the framed print at the right end, the sideboard, and the daylight from the left exactly as they are
TargetLocationFillPreserve

The same source, edited twice. The first instruction asks for the clutter to go. The second names which objects count as clutter and where they are.

"Clutter" is a judgment call, and the model makes it: the vase and the print are styling props the retailer paid for, and a broad instruction takes them out along with the mail. The anchored version keeps them because it named them in the preserve clause and pinned the removal to one end of one surface.

Two anchors do most of the work. Use a property that separates the target from its neighbours ("the black charger", not "the cable") and a position in the frame or on an object ("at the left end of the sideboard top", "behind the rear wheel"). When a photo holds two of the same thing, the property is what disambiguates, and when it holds one of everything, position alone is enough.

Restoring a damaged photo

A repair job puts the instruction on condition rather than content. Scans drift toward a colour cast, phone copies of prints come back soft, and old files carry grain that a sharpen pass only amplifies. Name each fault, then pin the content so the model repairs the photograph instead of reimagining the day it was taken.

A faded, grainy, soft photograph of a family of four sitting on wooden porch steps, the colours washed out and warm-shifted
Faded scanRestored
Colour cast corrected, grain cleared, and the faces resolved, with nothing in the scene changed

Skin tones come back to daylight and the wood grain in the steps resolves, while the poses and the porch stay where they were. The instruction spells the damage out fault by fault, because "fix this old photo" leaves the model to decide what counts as damage and how far to take it. A restoration re-renders faces, so check identity in the result before you ship it. If a face drifts, run the instruction again with that person described in the preserve clause. With no seed in the request, a second attempt is genuinely a second attempt rather than a repeat of the first.

Changing one property

The narrowest edit touches one attribute of one object, and it is the one e-commerce teams run most: one product shoot, then a variant per colourway without booking the studio again. The instruction names the part and its new value, then fences off everything that keeps its own material.

A cream-coloured stand mixer with a polished stainless steel bowl and a chrome trim band on a plain light grey studio background
CreamForest green
The body recoloured while the steel bowl, the shadow, and the framing hold

The body changed and the bowl did not, because the instruction listed the bowl and the chrome band as parts that keep their finish. Property edits drift when the property is described loosely. "Make it green" invites the model to relight the shot to suit the new colour, while "matte deep forest green, same highlights and reflections" keeps the change on the surface of one component. The same shape works for a material swap ("brushed aluminium instead of white plastic") or a finish change ("matte instead of gloss"). Swapping the wording on a label or a sign is the same narrow edit, quoted the way text in images sets a string out.

Refining across passes

A result can go straight back in as the source of the next edit, which is how a cleanup tool works when the user approves each step before taking the next one. Each pass is a full re-render of the frame, so the cost compounds: everything you are not touching gets generated again every time. The marketplace photo below goes through three passes, one object per pass.

The bike holds its shape and its place in the frame across all three passes, and the brick behind it is not quite the brick it started as. That is the price of the round trip. Batch independent changes into one instruction where you can, since naming all three objects in a single call buys you one render instead of three. Iterate when the intermediate matters, for example when someone is approving each step in a UI, or when what you ask for next depends on how the last change landed.

Since every call renders fresh, batch rather than repeat the call: ask for several takes of the same instruction and keep the one that landed.

Most edits land in one call. At the default thinkingLevel of high the model plans the change before it renders, so a clear instruction rarely needs a follow-up. Reach for another pass only when the first missed something you can name, because a pass run to see what happens costs a full re-render and moves pixels you were already happy with.

Tips

  1. Name the target and where it sits. There is no mask, so a distinguishing property plus a position in the frame is what points the model at the right object. "The black charger at the left end of the top" beats "the cable".

  2. Say what stays. Close every instruction with the elements that must not change: the subject, the background, the light, the framing. An instruction that stops after the change invites the model to reinterpret the rest.

  3. Name what fills the gap. For a removal, describe the surface that continues behind the object. Patterned floors and brickwork rebuild far more cleanly when you say what belongs there.

  4. Describe damage fault by fault when restoring. Colour cast, softness, and grain are separate repairs. Spelling them out gets a repair rather than a reinterpretation, and pinning the people and the setting stops the content from moving.

  5. Let the source set the shape. resolution follows the aspect ratio of the image you pass, while a width and height pair pins the output to one of the model's eight fixed shapes whatever the source was.

  6. Ask for several takes instead of retrying. With no seed, each render differs, and the one you keep is the one you can never regenerate, so store it.