mcpField
M
meltflex-design

meltflex-design

github.com/meltflexdevsCreative & media859 installsUpdated 1w ago
Repository

About meltflex-design

meltflex-design uses the MeltFlex REST API to redesign a real space photo as a photorealistic image. It is for agents handling interior and exterior design edits, with modes for whole-scene restyling and targeted region changes.

Key features

  1. 01Photo-based interior and exterior redesign
  2. 02Multiple scene and surface edit modes
  3. 03Red-marked region edits
  4. 04One-call batches of image variations
  5. 05Optional video and 3D generation

Use cases

  1. 01Restyle a room from a source photo
  2. 02Virtually stage an empty room
  3. 03Change only a marked wall or floor area
  4. 04Turn a room photo into a video or 3D output

MCP support

The skill calls the MeltFlex REST API directly. If the meltflex-mcp server is configured, it recommends using its generate_interior tool for file handling.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/meltflexdevs/skills --skill meltflex-design

After installing, type/meltflex-designin Claude Code to confirm it loaded.

Details

From the project README

MeltFlex — AI Interior Design

MeltFlex turns a real photo of a space into a redesigned, photorealistic result. This skill calls the MeltFlex REST API directly, so it works in any agent without installing anything else. (If the meltflex-mcp server is configured, prefer its generate_interior tool — it handles file I/O for you.)

To place specific furniture products into a room, use the companion skill /meltflex:furniture. For 3D output (a furniture GLB, a floorplan model, an explorable 3D world), use /meltflex:3d.

Prerequisites

The user needs a MeltFlex API key (mf_sk_...), available on an active subscription at https://www.meltflexai.com/settings. Expect it in the MELTFLEX_API_KEY environment variable. If missing, ask them to set it:

export MELTFLEX_API_KEY="mf_sk_..."

Each generation costs 10 credits, deducted upfront and auto-refunded on failure. Credits belong to the user's account.

The one endpoint

POST https://www.meltflexai.com/api/v1/generate

Headers: Authorization: Bearer $MELTFLEX_API_KEY, Content-Type: application/json.

Body:

  • prompt (string, required) — the redesign instruction.
  • imageUrl (string) or image (base64 data URL) — the source photo. Prefer imageUrl.
  • resolution (string, optional) — output quality: "512", "1K", or "2K" (sharpest). Defaults to model auto.
  • designLevel (string, optional) — "lite" (faster & cheaper, −2 credits), "quick" (default), or "pro" (most detailed, HIGH thinking, +5 credits).
  • mask (boolean, optional) — region edit. When true, the source image must have the area to change painted solid red; the prompt is applied only to those red-marked regions and the rest is preserved. Use for "change only this part".
  • variations (number, optional) — batch of 1–3 images in one call (default 1). Charged per image; failed variations are refunded.

Response: { "success": true, "image": "data:...", "images": ["data:..."], "count": 1, "creditsUsed": 10 }.

Modes

Every mode is the same endpoint with a mode-tuned prompt. Pick the mode that matches the request and lead the prompt with it.

ModeWhat it's forPrompt lead-in
restyleChange a room's style/theme"Redesign this room in : …"
virtual_stagingFurnish an empty room"Furnish this empty room as a <room type>: …"
layout_boostRearrange existing furniture"Rearrange the existing furniture into a more open, functional layout; keep the same pieces"
declutterClean up / depersonalize"Declutter and tidy this room, keep the layout, neutral staging"
exteriorBuilding facade / house exterior"Redesign this house exterior in , keep structure"
gardenLandscaping / outdoor"Redesign this garden: <plants, paving, mood>"
wall_textureChange wall material/finish"Change the walls to <material/color>, keep everything else"
floor_restyleChange flooring"Replace the floor with , keep everything else"
stairsRestyle a staircase in place"Restyle the staircase (<treads, railing>), keep its position and surroundings"
doorsSwap interior doors"Replace the doors with , keep the walls and flooring"
windowsSwap window frames/glazing"Change the windows to <frame/glazing>, keep the wall openings"
kitchenWhole kitchen redesign"Redesign this kitchen in , keep the footprint and plumbing"
bathroomWhole bathroom redesign"Redesign this bathroom in , keep the layout and plumbing"
photo_to_renderDraft / SketchUp → photo"Turn this 3D draft into a photorealistic photograph, keep the geometry and camera"
seasonalLighting / season variation"Show this room at <time of day / season> with "
region_editChange only one marked areaSend mask: true with the region painted solid red in the image; "Put in the red area, keep the rest"

