ArchDiffusion v4.4-Fast

ArchDiffusion v4.4-Fast is a lightweight, fast, and cost-effective AI rendering API for architectural visualization.

How it works: v4.4-Fast takes your source image and prompt, processes it through our fast rendering engine, and returns a transformed architectural visualization. It's designed for speed and simplicity with minimal configuration.

v4.4-Fast vs v4.4-Ultra:

  • Faster processing: Optimized for quick turnaround at 1K resolution
  • Lower cost: Only 1 credit per generation (vs 3 credits for v4.4-Ultra)
  • Simpler API: Fewer parameters to configure (up to 3 reference images)
  • Expert types: Supports all 6 expert modes (exterior, interior, masterplan, landscape, plan, product)

Credit Cost: 1 credit per generation

Endpoint

HTTP Method
POST https://api.mnmlai.dev/v1/archDiffusion-v44-lite

Request

Send a POST request with multipart/form-data containing your source image and design parameters. The API processes images asynchronously, returning a request ID for status tracking.

Parameters

ParameterTypeDefaultDescription
imageRequiredFile-Source architectural image (JPEG, PNG, WebP). Max 15MB, min 1KB
promptRequiredString-Description of desired transformation (max 2000 characters)
expert_nameString"exterior"Expert mode: "exterior", "interior", "masterplan", "landscape", "plan", "product"
output_formatString"png"Output image format: "png", "jpeg", "webp"

Expert Types

exterior: Building exteriors
interior: Interior spaces
masterplan: Site plans & urban
landscape: Outdoor landscapes
plan: Floor plans
product: Product renders

Design Parameters (Optional)

These optional form fields control the rendered scene. They mirror the styling controls of the mnml studio app, and the defaults below are identical to the studio app's defaults — so omitting a field yields the same result the web app produces with its default settings. Send each as a plain form field alongside image and prompt.

Important encoding notes

  • • Field names are unprefixed (e.g. camera_angle, not v42_camera_angle).
  • • Booleans (annotation, show_dimensions) use the strings "true" / "false".
  • • Only the fields relevant to the chosen expert_name are applied; others are ignored.
  • render_style does not accept "auto" (use an explicit style); masterplan render style has no "auto", and plan drawing_style has no "realistic" — pick a listed value.

Common (all expert types)

ParameterDefaultOptions / Notes
render_stylephotorealraw, photoreal, cgi_render, cad, freehand_sketch, clay_model, illustration, watercolor
geometrypreciseprecise, creative
view_modeautoscene framing mode
camera_angleautoexpert-specific angle options
camera_directionfrontfront, left, right, back, etc.
annotationfalse"true" / "false"
show_dimensionsfalse"true" / "false"
seedrandominteger 0–1000000 (note: not forwarded to the model; output is not deterministic)
reference_image_1..3up to 3 optional reference image files

expert_name = "exterior"

site_contextauto
greenerysome
vehiclesfew
peoplefew
street_propsoff
motionsubtle
time_of_dayauto
weatherclear
ground_wetnessdry

expert_name = "interior"

room_typeauto
room_styleauto
furnishing_levelauto
indoor_plantsauto
interior_accessoriesoff
lighting_modeauto
floor_finishauto
peopleauto
ambienceauto

expert_name = "masterplan"

plan_mode3d
camera_angleauto
greenerymoderate
vehiclesfew
peoplefew
urban_densitymedium
development_typeauto
water_featuresnone
time_of_dayauto
weatherclear

expert_name = "landscape"

landscape_stylemodern
camera_angleauto
vegetationmoderate
water_featuresnone
hardscapepathways
outdoor_furnitureminimal
landscape_lightingnone
peoplefew
time_of_dayauto
weatherclear
ground_wetnessdry

expert_name = "product"

product_categoryfurniture
camera_angleauto
backgroundwhite
product_lightingsoft
material_finishauto
shadow_stylecontact

expert_name = "plan"

plan_view_mode2d
drawing_stylearchitectural
color_modecolored
furniture_2doutline
plan_annotationsoff
wall_stylefilled
view_type_3disometric
ceilinghide
room_styleauto
furnishing_3dmoderate
lighting_3dnatural
ambience_3dday

