Ideogram Layerize Text

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.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
text-layer-extraction
Barn Owl Release Event Poster$0.09~26s
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.”
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
}
]
}
}text-layer-extraction
Arctic Negative Restoration Exhibit$0.09~36s
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.
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
}
]
}
}text-layer-extraction
Roller Derby Archive Photo Restoration$0.09~43s
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.
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
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.
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
}
]
}
}