Ideogram Layerize Text
Pull text out of an image like it's a layer
- image
- advancedFeatures.watermark.image
- image
Every designer has had the moment: you've got a raster image with text baked in and you wish it were a layer so you could just move it. Ideogram Layerize Text is the hosted endpoint that does the next-best thing - it takes an image and separates the text out of it, returning the result through Runware's cloud. No local model, no GPU, no fuss.
Ideogram is the lab that built its reputation on text-in-image, so it's the natural vendor for the inverse problem: instead of rendering text into an image, pull it out into something you can work with. Where the Edit and Remix siblings rewrite pixels, this one's about structure.
How it works
The node is a thin wrapper over the Runware API: your image tensor goes up, the processed result comes back as a native IMAGE. The required input is just image - that's it.
positivePrompt- optional, and the tooltip spells out the useful bit: if you leave it blank, a description is auto-generated from the image. Give it one when the image is ambiguous and you want to steer the separation.seed- available here (unlike some of the other Ideogram nodes), so you can lock down a deterministic result.numberResults- up to 20 variations, each on its own seed.
One practical note: the default outputFormat is JPG, but if you're going to composite this result back into something, switch it to PNG so you're not stacking compression artifacts on top of the layer work. outputQuality (20–99, default 95) is the other knob in that family.
Installing it
Standard Runware pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart ComfyUI and set your API key under ComfyUI Settings → Runware API key (or RUNWARE_API_KEY). Only dependencies are runware-sdk, pillow, and soundfile - no model downloads, because the model isn't yours; you're renting it.
Where people get burned
Honestly, the main surprise with this one is how sparse it is - people expect a mask output or a text layer file, and they get a single IMAGE. That's the API's contract: one processed image back. If you need the separated text as an actual layer for design software, run the output through a vectorizer or a background-removal pass downstream. And the usual pack gotchas apply: no API key, instant error; paid top-up account, so keep an eye on numberResults.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| positivePromptopt | STRING | An optional text description of the image. If not provided, a description will be auto-generated from the image. | |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |