{
 "schema_version": "1.0",
 "nodes": [
  {
   "id": "room",
   "type": "input/image",
   "label": "Empty Room Photo",
   "parameters": {
    "image": "__ROOM__",
    "required": true
   }
  },
  {
   "id": "chair",
   "type": "input/image",
   "label": "Armchair",
   "parameters": {
    "image": "__CHAIR__",
    "required": true
   }
  },
  {
   "id": "vase",
   "type": "input/image",
   "label": "Vase",
   "parameters": {
    "image": "__VASE__",
    "required": true
   }
  },
  {
   "id": "headline",
   "type": "input/text",
   "label": "Listing Headline",
   "parameters": {
    "text": "Haussmann apartment · 4 rooms · 112 m²",
    "multiline": false,
    "required": true
   }
  },
  {
   "id": "price",
   "type": "input/text",
   "label": "Price",
   "parameters": {
    "text": "€ 890,000",
    "multiline": false,
    "required": true
   }
  },
  {
   "id": "url",
   "type": "input/text",
   "label": "Listing Link",
   "parameters": {
    "text": "https://example.com/listings/rue-claire-4",
    "multiline": false,
    "required": true
   }
  },
  {
   "id": "mark",
   "type": "input/image",
   "label": "Agency Mark",
   "parameters": {
    "image": "__MARK__",
    "required": true
   }
  },
  {
   "id": "stage2",
   "type": "ai/image_transform",
   "label": "A1 Stage the Room",
   "parameters": {
    "prompt": "The first image is a photograph of an empty room. Keep it exactly as it is: the same camera, perspective, framing, walls, window, fireplace, floor and light. Add the armchair from the second image standing on the floor near the window, at a realistic size for the room, its fabric and gilded frame exactly as in the second image, with a soft natural shadow. Place the vase from the third image on the mantelpiece, exactly as in the third image. Add nothing else.",
    "aspect_ratio": "match_input"
   }
  },
  {
   "id": "dusk",
   "type": "ai/image_transform",
   "label": "B1 The Same Room at Dusk",
   "parameters": {
    "prompt": "The same room, same camera, same furniture and objects in the same places, photographed at blue hour: deep blue dusk outside the window, warm lamps and the fireplace softly lit inside, cosy and inviting. Change only the light. Keep every piece of furniture, the floor, the walls and the window exactly as they are.",
    "aspect_ratio": "match_input"
   }
  },
  {
   "id": "mark_small",
   "type": "image/resize",
   "label": "C1 Mark at 110 px",
   "parameters": {
    "unit": "px",
    "width": 110,
    "height": 110,
    "mode": "fit"
   }
  },
  {
   "id": "photo",
   "type": "image/resize",
   "label": "C2 Listing Photo 1600 px",
   "parameters": {
    "unit": "px",
    "width": 1600,
    "height": 900,
    "mode": "fill"
   }
  },
  {
   "id": "photo_head",
   "type": "image/text_overlay",
   "label": "C3 Headline on the Photo",
   "parameters": {
    "typography": {
     "schema": "madoo.image-typography/v1",
     "preset": "minimal",
     "font": {
      "schema": "madoo.font-reference/v1",
      "familyGuid": "7479ebcd-027f-b80c-469e-02923b8f0741",
      "versionGuid": "88f8a3c1-ab85-24c5-3eb8-28a1a0db2be1",
      "family": "Playfair Display",
      "variant": "700",
      "weight": 700,
      "style": "normal",
      "fingerprint": "d15499d5cd5aed357f09b38ca2ebaa6fab759426e5ed1680ae7fd0870da75f9f"
     },
     "size": {
      "mode": "relative",
      "value": 3.6,
      "min": 18,
      "max": 160
     },
     "text": {
      "color": "#FFFFFF",
      "opacity": 1,
      "transform": "none",
      "letterSpacing": 0,
      "lineSpacing": 1.1
     },
     "layout": {
      "anchor": "bottom-right",
      "alignment": "right",
      "maxWidthPercent": 88,
      "maxHeightPercent": 30,
      "maxLines": 1,
      "offsetXPercent": 0,
      "offsetYPercent": 0,
      "overflow": "fit",
      "safeArea": {
       "preset": "custom",
       "topPercent": 6,
       "rightPercent": 4,
       "bottomPercent": 15,
       "leftPercent": 6
      }
     },
     "outline": {
      "enabled": false,
      "color": "#000000",
      "width": 1
     },
     "shadow": {
      "enabled": false,
      "color": "#000000",
      "opacity": 0.45,
      "offsetX": 1,
      "offsetY": 2,
      "blur": 4
     },
     "background": {
      "enabled": true,
      "color": "#0F3D3E",
      "opacity": 0.82,
      "paddingX": 26,
      "paddingY": 14
     }
    }
   }
  },
  {
   "id": "photo_price",
   "type": "image/text_overlay",
   "label": "C4 Price on the Photo",
   "parameters": {
    "typography": {
     "schema": "madoo.image-typography/v1",
     "preset": "minimal",
     "font": {
      "schema": "madoo.font-reference/v1",
      "familyGuid": "e847f030-e53c-b9bc-fb61-46172c963c11",
      "versionGuid": "3255c377-37fc-2aac-5839-e20ee57e0e22",
      "family": "Inter",
      "variant": "regular",
      "weight": 400,
      "style": "normal",
      "fingerprint": "4cb5c2f3f77f5cef8cb0c1e7c4739547fe09b6eaf5c26156afcd54093ed1fef8"
     },
     "size": {
      "mode": "relative",
      "value": 3.0,
      "min": 18,
      "max": 160
     },
     "text": {
      "color": "#0F3D3E",
      "opacity": 1,
      "transform": "none",
      "letterSpacing": 0,
      "lineSpacing": 1.1
     },
     "layout": {
      "anchor": "bottom-right",
      "alignment": "right",
      "maxWidthPercent": 88,
      "maxHeightPercent": 30,
      "maxLines": 1,
      "offsetXPercent": 0,
      "offsetYPercent": 0,
      "overflow": "fit",
      "safeArea": {
       "preset": "custom",
       "topPercent": 6,
       "rightPercent": 4,
       "bottomPercent": 4,
       "leftPercent": 6
      }
     },
     "outline": {
      "enabled": false,
      "color": "#000000",
      "width": 1
     },
     "shadow": {
      "enabled": false,
      "color": "#000000",
      "opacity": 0.45,
      "offsetX": 1,
      "offsetY": 2,
      "blur": 4
     },
     "background": {
      "enabled": true,
      "color": "#E8C872",
      "opacity": 0.82,
      "paddingX": 26,
      "paddingY": 14
     }
    }
   }
  },
  {
   "id": "photo_signed",
   "type": "image/overlay",
   "label": "C5 Agency Mark",
   "parameters": {
    "anchor": "topRight",
    "x": 40,
    "y": 40,
    "opacity": 100
   }
  },
  {
   "id": "before",
   "type": "image/resize",
   "label": "C6 Before, 780 px",
   "parameters": {
    "unit": "px",
    "width": 780,
    "height": 439,
    "mode": "fill"
   }
  },
  {
   "id": "after",
   "type": "image/resize",
   "label": "C7 After, 780 px",
   "parameters": {
    "unit": "px",
    "width": 780,
    "height": 439,
    "mode": "fill"
   }
  },
  {
   "id": "pair",
   "type": "image/stack",
   "label": "C8 Before and After",
   "parameters": {
    "direction": "horizontal",
    "alignment": "center",
    "spacing": 40,
    "backgroundColor": "#FFFFFF"
   }
  },
  {
   "id": "qr",
   "type": "image/code",
   "label": "C9 QR to the Listing",
   "parameters": {
    "symbology": "qr",
    "module_shape": "rounded",
    "eye_frame_shape": "rounded",
    "eye_ball_shape": "rounded",
    "foreground_color": "#0F3D3E",
    "logo_size": 22,
    "logo_background": "circle",
    "png_size": 1024
   }
  },
  {
   "id": "qr_small",
   "type": "image/resize",
   "label": "C10 QR at 300 px",
   "parameters": {
    "unit": "px",
    "width": 300,
    "height": 300,
    "mode": "fit"
   }
  },
  {
   "id": "flyer_body",
   "type": "image/stack",
   "label": "C11 Flyer: Photo over Before and After",
   "parameters": {
    "direction": "vertical",
    "alignment": "center",
    "spacing": 40,
    "backgroundColor": "#FFFFFF"
   }
  },
  {
   "id": "flyer_canvas",
   "type": "image/extend_canvas",
   "label": "C12 Room for the QR",
   "parameters": {
    "unit": "px",
    "top": 60,
    "right": 60,
    "bottom": 380,
    "left": 60,
    "backgroundColor": "#FFFFFF"
   }
  },
  {
   "id": "flyer",
   "type": "image/overlay",
   "label": "C13 QR on the Flyer",
   "parameters": {
    "anchor": "bottomRight",
    "x": 60,
    "y": 50,
    "opacity": 100
   }
  },
  {
   "id": "flyer_cta",
   "type": "image/text_overlay",
   "label": "C14 Scan to Visit",
   "parameters": {
    "typography": {
     "schema": "madoo.image-typography/v1",
     "preset": "minimal",
     "font": {
      "schema": "madoo.font-reference/v1",
      "familyGuid": "7479ebcd-027f-b80c-469e-02923b8f0741",
      "versionGuid": "88f8a3c1-ab85-24c5-3eb8-28a1a0db2be1",
      "family": "Playfair Display",
      "variant": "700",
      "weight": 700,
      "style": "normal",
      "fingerprint": "d15499d5cd5aed357f09b38ca2ebaa6fab759426e5ed1680ae7fd0870da75f9f"
     },
     "size": {
      "mode": "relative",
      "value": 3.0,
      "min": 18,
      "max": 160
     },
     "text": {
      "color": "#0F3D3E",
      "opacity": 1,
      "transform": "none",
      "letterSpacing": 0,
      "lineSpacing": 1.1
     },
     "layout": {
      "anchor": "bottom-left",
      "alignment": "left",
      "maxWidthPercent": 88,
      "maxHeightPercent": 30,
      "maxLines": 2,
      "offsetXPercent": 0,
      "offsetYPercent": 0,
      "overflow": "fit",
      "safeArea": {
       "preset": "custom",
       "topPercent": 6,
       "rightPercent": 6,
       "bottomPercent": 8,
       "leftPercent": 5
      }
     },
     "outline": {
      "enabled": false,
      "color": "#000000",
      "width": 1
     },
     "shadow": {
      "enabled": false,
      "color": "#000000",
      "opacity": 0.45,
      "offsetX": 1,
      "offsetY": 2,
      "blur": 4
     },
     "background": {
      "enabled": false,
      "color": "#101010",
      "opacity": 0.64,
      "paddingX": 16,
      "paddingY": 8
     }
    }
   }
  },
  {
   "id": "cta_text",
   "type": "text/template",
   "label": "C15 Call to Action",
   "parameters": {
    "template": "Scan to see every room — [price]",
    "placeholders": [
     {
      "name": "price",
      "inputPort": "price"
     }
    ]
   }
  },
  {
   "id": "portal",
   "type": "image/resize_for_platform",
   "label": "C16 Social Post at Dusk",
   "parameters": {
    "platform": "instagram_square",
    "format": "jpeg",
    "quality": 88
   }
  },
  {
   "id": "o_staged_room",
   "type": "output/image",
   "label": "staged_room",
   "parameters": {
    "output_name": "staged_room"
   }
  },
  {
   "id": "o_dusk_room",
   "type": "output/image",
   "label": "dusk_room",
   "parameters": {
    "output_name": "dusk_room"
   }
  },
  {
   "id": "o_listing_photo",
   "type": "output/image",
   "label": "listing_photo",
   "parameters": {
    "output_name": "listing_photo"
   }
  },
  {
   "id": "o_before_after",
   "type": "output/image",
   "label": "before_after",
   "parameters": {
    "output_name": "before_after"
   }
  },
  {
   "id": "o_flyer",
   "type": "output/image",
   "label": "flyer",
   "parameters": {
    "output_name": "flyer"
   }
  },
  {
   "id": "o_qr_code",
   "type": "output/image",
   "label": "qr_code",
   "parameters": {
    "output_name": "qr_code"
   }
  },
  {
   "id": "o_qr_check",
   "type": "output/json",
   "label": "qr_check",
   "parameters": {
    "output_name": "qr_check"
   }
  },
  {
   "id": "o_social_post",
   "type": "output/image",
   "label": "social_post",
   "parameters": {
    "output_name": "social_post"
   }
  }
 ],
 "connections": [
  {
   "from_node": "room",
   "from_output": "image",
   "to_node": "stage2",
   "to_input": "images_0"
  },
  {
   "from_node": "chair",
   "from_output": "image",
   "to_node": "stage2",
   "to_input": "images_1"
  },
  {
   "from_node": "vase",
   "from_output": "image",
   "to_node": "stage2",
   "to_input": "images_2"
  },
  {
   "from_node": "stage2",
   "from_output": "result",
   "to_node": "dusk",
   "to_input": "images_0"
  },
  {
   "from_node": "mark",
   "from_output": "image",
   "to_node": "mark_small",
   "to_input": "image"
  },
  {
   "from_node": "stage2",
   "from_output": "result",
   "to_node": "photo",
   "to_input": "image"
  },
  {
   "from_node": "photo",
   "from_output": "result",
   "to_node": "photo_head",
   "to_input": "image"
  },
  {
   "from_node": "headline",
   "from_output": "text",
   "to_node": "photo_head",
   "to_input": "text"
  },
  {
   "from_node": "photo_head",
   "from_output": "result",
   "to_node": "photo_price",
   "to_input": "image"
  },
  {
   "from_node": "price",
   "from_output": "text",
   "to_node": "photo_price",
   "to_input": "text"
  },
  {
   "from_node": "photo_price",
   "from_output": "result",
   "to_node": "photo_signed",
   "to_input": "base"
  },
  {
   "from_node": "mark_small",
   "from_output": "result",
   "to_node": "photo_signed",
   "to_input": "overlay"
  },
  {
   "from_node": "room",
   "from_output": "image",
   "to_node": "before",
   "to_input": "image"
  },
  {
   "from_node": "dusk",
   "from_output": "result",
   "to_node": "after",
   "to_input": "image"
  },
  {
   "from_node": "before",
   "from_output": "result",
   "to_node": "pair",
   "to_input": "images_0"
  },
  {
   "from_node": "after",
   "from_output": "result",
   "to_node": "pair",
   "to_input": "images_1"
  },
  {
   "from_node": "url",
   "from_output": "text",
   "to_node": "qr",
   "to_input": "content"
  },
  {
   "from_node": "mark",
   "from_output": "image",
   "to_node": "qr",
   "to_input": "logo"
  },
  {
   "from_node": "qr",
   "from_output": "png",
   "to_node": "qr_small",
   "to_input": "image"
  },
  {
   "from_node": "photo_signed",
   "from_output": "result",
   "to_node": "flyer_body",
   "to_input": "images_0"
  },
  {
   "from_node": "pair",
   "from_output": "result",
   "to_node": "flyer_body",
   "to_input": "images_1"
  },
  {
   "from_node": "flyer_body",
   "from_output": "result",
   "to_node": "flyer_canvas",
   "to_input": "image"
  },
  {
   "from_node": "flyer_canvas",
   "from_output": "result",
   "to_node": "flyer",
   "to_input": "base"
  },
  {
   "from_node": "qr_small",
   "from_output": "result",
   "to_node": "flyer",
   "to_input": "overlay"
  },
  {
   "from_node": "flyer",
   "from_output": "result",
   "to_node": "flyer_cta",
   "to_input": "image"
  },
  {
   "from_node": "price",
   "from_output": "text",
   "to_node": "cta_text",
   "to_input": "price"
  },
  {
   "from_node": "cta_text",
   "from_output": "result",
   "to_node": "flyer_cta",
   "to_input": "text"
  },
  {
   "from_node": "dusk",
   "from_output": "result",
   "to_node": "portal",
   "to_input": "image"
  },
  {
   "from_node": "stage2",
   "from_output": "result",
   "to_node": "o_staged_room",
   "to_input": "image"
  },
  {
   "from_node": "dusk",
   "from_output": "result",
   "to_node": "o_dusk_room",
   "to_input": "image"
  },
  {
   "from_node": "photo_signed",
   "from_output": "result",
   "to_node": "o_listing_photo",
   "to_input": "image"
  },
  {
   "from_node": "pair",
   "from_output": "result",
   "to_node": "o_before_after",
   "to_input": "image"
  },
  {
   "from_node": "flyer_cta",
   "from_output": "result",
   "to_node": "o_flyer",
   "to_input": "image"
  },
  {
   "from_node": "qr",
   "from_output": "svg",
   "to_node": "o_qr_code",
   "to_input": "image"
  },
  {
   "from_node": "qr",
   "from_output": "check",
   "to_node": "o_qr_check",
   "to_input": "json"
  },
  {
   "from_node": "portal",
   "from_output": "result",
   "to_node": "o_social_post",
   "to_input": "image"
  }
 ]
}