For surface- and fixture-swap modes (wall_texture, floor_restyle, stairs, doors, windows), you can attach the target material or product as a reference image (referenceImageUrls) to match it exactly — see /meltflex:furniture for the reference mechanic.

Always preserve room structure (walls, windows, doors, flooring) unless the mode is explicitly about changing it.

How to run it

Use a small script so you can decode the base64 result to a file (Python example):

import os, base64, requests

resp = requests.post(
    "https://www.meltflexai.com/api/v1/generate",
    headers={"Authorization": f"Bearer {os.environ['MELTFLEX_API_KEY']}"},
    json={
        "imageUrl": "https://your-cdn.com/empty-room.jpg",
        "prompt": "Redesign in warm Scandinavian style: light oak floor, beige linen sofa, soft daylight. Preserve windows and walls.",
    },
    timeout=180,
)
data = resp.json()
if data.get("success"):
    open("redesign.png", "wb").write(base64.b64decode(data["image"].split(",", 1)[1]))
    print("Saved redesign.png")
else:
    print("Error:", data.get("error") or data.get("message"))

For a local source photo, send it as a data URL in image instead of imageUrl:

import base64, mimetypes
path = "living-room.jpg"
mime = mimetypes.guess_type(path)[0] or "image/jpeg"
b64 = base64.b64encode(open(path, "rb").read()).decode()
body = {"image": f"data:{mime};base64,{b64}", "prompt": "..."}

How to work with the user

  1. Always need a source photo. MeltFlex restyles an existing photo — it does not invent spaces from scratch. If the user gives only a description, ask for a file path or URL.
  2. Pick a mode, then write a specific prompt — materials, colors, furniture, lighting, mood. "make it cozy" → "Warm Scandinavian living room: light oak floor, beige linen sofa, cream wool rug, soft diffused daylight."
  3. Report the saved path and credits used; offer to iterate.
  4. Errors: 402 = insufficient credits (point to /settings); 401 = bad/missing key; 429 = rate limited (retry with backoff); 5xx = failed, credits auto-refunded.

Beyond still images: video & 3D

The same account and API key unlock more endpoints. Use them when the request goes past a still redesign:

  • Cinematic video walkthrough — animate a still (a MeltFlex render or any interior photo) into a short walkthrough clip (Veo 3.1). POST /api/v1/video with { imageUrl, durationSeconds: 4|8, aspectRatio: "16:9"|"9:16", prompt? } → { videoUrl, durationSeconds, aspectRatio, creditsUsed } (a hosted MP4). Costs 100 credits (4s) or 150 (8s). Allow up to ~5 minutes.
  • Floorplan → 3D — a 2D plan into a rendered 3D picture (output: "render", 10 credits, ~20 s) or a downloadable GLB model (output: "model", 100 credits, ~3 min). POST /api/v1/floorplan-to-3d.
  • Furniture photo → 3D model — one product photo into a textured GLB (plus USDZ/FBX/OBJ links). POST /api/v1/furniture-3d, 75 credits, ~2–3 min.
  • Photo → explorable 3D world — a room photo or one of your renders into a walkable Gaussian-splat world with a hosted viewer link. POST /api/v1/world, 30 credits (draft) or 200 (hd).

The three 3D endpoints can answer HTTP 202 and need polling; the companion skill /meltflex:3d documents all of them with request/response shapes and a polling helper. Full reference: https://www.meltflexai.com/api.

Tips

  • Prefer imageUrl over base64 — avoids the 15 MB body limit and is faster.
  • Input images ≥1024px on the long side give the best results.
  • Never print or commit the API key.

Comments

Markdown supported