Response

The API processes your request asynchronously and immediately returns a response containing a unique request ID. Use this ID with the Status Check endpoint to monitor processing progress and retrieve the final generated image.

Success Response (200 OK)

{
  "status": "success",
  "id": "vysqf2nr0drmc0ctqx5tkdse48",
  "prompt": "Modern building with glass facade",
  "expert_name": "exterior",
  "parameters": {
    "renderStyle": "photoreal",
    "geometry": "precise",
    "viewMode": "auto",
    "annotation": false,
    "showDimensions": false,
    "referenceImageCount": 0,
    "thinkingLevel": "off"
  },
  "credits": 99
}

Code Examples

1. Basic Exterior Rendering (cURL)

curl -X POST https://api.mnmlai.dev/v1/archDiffusion-v44-lite \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "image=@/path/to/building.jpg" \
  -F "prompt=Modern commercial building with glass facade" \
  -F "expert_name=exterior"

2. Interior Rendering

curl -X POST https://api.mnmlai.dev/v1/archDiffusion-v44-lite \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F "image=@/path/to/room.jpg" \
  -F "prompt=Luxury modern living room with natural lighting" \
  -F "expert_name=interior" \
  -F "output_format=jpeg"

3. Node.js Implementation

const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');

const form = new FormData();
form.append('image', fs.createReadStream('building.jpg'));
form.append('prompt', 'Modern residential building with landscaping');
form.append('expert_name', 'exterior');
form.append('output_format', 'png');

const response = await axios.post(
  'https://api.mnmlai.dev/v1/archDiffusion-v44-lite',
  form,
  {
    headers: {
      'Accept': 'application/json',
      'Authorization': 'Bearer YOUR_API_KEY',
      ...form.getHeaders()
    }
  }
);

console.log('Request ID:', response.data.id);
console.log('Remaining credits:', response.data.credits);

4. Python Implementation

import requests

url = 'https://api.mnmlai.dev/v1/archDiffusion-v44-lite'

files = {
    'image': open('building.jpg', 'rb')
}

data = {
    'prompt': 'Modern office building with green terrace',
    'expert_name': 'exterior',
    'output_format': 'png'
}

headers = {
    'Accept': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
}

response = requests.post(url, headers=headers, files=files, data=data)
result = response.json()

print(f"Request ID: {result['id']}")
print(f"Remaining credits: {result['credits']}")

Checking Processing Status

Status Check Endpoint
GET https://api.mnmlai.dev/v1/status/{id}

Processing Time: Typically 15-30 seconds (faster than v4.4-Ultra). Poll the status endpoint every 3-5 seconds until the status becomes "succeeded" or "failed".

Best Practices

Image Guidelines

  • Use high-quality source images (1024px or larger recommended)
  • Supported formats: JPEG, PNG, WebP
  • File size: 1KB - 15MB per image
  • Outputs are rendered at 1K resolution for fast turnaround

When to Use v4.4-Fast vs v4.4-Ultra

  • Use v4.4-Fast: Quick iterations, prototyping, budget-conscious projects, simpler transformations
  • Use v4.4-Ultra: Final presentations, 2K output, detailed control over environmental parameters, up to 4 reference images, complex styling

Prompt Tips

  • Be descriptive about materials, lighting, and atmosphere in your prompt
  • Include style references (e.g., "modern minimalist", "industrial loft")
  • Specify time of day or weather conditions in the prompt for desired effects

Error Handling

Common Error Responses

// 400 Bad Request - Missing image
{
  "status": "error",
  "code": "MISSING_IMAGE",
  "message": "Image file is required"
}

// 400 Bad Request - Missing prompt
{
  "status": "error",
  "code": "MISSING_PROMPT",
  "message": "Prompt is required"
}

// 400 Bad Request - Insufficient credits
{
  "status": "error",
  "code": "NO_CREDITS",
  "message": "You do not have enough credits to use this feature. This API requires 1 credit.",
  "details": { "credits": 0, "required": 1 }
}

// 400 Bad Request - Image too large
{
  "status": "error",
  "code": "IMAGE_TOO_LARGE",
  "message": "Image file is too large",
  "details": { "size": 20000000, "maxSize": 15728640 }
}