live
MODEL IDideogram-layerize-text

Ideogram Layerize Text

Ideogram
by

Ideogram Layerize Text analyzes an image, detects readable text regions, and turns each line into structured editable text blocks with position, styling, and font information. It also returns a text-erased base image, making it useful for posters, social graphics, packaging, book covers, and other design workflows where copy needs to change without regenerating the whole composition.

Ideogram Layerize Text
Heirloom Seed Packet Redesign
Heirloom Seed Packet Redesign

Layerize all readable typography on this heirloom seed packet into editable text blocks, preserving line breaks, approximate font style, size, color, alignment, and placement. Return the clean text-erased packet artwork so the brand can update the variety name, planting instructions, and regulatory copy for a new seasonal run.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'Layerize all readable typography on this heirloom seed packet into editable text blocks, preserving line breaks, approximate font style, size, color, alignment, and placement. Return the clean text-erased packet artwork so the brand can update the variety name, planting instructions, and regulatory copy for a new seasonal run.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/554ca05c-d174-4dc7-8f0e-330716524077.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "Layerize all readable typography on this heirloom seed packet into editable text blocks, preserving line breaks, approximate font style, size, color, alignment, and placement. Return the clean text-erased packet artwork so the brand can update the variety name, planting instructions, and regulatory copy for a new seasonal run.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/554ca05c-d174-4dc7-8f0e-330716524077.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "c859dc93-e642-4640-baf3-a07a955eb576",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "Layerize all readable typography on this heirloom seed packet into editable text blocks, preserving line breaks, approximate font style, size, color, alignment, and placement. Return the clean text-erased packet artwork so the brand can update the variety name, planting instructions, and regulatory copy for a new seasonal run.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/554ca05c-d174-4dc7-8f0e-330716524077.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="Layerize all readable typography on this heirloom seed packet into editable text blocks, preserving line breaks, approximate font style, size, color, alignment, and placement. Return the clean text-erased packet artwork so the brand can update the variety name, planting instructions, and regulatory copy for a new seasonal run." \
  inputs.image=https://assets.runware.ai/assets/inputs/554ca05c-d174-4dc7-8f0e-330716524077.jpg
{
  "taskType": "imageInference",
  "taskUUID": "c859dc93-e642-4640-baf3-a07a955eb576",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "Layerize all readable typography on this heirloom seed packet into editable text blocks, preserving line breaks, approximate font style, size, color, alignment, and placement. Return the clean text-erased packet artwork so the brand can update the variety name, planting instructions, and regulatory copy for a new seasonal run.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/554ca05c-d174-4dc7-8f0e-330716524077.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "c859dc93-e642-4640-baf3-a07a955eb576",
  "imageUUID": "955eac95-e761-4e33-99c5-3b37375bdbc4",
  "imageURL": "https://im.runware.ai/image/os/a05d22/ws/3/ii/955eac95-e761-4e33-99c5-3b37375bdbc4.jpg",
  "seed": 1903792671,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#342F1B",
        "fontAlternatives": [
          "font__libre-baskerville__700",
          "font__norican__regular",
          "font__pacifico__regular",
          "font__niconne__regular",
          "font__sansita-swashed__regular",
          "font__cookie__regular",
          "font__oleo-script-swash-caps__regular",
          "font__momo-signature__regular",
          "font__lobster-two__italic",
          "font__engagement__regular",
          "font__courgette__regular",
          "IMFePIit28P.ttf",
          "font__carattere__regular",
          "font__playball__regular",
          "font__radley__italic",
          "font__srisakdi__700",
          "font__satisfy__regular",
          "font__meddon__regular",
          "font__playwrite-hr__regular",
          "font__almendra-sc__regular",
          "font__vollkorn__italic",
          "font__lily-script-one__regular",
          "font__pattaya__regular",
          "font__crimson-text__600italic",
          "font__galada__regular",
          "font__gwendolyn__700"
        ],
        "fontName": "LibreBaskerville-Bold.ttf",
        "fontSize": 27,
        "formatting": [
          "italic"
        ],
        "height": 46,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Premium Heirloom Seeds",
        "width": 380,
        "x": 225,
        "y": 300
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#393420",
        "fontAlternatives": [
          "font__libre-baskerville__700",
          "font__norican__regular",
          "font__pacifico__regular",
          "font__niconne__regular",
          "font__sansita-swashed__regular",
          "font__cookie__regular",
          "font__oleo-script-swash-caps__regular",
          "font__momo-signature__regular",
          "font__lobster-two__italic",
          "font__engagement__regular",
          "font__courgette__regular",
          "IMFePIit28P.ttf",
          "font__carattere__regular",
          "font__playball__regular",
          "font__radley__italic",
          "font__srisakdi__700",
          "font__satisfy__regular",
          "font__meddon__regular",
          "font__playwrite-hr__regular",
          "font__almendra-sc__regular",
          "font__vollkorn__italic",
          "font__lily-script-one__regular",
          "font__pattaya__regular",
          "font__crimson-text__600italic",
          "font__galada__regular",
          "font__gwendolyn__700"
        ],
        "fontName": "LibreBaskerville-Bold.ttf",
        "fontSize": 29,
        "formatting": [
          "italic"
        ],
        "height": 50,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Great Heirlooms",
        "width": 277,
        "x": 277,
        "y": 914
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#393420",
        "fontAlternatives": [
          "font__libre-baskerville__700",
          "font__norican__regular",
          "font__pacifico__regular",
          "font__niconne__regular",
          "font__sansita-swashed__regular",
          "font__cookie__regular",
          "font__oleo-script-swash-caps__regular",
          "font__momo-signature__regular",
          "font__lobster-two__italic",
          "font__engagement__regular",
          "font__courgette__regular",
          "IMFePIit28P.ttf",
          "font__carattere__regular",
          "font__playball__regular",
          "font__radley__italic",
          "font__srisakdi__700",
          "font__satisfy__regular",
          "font__meddon__regular",
          "font__playwrite-hr__regular",
          "font__almendra-sc__regular",
          "font__vollkorn__italic",
          "font__lily-script-one__regular",
          "font__pattaya__regular",
          "font__crimson-text__600italic",
          "font__galada__regular",
          "font__gwendolyn__700"
        ],
        "fontName": "LibreBaskerville-Bold.ttf",
        "fontSize": 29,
        "formatting": [
          "italic"
        ],
        "height": 49,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "The Saturn",
        "width": 176,
        "x": 327,
        "y": 963
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#2F2A16",
        "fontAlternatives": [
          "font__libre-baskerville__regular",
          "font__crimson-text__600italic",
          "font__vollkorn__italic",
          "font__norican__regular",
          "font__crimson-text__700italic",
          "font__caudex__700italic",
          "font__libertinus-serif__600italic",
          "font__playball__regular",
          "font__trade-winds__regular",
          "IMFePIit28P.ttf",
          "font__castoro__italic",
          "IMFeENit28P.ttf",
          "font__taviraj__500italic",
          "font__lobster-two__italic",
          "font__charm__700",
          "font__ibm-plex-serif__500italic",
          "font__taviraj__600italic",
          "font__oleo-script-swash-caps__regular",
          "font__dm-serif-text__italic",
          "IMFELLDoublePica-Italic.ttf",
          "font__platypi__italic",
          "font__sedan__italic",
          "font__grenze__italic",
          "font__libertinus-serif__700italic",
          "font__alegreya-sc__500italic",
          "font__wittgenstein__italic"
        ],
        "fontName": "LibreBaskerville-Regular.ttf",
        "fontSize": 26,
        "formatting": [
          "italic"
        ],
        "height": 100,
        "lineHeight": 1.28,
        "role": "body",
        "text": "Ensure Always to Water\nProvide Good Soil\nmoonrisegarden.com",
        "width": 311,
        "x": 122,
        "y": 1030
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#2F2A16",
        "fontAlternatives": [
          "font__libre-baskerville__regular",
          "font__crimson-text__600italic",
          "font__vollkorn__italic",
          "font__norican__regular",
          "font__crimson-text__700italic",
          "font__caudex__700italic",
          "font__libertinus-serif__600italic",
          "font__playball__regular",
          "font__trade-winds__regular",
          "IMFePIit28P.ttf",
          "font__castoro__italic",
          "IMFeENit28P.ttf",
          "font__taviraj__500italic",
          "font__lobster-two__italic",
          "font__charm__700",
          "font__ibm-plex-serif__500italic",
          "font__taviraj__600italic",
          "font__oleo-script-swash-caps__regular",
          "font__dm-serif-text__italic",
          "IMFELLDoublePica-Italic.ttf",
          "font__platypi__italic",
          "font__sedan__italic",
          "font__grenze__italic",
          "font__libertinus-serif__700italic",
          "font__alegreya-sc__500italic",
          "font__wittgenstein__italic"
        ],
        "fontName": "LibreBaskerville-Regular.ttf",
        "fontSize": 25,
        "height": 37,
        "lineHeight": 1.2,
        "role": "body",
        "text": "NET WT. 0.81oz (23g)",
        "width": 284,
        "x": 273,
        "y": 1143
      }
    ]
  }
}
Cold Brew Lifestyle Social Ad
Cold Brew Lifestyle Social Ad

Analyze this finished product lifestyle social ad and detect every readable text region. Turn the headline, subheadline, badge, and call-to-action into structured editable text blocks with accurate placement, styling, and font information, and return the text-erased base image so the ad copy can be revised without rebuilding the product scene.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'Analyze this finished product lifestyle social ad and detect every readable text region. Turn the headline, subheadline, badge, and call-to-action into structured editable text blocks with accurate placement, styling, and font information, and return the text-erased base image so the ad copy can be revised without rebuilding the product scene.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/4c1d01a5-096a-431d-9c30-f780c54e4442.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "Analyze this finished product lifestyle social ad and detect every readable text region. Turn the headline, subheadline, badge, and call-to-action into structured editable text blocks with accurate placement, styling, and font information, and return the text-erased base image so the ad copy can be revised without rebuilding the product scene.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/4c1d01a5-096a-431d-9c30-f780c54e4442.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "f83124f8-5492-4205-a359-a00dd5c6634e",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "Analyze this finished product lifestyle social ad and detect every readable text region. Turn the headline, subheadline, badge, and call-to-action into structured editable text blocks with accurate placement, styling, and font information, and return the text-erased base image so the ad copy can be revised without rebuilding the product scene.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/4c1d01a5-096a-431d-9c30-f780c54e4442.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="Analyze this finished product lifestyle social ad and detect every readable text region. Turn the headline, subheadline, badge, and call-to-action into structured editable text blocks with accurate placement, styling, and font information, and return the text-erased base image so the ad copy can be revised without rebuilding the product scene." \
  inputs.image=https://assets.runware.ai/assets/inputs/4c1d01a5-096a-431d-9c30-f780c54e4442.jpg
{
  "taskType": "imageInference",
  "taskUUID": "f83124f8-5492-4205-a359-a00dd5c6634e",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "Analyze this finished product lifestyle social ad and detect every readable text region. Turn the headline, subheadline, badge, and call-to-action into structured editable text blocks with accurate placement, styling, and font information, and return the text-erased base image so the ad copy can be revised without rebuilding the product scene.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/4c1d01a5-096a-431d-9c30-f780c54e4442.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "f83124f8-5492-4205-a359-a00dd5c6634e",
  "imageUUID": "8ddd5c58-00f0-43fb-87f7-64d9f468e36d",
  "imageURL": "https://im.runware.ai/image/os/a10dlim3/ws/3/ii/8ddd5c58-00f0-43fb-87f7-64d9f468e36d.jpg",
  "seed": 778063327,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCFCFC",
        "fontAlternatives": [
          "font__oswald__700",
          "font__staatliches__regular",
          "font__barlow__700",
          "font__agdasima__700",
          "font__bebas-neue__regular",
          "font__almarai__700",
          "font__ibm-plex-sans-condensed__600",
          "font__sansita__regular",
          "font__special-gothic-condensed-one__regular",
          "font__barlow-semi-condensed__600",
          "font__rajdhani__700",
          "BM-HANNA.ttf",
          "font__barlow-semi-condensed__700",
          "font__ibm-plex-sans-condensed__700",
          "font__khand__600",
          "font__cossette-texte__700",
          "font__sansita__700",
          "font__tomorrow__600",
          "font__pragati-narrow__700",
          "font__barlow__600",
          "font__bai-jamjuree__700",
          "font__chivo__regular",
          "font__chakra-petch__700",
          "font__tomorrow__700",
          "font__ramabhadra__regular",
          "font__livvic__700"
        ],
        "fontName": "Oswald-Bold.ttf",
        "fontSize": 68,
        "formatting": [
          "all_caps"
        ],
        "height": 76,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "SMOOTH COLD BREW",
        "width": 578,
        "x": 136,
        "y": 34
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FFFFFF",
        "fontAlternatives": [
          "font__roboto__500",
          "font__livvic__500",
          "font__spline-sans__regular",
          "font__moderustic__regular",
          "font__liter__regular",
          "font__wix-madefor-text__500",
          "font__schibsted-grotesk__regular",
          "font__sora__regular",
          "font__inter-tight__regular",
          "font__almarai__regular",
          "font__pontano-sans__regular",
          "font__gayathri__700",
          "font__zalando-sans__regular",
          "font__mclaren__regular",
          "font__special-gothic__regular",
          "font__onest__regular",
          "font__livvic__regular",
          "font__hedvig-letters-sans__regular",
          "font__be-vietnam-pro__regular",
          "font__shippori-antique__regular",
          "font__chocolate-classical-sans__regular",
          "font__shippori-antique-b1__regular",
          "font__didact-gothic__regular",
          "font__tasa-orbiter__regular",
          "font__reddit-sans-condensed__regular",
          "font__radio-canada-big__regular"
        ],
        "fontName": "Roboto-Medium.ttf",
        "fontSize": 34,
        "height": 37,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Oat milk ready",
        "width": 224,
        "x": 313,
        "y": 117
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCFCFC",
        "fontAlternatives": [
          "font__oswald__500",
          "font__ramabhadra__regular",
          "font__almarai__700",
          "font__ibm-plex-sans-condensed__600",
          "font__sansita__regular",
          "font__gothic-a1__800",
          "font__cossette-texte__700",
          "font__ibm-plex-sans-hebrew__600",
          "font__ibm-plex-sans-devanagari__600",
          "font__ibm-plex-sans-jp__600",
          "font__gothic-a1__900",
          "font__cantora-one__regular",
          "font__ibm-plex-sans-thai__600",
          "font__ibm-plex-sans-kr__600",
          "font__ibm-plex-sans-arabic__600",
          "font__ibm-plex-sans-thai-looped__600",
          "SignikaNegativeSC-SemiBold.ttf",
          "font__chivo__regular",
          "font__livvic__700",
          "font__special-gothic-condensed-one__regular",
          "font__gurajada__regular",
          "font__acme__regular",
          "font__rowdies__300",
          "font__gothic-a1__700",
          "font__yantramanav__700",
          "font__livvic__600"
        ],
        "fontName": "Oswald-Medium.ttf",
        "fontSize": 51,
        "formatting": [
          "all_caps"
        ],
        "height": 49,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "12OZ CAN",
        "width": 191,
        "x": 350,
        "y": 161
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#020202",
        "fontAlternatives": [
          "font__oswald__500",
          "font__ramabhadra__regular",
          "font__almarai__700",
          "font__ibm-plex-sans-condensed__600",
          "font__sansita__regular",
          "font__gothic-a1__800",
          "font__cossette-texte__700",
          "font__ibm-plex-sans-hebrew__600",
          "font__ibm-plex-sans-devanagari__600",
          "font__ibm-plex-sans-jp__600",
          "font__gothic-a1__900",
          "font__cantora-one__regular",
          "font__ibm-plex-sans-thai__600",
          "font__ibm-plex-sans-kr__600",
          "font__ibm-plex-sans-arabic__600",
          "font__ibm-plex-sans-thai-looped__600",
          "SignikaNegativeSC-SemiBold.ttf",
          "font__chivo__regular",
          "font__livvic__700",
          "font__special-gothic-condensed-one__regular",
          "font__gurajada__regular",
          "font__acme__regular",
          "font__rowdies__300",
          "font__gothic-a1__700",
          "font__yantramanav__700",
          "font__livvic__600"
        ],
        "fontName": "Oswald-Medium.ttf",
        "fontSize": 42,
        "height": 43,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Find it in cafés this week",
        "width": 408,
        "x": 211,
        "y": 946
      }
    ]
  }
}
Sci-Fi Game Key Art
Sci-Fi Game Key Art

Analyze this sci-fi game key art and layerize every readable text region into editable text blocks, preserving position, font style, color, scale, and alignment. Return the text-erased base artwork so the title, subtitle, tagline, release date, and call-to-action can be revised without rebuilding the illustration.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'Analyze this sci-fi game key art and layerize every readable text region into editable text blocks, preserving position, font style, color, scale, and alignment. Return the text-erased base artwork so the title, subtitle, tagline, release date, and call-to-action can be revised without rebuilding the illustration.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/df3a90f4-4377-4541-8968-157e4e4c52f1.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "Analyze this sci-fi game key art and layerize every readable text region into editable text blocks, preserving position, font style, color, scale, and alignment. Return the text-erased base artwork so the title, subtitle, tagline, release date, and call-to-action can be revised without rebuilding the illustration.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/df3a90f4-4377-4541-8968-157e4e4c52f1.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "ba7074c2-ade3-4527-8d4b-b809087de024",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "Analyze this sci-fi game key art and layerize every readable text region into editable text blocks, preserving position, font style, color, scale, and alignment. Return the text-erased base artwork so the title, subtitle, tagline, release date, and call-to-action can be revised without rebuilding the illustration.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/df3a90f4-4377-4541-8968-157e4e4c52f1.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="Analyze this sci-fi game key art and layerize every readable text region into editable text blocks, preserving position, font style, color, scale, and alignment. Return the text-erased base artwork so the title, subtitle, tagline, release date, and call-to-action can be revised without rebuilding the illustration." \
  inputs.image=https://assets.runware.ai/assets/inputs/df3a90f4-4377-4541-8968-157e4e4c52f1.jpg
{
  "taskType": "imageInference",
  "taskUUID": "ba7074c2-ade3-4527-8d4b-b809087de024",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "Analyze this sci-fi game key art and layerize every readable text region into editable text blocks, preserving position, font style, color, scale, and alignment. Return the text-erased base artwork so the title, subtitle, tagline, release date, and call-to-action can be revised without rebuilding the illustration.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/df3a90f4-4377-4541-8968-157e4e4c52f1.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "ba7074c2-ade3-4527-8d4b-b809087de024",
  "imageUUID": "40d8349b-111f-4624-9102-3566baab4ede",
  "imageURL": "https://im.runware.ai/image/os/a01d21/ws/3/ii/40d8349b-111f-4624-9102-3566baab4ede.jpg",
  "seed": 1626551103,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#B6D4ED",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__alexandria__regular",
          "font__unbounded__regular",
          "Khyay-Regular.ttf",
          "font__wix-madefor-text__600",
          "font__mochiy-pop-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__itim__regular",
          "font__livvic__600",
          "MontserratSubrayada-Regular.ttf",
          "font__cal-sans__regular",
          "font__mclaren__regular",
          "font__reem-kufi-ink__regular",
          "font__reem-kufi-fun__regular",
          "font__reem-kufi__regular",
          "font__biryani__700",
          "font__shippori-antique-b1__regular",
          "font__shippori-antique__regular",
          "font__wix-madefor-text__700",
          "font__cherry-cream-soda__regular",
          "font__spline-sans__regular",
          "font__krona-one__regular",
          "font__livvic__500",
          "font__balsamiq-sans__regular",
          "font__be-vietnam-pro__500",
          "font__zain__700"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 39,
        "formatting": [
          "all_caps"
        ],
        "height": 35,
        "lineHeight": 1.2,
        "role": "body",
        "text": "INFILTRATE THE CITY THAT NEVER POWERS DOWN",
        "width": 1042,
        "x": 150,
        "y": 42
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCFCFC",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__dela-gothic-one__regular",
          "font__special-gothic-expanded-one__regular",
          "font__goldman__700",
          "font__livvic__700",
          "font__zain__800",
          "font__alegreya-sans-sc__700",
          "font__mochiy-pop-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__poppins__700",
          "font__kanit__500",
          "NosiferCaps-Regular.ttf",
          "font__zen-dots__regular",
          "font__kanit__600",
          "font__almarai__800",
          "font__biryani__800",
          "font__stalinist-one__regular",
          "font__cal-sans__regular",
          "font__almarai__700",
          "font__sansation__700",
          "font__nosifer__regular",
          "font__bricolage-grotesque__regular",
          "font__blinker__600",
          "font__wix-madefor-text__800",
          "font__biryani__900",
          "font__momo-trust-display__regular"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 78,
        "formatting": [
          "all_caps"
        ],
        "height": 89,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "NEON HARBOR",
        "width": 636,
        "x": 353,
        "y": 480
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCFCFC",
        "fontAlternatives": [
          "font__montserrat__600",
          "font__audiowide__regular",
          "font__goldman__regular",
          "font__zen-dots__regular",
          "font__tomorrow__500",
          "font__k2d__700",
          "font__k2d__800",
          "font__chakra-petch__600",
          "font__mochiy-pop-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__bai-jamjuree__700",
          "font__tomorrow__600",
          "font__sansation__700",
          "font__anta__regular",
          "font__wallpoet__regular",
          "font__k2d__600",
          "font__krona-one__regular",
          "font__chakra-petch__700",
          "font__unbounded__regular",
          "font__blinker__600",
          "font__wix-madefor-text__600",
          "font__koho__600",
          "font__archivo__regular",
          "WDXLLubrifontJPN-Regular.ttf",
          "font__wdxl-lubrifont-sc__regular",
          "font__wdxl-lubrifont-tc__regular"
        ],
        "fontName": "Montserrat-SemiBold.ttf",
        "fontSize": 63,
        "formatting": [
          "all_caps"
        ],
        "height": 46,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "BLACKOUT",
        "width": 230,
        "x": 556,
        "y": 579
      },
      {
        "alignment": "right",
        "angle": 0,
        "color": "#FFFFFF",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__alexandria__regular",
          "font__unbounded__regular",
          "Khyay-Regular.ttf",
          "font__wix-madefor-text__600",
          "font__mochiy-pop-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__itim__regular",
          "font__livvic__600",
          "MontserratSubrayada-Regular.ttf",
          "font__cal-sans__regular",
          "font__mclaren__regular",
          "font__reem-kufi-ink__regular",
          "font__reem-kufi-fun__regular",
          "font__reem-kufi__regular",
          "font__biryani__700",
          "font__shippori-antique-b1__regular",
          "font__shippori-antique__regular",
          "font__wix-madefor-text__700",
          "font__cherry-cream-soda__regular",
          "font__spline-sans__regular",
          "font__krona-one__regular",
          "font__livvic__500",
          "font__balsamiq-sans__regular",
          "font__be-vietnam-pro__500",
          "font__zain__700"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 31,
        "formatting": [
          "all_caps"
        ],
        "height": 37,
        "lineHeight": 1.2,
        "role": "body",
        "text": "COMING 2026",
        "width": 220,
        "x": 1085,
        "y": 597
      },
      {
        "alignment": "center",
        "angle": 90,
        "color": "#DE66B6",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__blaka-hollow__regular",
          "font__tourney__regular",
          "font__rubik-broken-fax__regular",
          "font__karla-tamil-upright__regular",
          "AksaraBaliGalang-Regular.ttf",
          "jsMath-cmbx10.ttf",
          "jsMath-cmsy10.ttf",
          "font__karla-tamil-inclined__regular",
          "Kokoro-Regular.ttf",
          "jsMath-cmex10.ttf",
          "font__khmer__regular",
          "AdobeBlank-Regular.ttf",
          "jsMath-cmti10.ttf",
          "jsMath-cmr10.ttf",
          "jsMath-cmmi10.ttf",
          "font__karla-tamil-inclined__700",
          "Nikukyu-Regular.ttf",
          "Hannari-Regular.ttf",
          "font__karla-tamil-upright__700",
          "font__bungee-outline__regular",
          "PorterSansBlock-Regular.ttf",
          "Yarndings12Charted-Regular.ttf",
          "Rubik80sFade-Regular.ttf",
          "Micro5Charted-Regular.ttf",
          "Yarndings12-Regular.ttf"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 63,
        "formatting": [
          "all_caps"
        ],
        "height": 46,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "ZONE",
        "width": 112,
        "x": 24,
        "y": 218
      },
      {
        "alignment": "center",
        "angle": 90,
        "color": "#DE6BC0",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__blaka-hollow__regular",
          "font__tourney__regular",
          "font__rubik-broken-fax__regular",
          "font__karla-tamil-upright__regular",
          "AksaraBaliGalang-Regular.ttf",
          "jsMath-cmbx10.ttf",
          "jsMath-cmsy10.ttf",
          "font__karla-tamil-inclined__regular",
          "Kokoro-Regular.ttf",
          "jsMath-cmex10.ttf",
          "font__khmer__regular",
          "AdobeBlank-Regular.ttf",
          "jsMath-cmti10.ttf",
          "jsMath-cmr10.ttf",
          "jsMath-cmmi10.ttf",
          "font__karla-tamil-inclined__700",
          "Nikukyu-Regular.ttf",
          "Hannari-Regular.ttf",
          "font__karla-tamil-upright__700",
          "font__bungee-outline__regular",
          "PorterSansBlock-Regular.ttf",
          "Yarndings12Charted-Regular.ttf",
          "Rubik80sFade-Regular.ttf",
          "Micro5Charted-Regular.ttf",
          "Yarndings12-Regular.ttf"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 70,
        "formatting": [
          "all_caps"
        ],
        "height": 50,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "FUEL",
        "width": 142,
        "x": 1218,
        "y": 102
      }
    ]
  }
}

text-layer-extraction

Barn Owl Release Event Poster$0.09~26s
Barn Owl Release Event Poster

A vertical wildlife conservation event poster featuring a barn owl flying through a misty wetland at dusk, with clearly legible editorial typography: “WINGS AT DUSK,” “BARN OWL RELEASE,” “SEPT 21 · 6:30 PM,” and “MARSH CREEK WILDLIFE SANCTUARY.”

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'A vertical wildlife conservation event poster featuring a barn owl flying through a misty wetland at dusk, with clearly legible editorial typography: “WINGS AT DUSK,” “BARN OWL RELEASE,” “SEPT 21 · 6:30 PM,” and “MARSH CREEK WILDLIFE SANCTUARY.”',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/60b88560-7e77-4d82-b47c-ece7b6dfb734.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "A vertical wildlife conservation event poster featuring a barn owl flying through a misty wetland at dusk, with clearly legible editorial typography: “WINGS AT DUSK,” “BARN OWL RELEASE,” “SEPT 21 · 6:30 PM,” and “MARSH CREEK WILDLIFE SANCTUARY.”",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/60b88560-7e77-4d82-b47c-ece7b6dfb734.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "ec2a9b31-c4ed-4a21-8bcf-bf488a64f90b",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "A vertical wildlife conservation event poster featuring a barn owl flying through a misty wetland at dusk, with clearly legible editorial typography: “WINGS AT DUSK,” “BARN OWL RELEASE,” “SEPT 21 · 6:30 PM,” and “MARSH CREEK WILDLIFE SANCTUARY.”",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/60b88560-7e77-4d82-b47c-ece7b6dfb734.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="A vertical wildlife conservation event poster featuring a barn owl flying through a misty wetland at dusk, with clearly legible editorial typography: “WINGS AT DUSK,” “BARN OWL RELEASE,” “SEPT 21 · 6:30 PM,” and “MARSH CREEK WILDLIFE SANCTUARY.”" \
  inputs.image=https://assets.runware.ai/assets/inputs/60b88560-7e77-4d82-b47c-ece7b6dfb734.jpg
{
  "taskType": "imageInference",
  "taskUUID": "ec2a9b31-c4ed-4a21-8bcf-bf488a64f90b",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "A vertical wildlife conservation event poster featuring a barn owl flying through a misty wetland at dusk, with clearly legible editorial typography: “WINGS AT DUSK,” “BARN OWL RELEASE,” “SEPT 21 · 6:30 PM,” and “MARSH CREEK WILDLIFE SANCTUARY.”",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/60b88560-7e77-4d82-b47c-ece7b6dfb734.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "ec2a9b31-c4ed-4a21-8bcf-bf488a64f90b",
  "imageUUID": "5f3cb0c4-8b4b-4a11-8c30-050f6c833b89",
  "imageURL": "https://im.runware.ai/image/os/a02d21/ws/3/ii/5f3cb0c4-8b4b-4a11-8c30-050f6c833b89.jpg",
  "seed": 1814546041,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#F7D484",
        "fontAlternatives": [
          "font__montserrat__regular",
          "font__carlito__regular",
          "font__reddit-sans-condensed__regular",
          "font__tasa-explorer__regular",
          "font__rosario__regular",
          "font__proza-libre__regular",
          "font__overlock__regular",
          "font__lato__regular",
          "font__hind-siliguri__regular",
          "font__niramit__regular",
          "font__hind-mysuru__regular",
          "HindKochi-Regular.ttf",
          "font__chocolate-classical-sans__regular",
          "Lato-Medium.ttf",
          "font__expletus-sans__regular",
          "font__carme__regular",
          "font__noto-sans-kawi__regular",
          "font__ubuntu__regular",
          "font__faculty-glyphic__regular",
          "font__noto-sans-marchen__regular",
          "font__mada__regular",
          "font__hind-vadodara__regular",
          "font__thasadith__700",
          "font__hind-guntur__regular",
          "font__hind__regular",
          "HindJalandhar-Regular.ttf"
        ],
        "fontName": "Montserrat-Regular.ttf",
        "fontSize": 49,
        "formatting": [
          "all_caps"
        ],
        "height": 38,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "BARN OWL RELEASE",
        "width": 528,
        "x": 247,
        "y": 76
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCF2D4",
        "fontAlternatives": [
          "font__oswald__700",
          "font__sansita__700",
          "font__bebas-neue__regular",
          "font__agdasima__700",
          "font__staatliches__regular",
          "font__special-gothic-condensed-one__regular",
          "font__barlow-semi-condensed__700",
          "font__barlow__700",
          "BBHSansBogle-Regular.ttf",
          "font__galindo__regular",
          "font__khand__600",
          "font__barlow__800",
          "font__overlock__900",
          "font__rum-raisin__regular",
          "font__magra__700",
          "font__ibm-plex-sans-condensed__700",
          "font__freeman__regular",
          "font__tomorrow__700",
          "font__yantramanav__900",
          "font__bricolage-grotesque__regular",
          "font__cossette-titre__700",
          "font__cossette-texte__700",
          "font__rajdhani__700",
          "font__sansita__regular",
          "font__barlow__900",
          "font__almarai__700"
        ],
        "fontName": "Oswald-Bold.ttf",
        "fontSize": 125,
        "formatting": [
          "all_caps"
        ],
        "height": 124,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "WINGS AT DUSK",
        "width": 800,
        "x": 111,
        "y": 154
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCF7D9",
        "fontAlternatives": [
          "font__lora__regular",
          "font__libre-baskerville__700",
          "font__alice__regular",
          "font__radley__regular",
          "font__jacques-francois__regular",
          "font__nanum-myeongjo__800",
          "font__crimson-text__600",
          "font__libre-baskerville__regular",
          "IMFeENsc28P.ttf",
          "font__inknut-antiqua__500",
          "font__noto-serif-makasar__regular",
          "font__noto-serif-old-uyghur__regular",
          "font__cardo__700",
          "font__noto-serif-ahom__regular",
          "IMFeGPsc28P.ttf",
          "font__taviraj__500",
          "font__poltawski-nowy__regular",
          "IMFePIrm28P.ttf",
          "font__lusitana__700",
          "font__noto-serif-todhri__regular",
          "font__inknut-antiqua__regular",
          "font__gelasio__regular",
          "font__libertinus-serif__600",
          "IMFeENrm28P.ttf",
          "font__inknut-antiqua__600",
          "IMFePIsc28P.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 47,
        "formatting": [
          "all_caps"
        ],
        "height": 46,
        "lineHeight": 1.2,
        "role": "body",
        "text": "SEPT 21 • 6:30 PM",
        "width": 392,
        "x": 315,
        "y": 855
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCFCE8",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__wittgenstein__regular",
          "font__noto-nastaliq-urdu__regular",
          "font__gulzar__regular",
          "font__neuton__regular",
          "font__corben__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__taviraj__500",
          "font__hedvig-letters-serif__regular",
          "font__lusitana__regular",
          "GoudyBookletter1911.ttf",
          "font__crimson-text__600",
          "font__lusitana__700",
          "font__crimson-text__regular",
          "font__kameron__regular",
          "font__sumana__regular",
          "font__neuton__300",
          "font__radley__regular",
          "font__joan__regular",
          "font__noto-serif-ahom__regular",
          "font__fenix__regular",
          "font__buenard__regular",
          "font__stoke__300",
          "font__aref-ruqaa__regular",
          "font__aref-ruqaa-ink__regular"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 31,
        "formatting": [
          "all_caps"
        ],
        "height": 28,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "MARSH CREEK WILDLIFE SANCTUARY",
        "width": 620,
        "x": 201,
        "y": 921
      }
    ]
  }
}
Boutique Hotel Menu Layerization
Boutique Hotel Menu Layerization

Analyze the hotel in-room dining menu image, detect every readable text line, preserve its approximate position, font styling, hierarchy, and alignment, and return editable text blocks plus a clean text-erased base image suitable for updating menu prices, allergen notes, and translated room-service copy.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'Analyze the hotel in-room dining menu image, detect every readable text line, preserve its approximate position, font styling, hierarchy, and alignment, and return editable text blocks plus a clean text-erased base image suitable for updating menu prices, allergen notes, and translated room-service copy.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/775c4f9d-679f-41fe-b49e-ba57949fc8fd.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "Analyze the hotel in-room dining menu image, detect every readable text line, preserve its approximate position, font styling, hierarchy, and alignment, and return editable text blocks plus a clean text-erased base image suitable for updating menu prices, allergen notes, and translated room-service copy.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/775c4f9d-679f-41fe-b49e-ba57949fc8fd.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "60c8e855-5bda-404b-aac7-7adce9c52b1b",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "Analyze the hotel in-room dining menu image, detect every readable text line, preserve its approximate position, font styling, hierarchy, and alignment, and return editable text blocks plus a clean text-erased base image suitable for updating menu prices, allergen notes, and translated room-service copy.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/775c4f9d-679f-41fe-b49e-ba57949fc8fd.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="Analyze the hotel in-room dining menu image, detect every readable text line, preserve its approximate position, font styling, hierarchy, and alignment, and return editable text blocks plus a clean text-erased base image suitable for updating menu prices, allergen notes, and translated room-service copy." \
  inputs.image=https://assets.runware.ai/assets/inputs/775c4f9d-679f-41fe-b49e-ba57949fc8fd.jpg
{
  "taskType": "imageInference",
  "taskUUID": "60c8e855-5bda-404b-aac7-7adce9c52b1b",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "Analyze the hotel in-room dining menu image, detect every readable text line, preserve its approximate position, font styling, hierarchy, and alignment, and return editable text blocks plus a clean text-erased base image suitable for updating menu prices, allergen notes, and translated room-service copy.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/775c4f9d-679f-41fe-b49e-ba57949fc8fd.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "60c8e855-5bda-404b-aac7-7adce9c52b1b",
  "imageUUID": "b112f0d9-8b3a-4905-ac8f-836b4cab8a21",
  "imageURL": "https://im.runware.ai/image/os/a02d21/ws/3/ii/b112f0d9-8b3a-4905-ac8f-836b4cab8a21.jpg",
  "seed": 1583411946,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#342016",
        "fontAlternatives": [
          "font__cinzel__700",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__cinzel-decorative__700",
          "font__uncial-antiqua__regular",
          "font__caudex__700",
          "font__wittgenstein__regular",
          "font__lusitana__700",
          "font__aref-ruqaa-ink__regular",
          "font__aref-ruqaa__regular",
          "font__gulzar__regular",
          "MountainsofChristmas-Bold.ttf",
          "font__fondamento__regular",
          "font__philosopher__700",
          "font__joan__regular",
          "font__corben__regular",
          "font__lusitana__regular",
          "font__noto-nastaliq-urdu__regular",
          "font__neuton__regular",
          "font__cardo__700",
          "font__simonetta__regular",
          "font__hedvig-letters-serif__regular",
          "font__taviraj__500",
          "font__quintessential__regular",
          "font__federo__regular",
          "IMFELLDoublePica-Regular.ttf"
        ],
        "fontName": "Cinzel-Bold.ttf",
        "fontSize": 39,
        "formatting": [
          "all_caps"
        ],
        "height": 39,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "ROOM DINING",
        "width": 307,
        "x": 265,
        "y": 259
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#1B0C02",
        "fontAlternatives": [
          "font__playfair-display__700",
          "font__uncial-antiqua__regular",
          "font__gulzar__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__cinzel-decorative__700",
          "font__gloock__regular",
          "font__cinzel-decorative__900",
          "font__wittgenstein__regular",
          "font__corben__regular",
          "font__henny-penny__regular",
          "font__noto-nastaliq-urdu__regular",
          "IMFeENsc28P.ttf",
          "font__taviraj__500",
          "font__hedvig-letters-serif__regular",
          "IMFeENrm28P.ttf",
          "font__lusitana__700",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__aref-ruqaa-ink__regular",
          "font__aref-ruqaa__regular",
          "font__berkshire-swash__regular",
          "font__uoqmunthenkhung__regular",
          "OFLGoudyStMTT.ttf",
          "font__libre-baskerville__700",
          "font__geostar-fill__regular"
        ],
        "fontName": "PlayfairDisplay-Bold.ttf",
        "fontSize": 26,
        "formatting": [
          "bold"
        ],
        "height": 29,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Breakfast Selection",
        "width": 234,
        "x": 203,
        "y": 384
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 14,
        "height": 22,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Fresh Morning Pastries",
        "width": 158,
        "x": 203,
        "y": 416
      },
      {
        "alignment": "right",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 14,
        "formatting": [
          "bold"
        ],
        "height": 22,
        "lineHeight": 1.2,
        "role": "body",
        "text": "$35",
        "width": 37,
        "x": 590,
        "y": 416
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#4D3425",
        "fontAlternatives": [
          "font__lora__italic",
          "font__niconne__regular",
          "font__norican__regular",
          "font__redressed__regular",
          "font__style-script__regular",
          "font__puppies-play__regular",
          "font__uncial-antiqua__regular",
          "font__rochester__regular",
          "font__oleo-script-swash-caps__regular",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__amita__700",
          "font__almendra-sc__regular",
          "font__sail__regular",
          "font__dr-sugiyama__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__amita__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__princess-sofia__regular",
          "font__berkshire-swash__regular",
          "font__cinzel-decorative__700",
          "font__mea-culpa__regular",
          "font__lavishly-yours__regular",
          "font__carattere__regular",
          "font__mr-bedfort__regular"
        ],
        "fontName": "Lora-Italic.ttf",
        "fontSize": 13,
        "formatting": [
          "italic"
        ],
        "height": 46,
        "lineHeight": 1.77,
        "role": "caption",
        "text": "With seasonal fruit, yogurt, and choice of juice or coffee.\nServed with butter and preserves.",
        "width": 356,
        "x": 203,
        "y": 441
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__playfair-display__700",
          "font__uncial-antiqua__regular",
          "font__gulzar__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__cinzel-decorative__700",
          "font__gloock__regular",
          "font__cinzel-decorative__900",
          "font__wittgenstein__regular",
          "font__corben__regular",
          "font__henny-penny__regular",
          "font__noto-nastaliq-urdu__regular",
          "IMFeENsc28P.ttf",
          "font__taviraj__500",
          "font__hedvig-letters-serif__regular",
          "IMFeENrm28P.ttf",
          "font__lusitana__700",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__aref-ruqaa-ink__regular",
          "font__aref-ruqaa__regular",
          "font__berkshire-swash__regular",
          "font__uoqmunthenkhung__regular",
          "OFLGoudyStMTT.ttf",
          "font__libre-baskerville__700",
          "font__geostar-fill__regular"
        ],
        "fontName": "PlayfairDisplay-Bold.ttf",
        "fontSize": 27,
        "formatting": [
          "bold"
        ],
        "height": 25,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Main Courses",
        "width": 173,
        "x": 203,
        "y": 507
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 16,
        "height": 19,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Grilled Salmon Fillet",
        "width": 158,
        "x": 203,
        "y": 536
      },
      {
        "alignment": "right",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 16,
        "formatting": [
          "bold"
        ],
        "height": 19,
        "lineHeight": 1.2,
        "role": "body",
        "text": "$50",
        "width": 37,
        "x": 590,
        "y": 536
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#523425",
        "fontAlternatives": [
          "font__lora__italic",
          "font__niconne__regular",
          "font__norican__regular",
          "font__redressed__regular",
          "font__style-script__regular",
          "font__puppies-play__regular",
          "font__uncial-antiqua__regular",
          "font__rochester__regular",
          "font__oleo-script-swash-caps__regular",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__amita__700",
          "font__almendra-sc__regular",
          "font__sail__regular",
          "font__dr-sugiyama__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__amita__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__princess-sofia__regular",
          "font__berkshire-swash__regular",
          "font__cinzel-decorative__700",
          "font__mea-culpa__regular",
          "font__lavishly-yours__regular",
          "font__carattere__regular",
          "font__mr-bedfort__regular"
        ],
        "fontName": "Lora-Italic.ttf",
        "fontSize": 12,
        "formatting": [
          "italic"
        ],
        "height": 39,
        "lineHeight": 1.18,
        "role": "caption",
        "text": "Sustainable salmon with roasted vegetables and lemon butter sauce.\nAllergens: Fish, Dairy.",
        "width": 316,
        "x": 203,
        "y": 560
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#160702",
        "fontAlternatives": [
          "font__playfair-display__700",
          "font__uncial-antiqua__regular",
          "font__gulzar__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__cinzel-decorative__700",
          "font__gloock__regular",
          "font__cinzel-decorative__900",
          "font__wittgenstein__regular",
          "font__corben__regular",
          "font__henny-penny__regular",
          "font__noto-nastaliq-urdu__regular",
          "IMFeENsc28P.ttf",
          "font__taviraj__500",
          "font__hedvig-letters-serif__regular",
          "IMFeENrm28P.ttf",
          "font__lusitana__700",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__aref-ruqaa-ink__regular",
          "font__aref-ruqaa__regular",
          "font__berkshire-swash__regular",
          "font__uoqmunthenkhung__regular",
          "OFLGoudyStMTT.ttf",
          "font__libre-baskerville__700",
          "font__geostar-fill__regular"
        ],
        "fontName": "PlayfairDisplay-Bold.ttf",
        "fontSize": 24,
        "formatting": [
          "bold"
        ],
        "height": 24,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Signature Pasta",
        "width": 252,
        "x": 203,
        "y": 619
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 14,
        "height": 18,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Truffle Tagliatelle",
        "width": 119,
        "x": 203,
        "y": 647
      },
      {
        "alignment": "right",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 14,
        "formatting": [
          "bold"
        ],
        "height": 18,
        "lineHeight": 1.2,
        "role": "body",
        "text": "$50",
        "width": 37,
        "x": 590,
        "y": 647
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#432A1B",
        "fontAlternatives": [
          "font__lora__italic",
          "font__niconne__regular",
          "font__norican__regular",
          "font__redressed__regular",
          "font__style-script__regular",
          "font__puppies-play__regular",
          "font__uncial-antiqua__regular",
          "font__rochester__regular",
          "font__oleo-script-swash-caps__regular",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__amita__700",
          "font__almendra-sc__regular",
          "font__sail__regular",
          "font__dr-sugiyama__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__amita__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__princess-sofia__regular",
          "font__berkshire-swash__regular",
          "font__cinzel-decorative__700",
          "font__mea-culpa__regular",
          "font__lavishly-yours__regular",
          "font__carattere__regular",
          "font__mr-bedfort__regular"
        ],
        "fontName": "Lora-Italic.ttf",
        "fontSize": 12,
        "formatting": [
          "italic"
        ],
        "height": 50,
        "lineHeight": 1.39,
        "role": "caption",
        "text": "Handmade pasta with wild mushrooms and truffle cream.\nAllergens: Gluten, Dairy.\nVegetarian option available.",
        "width": 324,
        "x": 203,
        "y": 671
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__playfair-display__700",
          "font__uncial-antiqua__regular",
          "font__gulzar__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__cinzel-decorative__700",
          "font__gloock__regular",
          "font__cinzel-decorative__900",
          "font__wittgenstein__regular",
          "font__corben__regular",
          "font__henny-penny__regular",
          "font__noto-nastaliq-urdu__regular",
          "IMFeENsc28P.ttf",
          "font__taviraj__500",
          "font__hedvig-letters-serif__regular",
          "IMFeENrm28P.ttf",
          "font__lusitana__700",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__aref-ruqaa-ink__regular",
          "font__aref-ruqaa__regular",
          "font__berkshire-swash__regular",
          "font__uoqmunthenkhung__regular",
          "OFLGoudyStMTT.ttf",
          "font__libre-baskerville__700",
          "font__geostar-fill__regular"
        ],
        "fontName": "PlayfairDisplay-Bold.ttf",
        "fontSize": 23,
        "formatting": [
          "bold"
        ],
        "height": 25,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Dessert Selection",
        "width": 188,
        "x": 203,
        "y": 746
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#482F20",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 19,
        "height": 19,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Classic Chocolate Fondant",
        "width": 297,
        "x": 203,
        "y": 780
      },
      {
        "alignment": "right",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 19,
        "formatting": [
          "bold"
        ],
        "height": 19,
        "lineHeight": 1.2,
        "role": "body",
        "text": "$50",
        "width": 37,
        "x": 590,
        "y": 780
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__italic",
          "font__niconne__regular",
          "font__norican__regular",
          "font__redressed__regular",
          "font__style-script__regular",
          "font__puppies-play__regular",
          "font__uncial-antiqua__regular",
          "font__rochester__regular",
          "font__oleo-script-swash-caps__regular",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__amita__700",
          "font__almendra-sc__regular",
          "font__sail__regular",
          "font__dr-sugiyama__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__amita__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__princess-sofia__regular",
          "font__berkshire-swash__regular",
          "font__cinzel-decorative__700",
          "font__mea-culpa__regular",
          "font__lavishly-yours__regular",
          "font__carattere__regular",
          "font__mr-bedfort__regular"
        ],
        "fontName": "Lora-Italic.ttf",
        "fontSize": 12,
        "formatting": [
          "italic"
        ],
        "height": 18,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "Warm chocolate cake with vanilla bean ice cream.",
        "width": 257,
        "x": 203,
        "y": 806
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#110702",
        "fontAlternatives": [
          "font__playfair-display__700",
          "font__uncial-antiqua__regular",
          "font__gulzar__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__cinzel-decorative__700",
          "font__gloock__regular",
          "font__cinzel-decorative__900",
          "font__wittgenstein__regular",
          "font__corben__regular",
          "font__henny-penny__regular",
          "font__noto-nastaliq-urdu__regular",
          "IMFeENsc28P.ttf",
          "font__taviraj__500",
          "font__hedvig-letters-serif__regular",
          "IMFeENrm28P.ttf",
          "font__lusitana__700",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__aref-ruqaa-ink__regular",
          "font__aref-ruqaa__regular",
          "font__berkshire-swash__regular",
          "font__uoqmunthenkhung__regular",
          "OFLGoudyStMTT.ttf",
          "font__libre-baskerville__700",
          "font__geostar-fill__regular"
        ],
        "fontName": "PlayfairDisplay-Bold.ttf",
        "fontSize": 26,
        "formatting": [
          "bold"
        ],
        "height": 25,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "Beverage Menu",
        "width": 204,
        "x": 203,
        "y": 848
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 12,
        "height": 19,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Chardonnay or Merlot",
        "width": 136,
        "x": 203,
        "y": 877
      },
      {
        "alignment": "right",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 20,
        "formatting": [
          "bold"
        ],
        "height": 21,
        "lineHeight": 1.2,
        "role": "body",
        "text": "$30",
        "width": 40,
        "x": 587,
        "y": 868
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__regular",
          "font__uncial-antiqua__regular",
          "font__redressed__regular",
          "font__aref-ruqaa-ink__700",
          "font__aref-ruqaa__700",
          "font__amita__700",
          "font__cinzel-decorative__700",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__corben__regular",
          "font__amita__regular",
          "font__wittgenstein__regular",
          "font__oregano__regular",
          "font__norican__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__lobster-two__regular",
          "font__niconne__regular",
          "font__philosopher__700",
          "font__almendra-sc__regular",
          "font__berkshire-swash__regular",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__kaisei-decol__500",
          "font__dr-sugiyama__regular",
          "OFLGoudyStMTT.ttf"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 13,
        "height": 15,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Selection of fine wines",
        "width": 144,
        "x": 203,
        "y": 897
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#26221C",
        "fontAlternatives": [
          "font__lora__italic",
          "font__niconne__regular",
          "font__norican__regular",
          "font__redressed__regular",
          "font__style-script__regular",
          "font__puppies-play__regular",
          "font__uncial-antiqua__regular",
          "font__rochester__regular",
          "font__oleo-script-swash-caps__regular",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__amita__700",
          "font__almendra-sc__regular",
          "font__sail__regular",
          "font__dr-sugiyama__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__amita__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__princess-sofia__regular",
          "font__berkshire-swash__regular",
          "font__cinzel-decorative__700",
          "font__mea-culpa__regular",
          "font__lavishly-yours__regular",
          "font__carattere__regular",
          "font__mr-bedfort__regular"
        ],
        "fontName": "Lora-Italic.ttf",
        "fontSize": 14,
        "formatting": [
          "italic"
        ],
        "height": 16,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "By the glass or bottle.",
        "width": 213,
        "x": 203,
        "y": 916
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#482F20",
        "fontAlternatives": [
          "font__lora__italic",
          "font__niconne__regular",
          "font__norican__regular",
          "font__redressed__regular",
          "font__style-script__regular",
          "font__puppies-play__regular",
          "font__uncial-antiqua__regular",
          "font__rochester__regular",
          "font__oleo-script-swash-caps__regular",
          "font__engagement__regular",
          "font__gulzar__regular",
          "font__amita__700",
          "font__almendra-sc__regular",
          "font__sail__regular",
          "font__dr-sugiyama__regular",
          "UnifrakturMaguntia-Book.ttf",
          "font__amita__regular",
          "font__aref-ruqaa__700",
          "font__aref-ruqaa-ink__700",
          "font__princess-sofia__regular",
          "font__berkshire-swash__regular",
          "font__cinzel-decorative__700",
          "font__mea-culpa__regular",
          "font__lavishly-yours__regular",
          "font__carattere__regular",
          "font__mr-bedfort__regular"
        ],
        "fontName": "Lora-Italic.ttf",
        "fontSize": 15,
        "height": 33,
        "lineHeight": 1.1,
        "role": "caption",
        "text": "Room Number Service: 2029\nContact: +01 780-2019",
        "width": 286,
        "x": 273,
        "y": 1015
      }
    ]
  }
}

text-layer-extraction

Roller Derby Archive Photo Restoration$0.09~43s
Roller Derby Archive Photo Restoration

A polished landscape sports-heritage exhibition print containing a repaired and colorized 1978 roller derby team photograph. Preserve the restored photograph, cream border, teal header, and rust accents as the text-erased base artwork. Identify and separate the exact headline “BLOCKERS OF ’78,” the subheading “RIVERTON ROLLER DERBY,” and both supporting archival captions into distinct editable text blocks, retaining their positions, colors, alignment, condensed slab-serif headline style, and clean sans-serif caption styling.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'A polished landscape sports-heritage exhibition print containing a repaired and colorized 1978 roller derby team photograph. Preserve the restored photograph, cream border, teal header, and rust accents as the text-erased base artwork. Identify and separate the exact headline “BLOCKERS OF ’78,” the subheading “RIVERTON ROLLER DERBY,” and both supporting archival captions into distinct editable text blocks, retaining their positions, colors, alignment, condensed slab-serif headline style, and clean sans-serif caption styling.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/78ba139f-8342-42ed-9d97-380ee9412030.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "A polished landscape sports-heritage exhibition print containing a repaired and colorized 1978 roller derby team photograph. Preserve the restored photograph, cream border, teal header, and rust accents as the text-erased base artwork. Identify and separate the exact headline “BLOCKERS OF ’78,” the subheading “RIVERTON ROLLER DERBY,” and both supporting archival captions into distinct editable text blocks, retaining their positions, colors, alignment, condensed slab-serif headline style, and clean sans-serif caption styling.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/78ba139f-8342-42ed-9d97-380ee9412030.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "6e14148a-089d-4a01-8ba1-a1d94edd47a0",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "A polished landscape sports-heritage exhibition print containing a repaired and colorized 1978 roller derby team photograph. Preserve the restored photograph, cream border, teal header, and rust accents as the text-erased base artwork. Identify and separate the exact headline “BLOCKERS OF ’78,” the subheading “RIVERTON ROLLER DERBY,” and both supporting archival captions into distinct editable text blocks, retaining their positions, colors, alignment, condensed slab-serif headline style, and clean sans-serif caption styling.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/78ba139f-8342-42ed-9d97-380ee9412030.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="A polished landscape sports-heritage exhibition print containing a repaired and colorized 1978 roller derby team photograph. Preserve the restored photograph, cream border, teal header, and rust accents as the text-erased base artwork. Identify and separate the exact headline “BLOCKERS OF ’78,” the subheading “RIVERTON ROLLER DERBY,” and both supporting archival captions into distinct editable text blocks, retaining their positions, colors, alignment, condensed slab-serif headline style, and clean sans-serif caption styling." \
  inputs.image=https://assets.runware.ai/assets/inputs/78ba139f-8342-42ed-9d97-380ee9412030.jpg
{
  "taskType": "imageInference",
  "taskUUID": "6e14148a-089d-4a01-8ba1-a1d94edd47a0",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "A polished landscape sports-heritage exhibition print containing a repaired and colorized 1978 roller derby team photograph. Preserve the restored photograph, cream border, teal header, and rust accents as the text-erased base artwork. Identify and separate the exact headline “BLOCKERS OF ’78,” the subheading “RIVERTON ROLLER DERBY,” and both supporting archival captions into distinct editable text blocks, retaining their positions, colors, alignment, condensed slab-serif headline style, and clean sans-serif caption styling.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/78ba139f-8342-42ed-9d97-380ee9412030.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "6e14148a-089d-4a01-8ba1-a1d94edd47a0",
  "imageUUID": "aff1169e-a341-4a27-a635-a3b9a991020e",
  "imageURL": "https://im.runware.ai/image/os/a03d21/ws/3/ii/aff1169e-a341-4a27-a635-a3b9a991020e.jpg",
  "seed": 1870065994,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FCF7D9",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__zain__800",
          "MontserratSubrayada-Bold.ttf",
          "font__poppins__700",
          "font__cal-sans__regular",
          "font__biryani__900",
          "font__biryani__800",
          "font__livvic__900",
          "font__livvic__700",
          "font__wix-madefor-text__800",
          "Lato-ExtraBold.ttf",
          "font__special-gothic-expanded-one__regular",
          "font__dela-gothic-one__regular",
          "font__be-vietnam-pro__800",
          "font__be-vietnam-pro__900",
          "font__zain__900",
          "font__acme__regular",
          "font__almarai__800",
          "font__alegreya-sans__800",
          "font__poppins__800",
          "font__secular-one__regular",
          "font__momo-trust-display__regular",
          "font__alegreya-sans-sc__800",
          "font__kanit__600",
          "font__arvo__700",
          "font__rambla__700"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 83,
        "formatting": [
          "all_caps"
        ],
        "height": 83,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "BLOCKERS OF '78",
        "width": 778,
        "x": 234,
        "y": 37
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#752011",
        "fontAlternatives": [
          "font__oswald__500",
          "font__cal-sans__regular",
          "font__reem-kufi-ink__regular",
          "font__reem-kufi__regular",
          "font__reem-kufi-fun__regular",
          "font__biryani__700",
          "font__biryani__800",
          "font__lato__900",
          "font__proza-libre__600",
          "font__carlito__700",
          "font__acme__regular",
          "font__lato__700",
          "font__aoboshi-one__regular",
          "font__alegreya-sans__700italic",
          "font__alexandria__regular",
          "font__merriweather-sans__regular",
          "font__special-gothic-expanded-one__regular",
          "font__alegreya-sans-sc__700",
          "font__sansation__700",
          "font__livvic__600",
          "font__encode-sans-semi-expanded__700",
          "font__encode-sans-semi-expanded__600",
          "font__wix-madefor-text__700",
          "font__belanosima__regular",
          "font__proza-libre__700",
          "font__livvic__700"
        ],
        "fontName": "Oswald-Medium.ttf",
        "fontSize": 50,
        "formatting": [
          "all_caps"
        ],
        "height": 42,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "RIVERTON ROLLER DERBY",
        "width": 568,
        "x": 339,
        "y": 145
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#70160C",
        "fontAlternatives": [
          "font__open-sans__600",
          "font__cal-sans__regular",
          "font__biryani__700",
          "font__belanosima__regular",
          "font__acme__regular",
          "font__lato__900",
          "font__biryani__800",
          "font__carlito__700",
          "font__aoboshi-one__regular",
          "font__alatsi__regular",
          "font__livvic__600",
          "font__ubuntu__500",
          "font__zain__700",
          "font__sansation__700",
          "font__alexandria__regular",
          "font__encode-sans-semi-expanded__600",
          "font__lato__700",
          "font__kanit__500",
          "font__cabin-condensed__700",
          "font__wix-madefor-text__700",
          "font__reem-kufi-ink__regular",
          "font__reem-kufi__regular",
          "font__reem-kufi-fun__regular",
          "font__encode-sans-semi-expanded__700",
          "font__alegreya-sans-sc__700",
          "font__mochiy-pop-p-one__regular"
        ],
        "fontName": "OpenSans-SemiBold.ttf",
        "fontSize": 24,
        "formatting": [
          "all_caps"
        ],
        "height": 29,
        "lineHeight": 1.2,
        "role": "body",
        "text": "CITY CHAMPIONS • THE PALACE RINK • OCTOBER 14, 1978",
        "width": 668,
        "x": 289,
        "y": 723
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#021B20",
        "fontAlternatives": [
          "font__open-sans__regular",
          "font__biryani__700",
          "font__cal-sans__regular",
          "font__alexandria__regular",
          "font__lato__900",
          "font__carlito__700",
          "font__aoboshi-one__regular",
          "font__lato__700",
          "font__belanosima__regular",
          "font__ubuntu__500",
          "font__acme__regular",
          "Khyay-Regular.ttf",
          "font__reem-kufi-ink__regular",
          "font__reem-kufi__regular",
          "font__reem-kufi-fun__regular",
          "MontserratSubrayada-Regular.ttf",
          "font__livvic__600",
          "font__zain__700",
          "font__biryani__800",
          "font__encode-sans-semi-expanded__600",
          "font__sansation__700",
          "font__merriweather-sans__regular",
          "font__proza-libre__600",
          "font__wix-madefor-text__600",
          "Lato-SemiBold.ttf",
          "font__wix-madefor-text__700"
        ],
        "fontName": "OpenSans-Regular.ttf",
        "fontSize": 24,
        "formatting": [
          "all_caps"
        ],
        "height": 29,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "PHOTOGRAPH RESTORED FROM A WATER-DAMAGED PRINT",
        "width": 685,
        "x": 280,
        "y": 763
      }
    ]
  }
}

text-layer-extraction

Apiary Jacket Try-On Campaign$0.09~28s
Apiary Jacket Try-On Campaign

Analyze this apiary apparel campaign graphic and accurately separate every visible line of promotional copy into editable text blocks. Preserve each block’s position, scale, alignment, color, recognizable typographic style, and hierarchy while returning a clean text-erased base image.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'Analyze this apiary apparel campaign graphic and accurately separate every visible line of promotional copy into editable text blocks. Preserve each block’s position, scale, alignment, color, recognizable typographic style, and hierarchy while returning a clean text-erased base image.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/1baa6b19-cb66-4c84-bf76-c69a64ada55a.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "Analyze this apiary apparel campaign graphic and accurately separate every visible line of promotional copy into editable text blocks. Preserve each block’s position, scale, alignment, color, recognizable typographic style, and hierarchy while returning a clean text-erased base image.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/1baa6b19-cb66-4c84-bf76-c69a64ada55a.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "9b6aa0cd-aee9-43ca-9b3b-14ae662ccdbe",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "Analyze this apiary apparel campaign graphic and accurately separate every visible line of promotional copy into editable text blocks. Preserve each block’s position, scale, alignment, color, recognizable typographic style, and hierarchy while returning a clean text-erased base image.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/1baa6b19-cb66-4c84-bf76-c69a64ada55a.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="Analyze this apiary apparel campaign graphic and accurately separate every visible line of promotional copy into editable text blocks. Preserve each block’s position, scale, alignment, color, recognizable typographic style, and hierarchy while returning a clean text-erased base image." \
  inputs.image=https://assets.runware.ai/assets/inputs/1baa6b19-cb66-4c84-bf76-c69a64ada55a.jpg
{
  "taskType": "imageInference",
  "taskUUID": "9b6aa0cd-aee9-43ca-9b3b-14ae662ccdbe",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "Analyze this apiary apparel campaign graphic and accurately separate every visible line of promotional copy into editable text blocks. Preserve each block’s position, scale, alignment, color, recognizable typographic style, and hierarchy while returning a clean text-erased base image.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/1baa6b19-cb66-4c84-bf76-c69a64ada55a.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "9b6aa0cd-aee9-43ca-9b3b-14ae662ccdbe",
  "imageUUID": "e42d48c2-84a8-407c-885a-3be1d13c0fe2",
  "imageURL": "https://im.runware.ai/image/os/a08dlim3/ws/3/ii/e42d48c2-84a8-407c-885a-3be1d13c0fe2.jpg",
  "seed": 2025176437,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "center",
        "angle": 0,
        "color": "#1B1B1B",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__zain__800",
          "font__cal-sans__regular",
          "font__biryani__800",
          "font__livvic__700",
          "font__special-gothic-expanded-one__regular",
          "font__dela-gothic-one__regular",
          "Lato-ExtraBold.ttf",
          "font__poppins__700",
          "font__alegreya-sans__800",
          "font__biryani__900",
          "font__alegreya-sans-sc__800",
          "MontserratSubrayada-Bold.ttf",
          "font__wix-madefor-text__800",
          "font__livvic__900",
          "font__almarai__800",
          "font__zain__900",
          "font__encode-sans-semi-expanded__700",
          "font__kanit__600",
          "font__be-vietnam-pro__800",
          "font__momo-trust-display__regular",
          "font__acme__regular",
          "font__rambla__700",
          "font__be-vietnam-pro__900",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 57,
        "formatting": [
          "all_caps"
        ],
        "height": 49,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "BUILT FOR THE BLOOM",
        "width": 693,
        "x": 69,
        "y": 59
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#0C0C0C",
        "fontAlternatives": [
          "font__montserrat__600",
          "font__livvic__600",
          "font__wix-madefor-text__700",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__aoboshi-one__regular",
          "font__be-vietnam-pro__600",
          "font__zain__700",
          "font__cal-sans__regular",
          "font__wix-madefor-text__600",
          "font__belanosima__regular",
          "font__krona-one__regular",
          "font__lato__900",
          "font__biryani__700",
          "font__alexandria__regular",
          "font__acme__regular",
          "font__zen-dots__regular",
          "font__lato__700",
          "font__poppins__600",
          "font__gothic-a1__700",
          "Khyay-Regular.ttf",
          "font__almarai__700",
          "font__sansation__700",
          "font__livvic__700",
          "font__itim__regular",
          "font__kanit__500"
        ],
        "fontName": "Montserrat-SemiBold.ttf",
        "fontSize": 29,
        "formatting": [
          "all_caps"
        ],
        "height": 33,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "VENTILATED APIARY JACKET",
        "width": 434,
        "x": 198,
        "y": 155
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#020202",
        "fontAlternatives": [
          "font__montserrat__600",
          "font__livvic__600",
          "font__wix-madefor-text__700",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__aoboshi-one__regular",
          "font__be-vietnam-pro__600",
          "font__zain__700",
          "font__cal-sans__regular",
          "font__wix-madefor-text__600",
          "font__belanosima__regular",
          "font__krona-one__regular",
          "font__lato__900",
          "font__biryani__700",
          "font__alexandria__regular",
          "font__acme__regular",
          "font__zen-dots__regular",
          "font__lato__700",
          "font__poppins__600",
          "font__gothic-a1__700",
          "Khyay-Regular.ttf",
          "font__almarai__700",
          "font__sansation__700",
          "font__livvic__700",
          "font__itim__regular",
          "font__kanit__500"
        ],
        "fontName": "Montserrat-SemiBold.ttf",
        "fontSize": 23,
        "formatting": [
          "all_caps"
        ],
        "height": 57,
        "lineHeight": 1.24,
        "role": "subheading",
        "text": "3-LAYER MESH / REINFORCED CUFFS\nZIP-OFF VEIL",
        "width": 454,
        "x": 188,
        "y": 830
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#020202",
        "fontAlternatives": [
          "font__lora__regular",
          "font__wittgenstein__regular",
          "font__hedvig-letters-serif__regular",
          "font__lusitana__regular",
          "font__stoke__300",
          "font__crimson-text__regular",
          "GoudyBookletter1911.ttf",
          "font__fanwood-text__regular",
          "font__buenard__regular",
          "font__aref-ruqaa__regular",
          "font__aref-ruqaa-ink__regular",
          "KaiseiHarunoUmi-Medium.ttf",
          "font__eb-garamond__regular",
          "font__kaisei-decol__500",
          "font__kaisei-tokumin__500",
          "font__kaisei-opti__500",
          "font__kameron__regular",
          "font__prociono__regular",
          "OFLGoudyStMTT.ttf",
          "font__average__regular",
          "font__neuton__300",
          "font__radley__regular",
          "font__noto-nastaliq-urdu__regular",
          "font__joan__regular",
          "font__noto-serif-ahom__regular",
          "font__jacques-francois__regular"
        ],
        "fontName": "Lora-Regular.ttf",
        "fontSize": 23,
        "height": 29,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Field tested through the spring flow.",
        "width": 396,
        "x": 217,
        "y": 946
      }
    ]
  }
}
Electric Bike Website Hero
Electric Bike Website Hero

Analyze this electric bike brand website hero banner and layerize all readable marketing text into editable text blocks. Preserve the original visual hierarchy, approximate font style, text color, alignment, button text placement, and line positions. Return the text-erased base image so the headline, subheadline, and CTA can be rewritten for a homepage A/B test.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'Analyze this electric bike brand website hero banner and layerize all readable marketing text into editable text blocks. Preserve the original visual hierarchy, approximate font style, text color, alignment, button text placement, and line positions. Return the text-erased base image so the headline, subheadline, and CTA can be rewritten for a homepage A/B test.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/02b8f6d5-c846-44e2-8eb0-e4b5526ef714.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "Analyze this electric bike brand website hero banner and layerize all readable marketing text into editable text blocks. Preserve the original visual hierarchy, approximate font style, text color, alignment, button text placement, and line positions. Return the text-erased base image so the headline, subheadline, and CTA can be rewritten for a homepage A/B test.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/02b8f6d5-c846-44e2-8eb0-e4b5526ef714.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "ca3ccccd-91dd-4009-b5c8-5924355d19be",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "Analyze this electric bike brand website hero banner and layerize all readable marketing text into editable text blocks. Preserve the original visual hierarchy, approximate font style, text color, alignment, button text placement, and line positions. Return the text-erased base image so the headline, subheadline, and CTA can be rewritten for a homepage A/B test.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/02b8f6d5-c846-44e2-8eb0-e4b5526ef714.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="Analyze this electric bike brand website hero banner and layerize all readable marketing text into editable text blocks. Preserve the original visual hierarchy, approximate font style, text color, alignment, button text placement, and line positions. Return the text-erased base image so the headline, subheadline, and CTA can be rewritten for a homepage A/B test." \
  inputs.image=https://assets.runware.ai/assets/inputs/02b8f6d5-c846-44e2-8eb0-e4b5526ef714.jpg
{
  "taskType": "imageInference",
  "taskUUID": "ca3ccccd-91dd-4009-b5c8-5924355d19be",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "Analyze this electric bike brand website hero banner and layerize all readable marketing text into editable text blocks. Preserve the original visual hierarchy, approximate font style, text color, alignment, button text placement, and line positions. Return the text-erased base image so the headline, subheadline, and CTA can be rewritten for a homepage A/B test.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/02b8f6d5-c846-44e2-8eb0-e4b5526ef714.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "ca3ccccd-91dd-4009-b5c8-5924355d19be",
  "imageUUID": "3382603a-8694-4fa0-93a2-8ead351a3115",
  "imageURL": "https://im.runware.ai/image/os/a10dlim3/ws/3/ii/3382603a-8694-4fa0-93a2-8ead351a3115.jpg",
  "seed": 1129533628,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "left",
        "angle": 0,
        "color": "#FFFFFF",
        "fontAlternatives": [
          "font__montserrat__600",
          "font__krona-one__regular",
          "font__alexandria__regular",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__zen-dots__regular",
          "font__livvic__600",
          "font__belanosima__regular",
          "font__biryani__700",
          "font__sansation__700",
          "font__wix-madefor-text__600",
          "Khyay-Regular.ttf",
          "font__cal-sans__regular",
          "font__wix-madefor-text__700",
          "font__aoboshi-one__regular",
          "MontserratSubrayada-Regular.ttf",
          "font__zain__700",
          "font__unbounded__regular",
          "font__be-vietnam-pro__600",
          "font__ubuntu__500",
          "font__lato__900",
          "font__itim__regular",
          "font__rem__regular",
          "font__encode-sans-semi-expanded__600",
          "font__syncopate__700",
          "font__kanit__500"
        ],
        "fontName": "Montserrat-SemiBold.ttf",
        "fontSize": 39,
        "height": 29,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "VOLTLINE",
        "width": 137,
        "x": 56,
        "y": 16
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#000000",
        "fontAlternatives": [
          "font__montserrat__regular",
          "font__beiruti__regular",
          "ZCOOLKuaiLe-Regular.ttf",
          "font__koho__500",
          "font__kodchasan__500",
          "font__oregano__regular",
          "font__pontano-sans__regular",
          "font__handlee__regular",
          "font__marhey__regular",
          "font__tomorrow__regular",
          "font__kodchasan__600",
          "font__nobile__regular",
          "font__sofadi-one__regular",
          "font__gayathri__700",
          "font__montserrat-alternates__500",
          "font__atma__regular",
          "font__tektur__regular",
          "font__gayathri__regular",
          "font__zalando-sans-expanded__regular",
          "font__moderustic__regular",
          "Exo2[wght].ttf",
          "font__amita__regular",
          "font__bai-jamjuree__500",
          "font__kodchasan__regular",
          "font__sawarabi-gothic__regular",
          "font__kumbh-sans__regular"
        ],
        "fontName": "Montserrat-Regular.ttf",
        "fontSize": 29,
        "height": 24,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "Bikes",
        "width": 45,
        "x": 819,
        "y": 16
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#000000",
        "fontAlternatives": [
          "font__montserrat__regular",
          "font__beiruti__regular",
          "ZCOOLKuaiLe-Regular.ttf",
          "font__koho__500",
          "font__kodchasan__500",
          "font__oregano__regular",
          "font__pontano-sans__regular",
          "font__handlee__regular",
          "font__marhey__regular",
          "font__tomorrow__regular",
          "font__kodchasan__600",
          "font__nobile__regular",
          "font__sofadi-one__regular",
          "font__gayathri__700",
          "font__montserrat-alternates__500",
          "font__atma__regular",
          "font__tektur__regular",
          "font__gayathri__regular",
          "font__zalando-sans-expanded__regular",
          "font__moderustic__regular",
          "Exo2[wght].ttf",
          "font__amita__regular",
          "font__bai-jamjuree__500",
          "font__kodchasan__regular",
          "font__sawarabi-gothic__regular",
          "font__kumbh-sans__regular"
        ],
        "fontName": "Montserrat-Regular.ttf",
        "fontSize": 29,
        "height": 24,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "Accessories",
        "width": 116,
        "x": 896,
        "y": 16
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#000000",
        "fontAlternatives": [
          "font__montserrat__regular",
          "font__beiruti__regular",
          "ZCOOLKuaiLe-Regular.ttf",
          "font__koho__500",
          "font__kodchasan__500",
          "font__oregano__regular",
          "font__pontano-sans__regular",
          "font__handlee__regular",
          "font__marhey__regular",
          "font__tomorrow__regular",
          "font__kodchasan__600",
          "font__nobile__regular",
          "font__sofadi-one__regular",
          "font__gayathri__700",
          "font__montserrat-alternates__500",
          "font__atma__regular",
          "font__tektur__regular",
          "font__gayathri__regular",
          "font__zalando-sans-expanded__regular",
          "font__moderustic__regular",
          "Exo2[wght].ttf",
          "font__amita__regular",
          "font__bai-jamjuree__500",
          "font__kodchasan__regular",
          "font__sawarabi-gothic__regular",
          "font__kumbh-sans__regular"
        ],
        "fontName": "Montserrat-Regular.ttf",
        "fontSize": 29,
        "height": 27,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "Support",
        "width": 70,
        "x": 1046,
        "y": 13
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#FFFFFF",
        "fontAlternatives": [
          "font__montserrat__regular",
          "font__beiruti__regular",
          "ZCOOLKuaiLe-Regular.ttf",
          "font__koho__500",
          "font__kodchasan__500",
          "font__oregano__regular",
          "font__pontano-sans__regular",
          "font__handlee__regular",
          "font__marhey__regular",
          "font__tomorrow__regular",
          "font__kodchasan__600",
          "font__nobile__regular",
          "font__sofadi-one__regular",
          "font__gayathri__700",
          "font__montserrat-alternates__500",
          "font__atma__regular",
          "font__tektur__regular",
          "font__gayathri__regular",
          "font__zalando-sans-expanded__regular",
          "font__moderustic__regular",
          "Exo2[wght].ttf",
          "font__amita__regular",
          "font__bai-jamjuree__500",
          "font__kodchasan__regular",
          "font__sawarabi-gothic__regular",
          "font__kumbh-sans__regular"
        ],
        "fontName": "Montserrat-Regular.ttf",
        "fontSize": 20,
        "formatting": [
          "bold"
        ],
        "height": 19,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "Shop V-9",
        "width": 105,
        "x": 1174,
        "y": 18
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#FCFCFC",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__almarai__700",
          "font__special-gothic-expanded-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__livvic__700",
          "font__ramabhadra__regular",
          "font__cossette-texte__700",
          "font__cal-sans__regular",
          "font__zilla-slab__700",
          "font__archivo__regular",
          "font__livvic__600",
          "font__be-vietnam-pro__600",
          "font__lato__900",
          "font__gothic-a1__800",
          "font__gothic-a1__900",
          "font__biryani__700",
          "font__acme__regular",
          "font__chivo__regular",
          "font__wix-madefor-text__700",
          "font__stalinist-one__regular",
          "font__wix-madefor-text__800",
          "font__gothic-a1__700",
          "font__biryani__800",
          "font__zain__700",
          "font__wix-madefor-text__600"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 64,
        "formatting": [
          "bold"
        ],
        "height": 141,
        "lineHeight": 1.1,
        "role": "heading",
        "text": "Ride Farther.\nCharge Less.",
        "width": 433,
        "x": 56,
        "y": 246
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#FFFFFF",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__be-vietnam-pro__600",
          "font__livvic__600",
          "font__gothic-a1__700",
          "font__ramabhadra__regular",
          "font__almarai__700",
          "font__wix-madefor-text__600",
          "font__wix-madefor-text__700",
          "font__gothic-a1__800",
          "font__archivo__regular",
          "font__zain__700",
          "font__radio-canada-big__regular",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__chivo__regular",
          "font__krona-one__regular",
          "font__be-vietnam-pro__700",
          "font__ibm-plex-sans-jp__600",
          "font__livvic__700",
          "font__special-gothic-expanded-one__regular",
          "font__be-vietnam-pro__500",
          "font__lato__700",
          "font__cossette-texte__700",
          "font__ibm-plex-sans-jp__500",
          "font__lato__900",
          "font__biryani__700"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 20,
        "height": 23,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Up to 90 miles of smart pedal assist.",
        "width": 366,
        "x": 56,
        "y": 432
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#000000",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__be-vietnam-pro__600",
          "font__livvic__600",
          "font__gothic-a1__700",
          "font__ramabhadra__regular",
          "font__almarai__700",
          "font__wix-madefor-text__600",
          "font__wix-madefor-text__700",
          "font__gothic-a1__800",
          "font__archivo__regular",
          "font__zain__700",
          "font__radio-canada-big__regular",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__chivo__regular",
          "font__krona-one__regular",
          "font__be-vietnam-pro__700",
          "font__ibm-plex-sans-jp__600",
          "font__livvic__700",
          "font__special-gothic-expanded-one__regular",
          "font__be-vietnam-pro__500",
          "font__lato__700",
          "font__cossette-texte__700",
          "font__ibm-plex-sans-jp__500",
          "font__lato__900",
          "font__biryani__700"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 18,
        "formatting": [
          "bold"
        ],
        "height": 22,
        "lineHeight": 1.2,
        "role": "body",
        "text": "Shop the V-9",
        "width": 125,
        "x": 107,
        "y": 537
      }
    ]
  }
}

text-layer-extraction

Arctic Negative Restoration Exhibit$0.09~36s
Arctic Negative Restoration Exhibit

A finished museum conservation print comparing a damaged sepia negative with its repaired, colorized portrait. The design contains the distinct text blocks “ARCTIC SIGNAL,” “MARGARET LIN,” “WEATHER RADIO OPERATOR · RESOLUTE BAY, 1949,” “RESTORED FROM A WATER-DAMAGED 4 × 5 NEGATIVE,” and “POLAR COMMUNICATIONS ARCHIVE · CONSERVATION SERIES 07” in slab-serif, geometric sans-serif, and monospaced styles.

Try in Playground
import { createClient } from '@runware/sdk'

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

const [result] = await client.run({
  model: 'ideogram:layerize-text@0',
  positivePrompt: 'A finished museum conservation print comparing a damaged sepia negative with its repaired, colorized portrait. The design contains the distinct text blocks “ARCTIC SIGNAL,” “MARGARET LIN,” “WEATHER RADIO OPERATOR · RESOLUTE BAY, 1949,” “RESTORED FROM A WATER-DAMAGED 4 × 5 NEGATIVE,” and “POLAR COMMUNICATIONS ARCHIVE · CONSERVATION SERIES 07” in slab-serif, geometric sans-serif, and monospaced styles.',
  inputs: {
    image: 'https://assets.runware.ai/assets/inputs/a9683eac-c3f4-4015-8daf-b1a45bdea4b6.jpg'
  }
})
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": "ideogram:layerize-text@0",
            "positivePrompt": "A finished museum conservation print comparing a damaged sepia negative with its repaired, colorized portrait. The design contains the distinct text blocks “ARCTIC SIGNAL,” “MARGARET LIN,” “WEATHER RADIO OPERATOR · RESOLUTE BAY, 1949,” “RESTORED FROM A WATER-DAMAGED 4 × 5 NEGATIVE,” and “POLAR COMMUNICATIONS ARCHIVE · CONSERVATION SERIES 07” in slab-serif, geometric sans-serif, and monospaced styles.",
            "inputs": {
                "image": "https://assets.runware.ai/assets/inputs/a9683eac-c3f4-4015-8daf-b1a45bdea4b6.jpg"
            }
        })


asyncio.run(main())
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "imageInference",
      "taskUUID": "b61e6b2b-931a-4398-991d-7497f72b5b90",
      "model": "ideogram:layerize-text@0",
      "positivePrompt": "A finished museum conservation print comparing a damaged sepia negative with its repaired, colorized portrait. The design contains the distinct text blocks “ARCTIC SIGNAL,” “MARGARET LIN,” “WEATHER RADIO OPERATOR · RESOLUTE BAY, 1949,” “RESTORED FROM A WATER-DAMAGED 4 × 5 NEGATIVE,” and “POLAR COMMUNICATIONS ARCHIVE · CONSERVATION SERIES 07” in slab-serif, geometric sans-serif, and monospaced styles.",
      "inputs": {
        "image": "https://assets.runware.ai/assets/inputs/a9683eac-c3f4-4015-8daf-b1a45bdea4b6.jpg"
      }
    }
  ]'
runware run ideogram:layerize-text@0 \
  positivePrompt="A finished museum conservation print comparing a damaged sepia negative with its repaired, colorized portrait. The design contains the distinct text blocks “ARCTIC SIGNAL,” “MARGARET LIN,” “WEATHER RADIO OPERATOR · RESOLUTE BAY, 1949,” “RESTORED FROM A WATER-DAMAGED 4 × 5 NEGATIVE,” and “POLAR COMMUNICATIONS ARCHIVE · CONSERVATION SERIES 07” in slab-serif, geometric sans-serif, and monospaced styles." \
  inputs.image=https://assets.runware.ai/assets/inputs/a9683eac-c3f4-4015-8daf-b1a45bdea4b6.jpg
{
  "taskType": "imageInference",
  "taskUUID": "b61e6b2b-931a-4398-991d-7497f72b5b90",
  "model": "ideogram:layerize-text@0",
  "positivePrompt": "A finished museum conservation print comparing a damaged sepia negative with its repaired, colorized portrait. The design contains the distinct text blocks “ARCTIC SIGNAL,” “MARGARET LIN,” “WEATHER RADIO OPERATOR · RESOLUTE BAY, 1949,” “RESTORED FROM A WATER-DAMAGED 4 × 5 NEGATIVE,” and “POLAR COMMUNICATIONS ARCHIVE · CONSERVATION SERIES 07” in slab-serif, geometric sans-serif, and monospaced styles.",
  "inputs": {
    "image": "https://assets.runware.ai/assets/inputs/a9683eac-c3f4-4015-8daf-b1a45bdea4b6.jpg"
  }
}
Response
{
  "taskType": "imageInference",
  "taskUUID": "b61e6b2b-931a-4398-991d-7497f72b5b90",
  "imageUUID": "43481692-a053-4c35-8422-14f61cd59b47",
  "imageURL": "https://im.runware.ai/image/os/a05d22/ws/3/ii/43481692-a053-4c35-8422-14f61cd59b47.jpg",
  "seed": 675224866,
  "cost": 0.09,
  "outputs": {
    "textBlocks": [
      {
        "alignment": "left",
        "angle": 0,
        "color": "#252520",
        "fontAlternatives": [
          "font__montserrat__700",
          "font__special-gothic-expanded-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__mochiy-pop-one__regular",
          "font__almarai__700",
          "font__be-vietnam-pro__600",
          "font__livvic__600",
          "font__wix-madefor-text__700",
          "font__unbounded__regular",
          "font__archivo__regular",
          "font__livvic__700",
          "font__be-vietnam-pro__700",
          "font__gothic-a1__700",
          "font__ramabhadra__regular",
          "font__wix-madefor-text__600",
          "font__gothic-a1__800",
          "font__radio-canada-big__regular",
          "font__cossette-texte__700",
          "font__gothic-a1__900",
          "font__wix-madefor-text__800",
          "font__cherry-cream-soda__regular",
          "font__cal-sans__regular",
          "font__zain__700",
          "font__almarai__800",
          "font__be-vietnam-pro__800",
          "font__be-vietnam-pro__500"
        ],
        "fontName": "Montserrat-Bold.ttf",
        "fontSize": 104,
        "height": 101,
        "lineHeight": 1.2,
        "role": "heading",
        "text": "ARCTIC SIGNAL",
        "width": 840,
        "x": 81,
        "y": 40
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#202020",
        "fontAlternatives": [
          "font__montserrat__600",
          "font__cherry-cream-soda__regular",
          "font__spline-sans__regular",
          "font__unbounded__regular",
          "font__reem-kufi__regular",
          "font__reem-kufi-fun__regular",
          "font__reem-kufi-ink__regular",
          "font__gayathri__700",
          "font__corben__regular",
          "font__shippori-antique__regular",
          "font__sora__regular",
          "font__zalando-sans-expanded__regular",
          "font__livvic__500",
          "font__almarai__regular",
          "font__shippori-antique-b1__regular",
          "font__radio-canada-big__regular",
          "font__noto-sans-indic-siyaq-numbers__regular",
          "font__alexandria__regular",
          "font__plus-jakarta-sans__regular",
          "font__moderustic__regular",
          "font__pontano-sans__regular",
          "font__wix-madefor-text__500",
          "font__wix-madefor-text__600",
          "font__cabin__regular",
          "font__red-rose__regular",
          "font__merriweather-sans__regular"
        ],
        "fontName": "Montserrat-SemiBold.ttf",
        "fontSize": 43,
        "height": 36,
        "lineHeight": 1.2,
        "role": "subheading",
        "text": "MARGARET LIN",
        "width": 343,
        "x": 81,
        "y": 153
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#0C0C0C",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__unbounded__regular",
          "font__almarai__700",
          "font__radio-canada-big__regular",
          "font__be-vietnam-pro__600",
          "font__cherry-cream-soda__regular",
          "font__wix-madefor-text__600",
          "font__special-gothic-expanded-one__regular",
          "font__ramabhadra__regular",
          "font__livvic__600",
          "font__wix-madefor-text__700",
          "font__archivo__regular",
          "font__mochiy-pop-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__spline-sans__regular",
          "font__gothic-a1__700",
          "font__be-vietnam-pro__500",
          "font__gothic-a1__800",
          "font__be-vietnam-pro__700",
          "font__livvic__700",
          "font__alexandria__regular",
          "font__cossette-texte__700",
          "font__cal-sans__regular",
          "font__lato__700",
          "font__shippori-antique__regular",
          "font__zain__700"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 26,
        "formatting": [
          "bold"
        ],
        "height": 25,
        "lineHeight": 1.2,
        "role": "body",
        "text": "WEATHER RADIO OPERATOR • RESOLUTE BAY, 1949",
        "width": 701,
        "x": 81,
        "y": 196
      },
      {
        "alignment": "left",
        "angle": 0,
        "color": "#110C07",
        "fontAlternatives": [
          "font__roboto-mono__regular",
          "font__fustat__regular",
          "font__instrument-sans__regular",
          "font__questrial__regular",
          "font__inter-tight__regular",
          "font__red-hat-display__regular",
          "font__wix-madefor-text__regular",
          "font__wix-madefor-display__regular",
          "font__zalando-sans-expanded__regular",
          "font__wix-madefor-text__regular",
          "font__plus-jakarta-sans__regular",
          "font__stack-sans-headline__regular",
          "font__moderustic__regular",
          "font__livvic__regular",
          "font__syne__regular",
          "font__sora__regular",
          "font__kumbh-sans__regular",
          "font__funnel-display__regular",
          "TikTokSans[opsz,slnt,wdth,wght].ttf",
          "font__shippori-antique-b1__regular",
          "font__rethink-sans__regular",
          "font__special-gothic__regular",
          "font__shippori-antique__regular",
          "font__manjari__regular",
          "font__almarai__regular",
          "font__pontano-sans__regular"
        ],
        "fontName": "RobotoMono-Regular.ttf",
        "fontSize": 20,
        "height": 19,
        "lineHeight": 1.2,
        "role": "caption",
        "text": "RESTORED FROM A WATER-DAMAGED 4 X 5 NEGATIVE",
        "width": 559,
        "x": 81,
        "y": 245
      },
      {
        "alignment": "center",
        "angle": 0,
        "color": "#070707",
        "fontAlternatives": [
          "font__montserrat__500",
          "font__unbounded__regular",
          "font__almarai__700",
          "font__radio-canada-big__regular",
          "font__be-vietnam-pro__600",
          "font__cherry-cream-soda__regular",
          "font__wix-madefor-text__600",
          "font__special-gothic-expanded-one__regular",
          "font__ramabhadra__regular",
          "font__livvic__600",
          "font__wix-madefor-text__700",
          "font__archivo__regular",
          "font__mochiy-pop-one__regular",
          "font__mochiy-pop-p-one__regular",
          "font__spline-sans__regular",
          "font__gothic-a1__700",
          "font__be-vietnam-pro__500",
          "font__gothic-a1__800",
          "font__be-vietnam-pro__700",
          "font__livvic__700",
          "font__alexandria__regular",
          "font__cossette-texte__700",
          "font__cal-sans__regular",
          "font__lato__700",
          "font__shippori-antique__regular",
          "font__zain__700"
        ],
        "fontName": "Montserrat-Medium.ttf",
        "fontSize": 25,
        "formatting": [
          "bold"
        ],
        "height": 23,
        "lineHeight": 1.2,
        "role": "body",
        "text": "POLAR COMMUNICATIONS ARCHIVE • CONSERVATION SERIES 07",
        "width": 865,
        "x": 81,
        "y": 960
      }
    ]
  }
}