Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch
Tools reference

Image

Generate, transform, edit, mask, composite and describe images from an AI assistant with the Nodaro image tools, their parameters, defaults and credits.

The image tools let an assistant create and change images in Nodaro: generate from a prompt, transform or edit an existing image, cut a mask, composite several images or layers, and describe what an image shows. Each tool starts a job and returns its id, and the result is saved to your library. Every image tool needs the workflows:execute permission.

ToolWhat it doesCredits
generate_imageText to image, with references and optional inpaintingThe model's price
modify_imageEdits, restyles and transforms an existing imageThe model's price
image_to_imagePrompt-guided image to image, with masks and several referencesThe model's price
edit_imageUpscale, background removal and targeted editsThe operation's price
generate_maskA black and white mask of what you describe50
image_collage2 to 30 images in one large image20 at 2K, 40 at 4K
image_overlayLogos, text, QR codes and shapes placed on an image, without AI10, plus 2 per extra size
suggest_overlay_placementWhere a logo or text should sit on an imageOne image description
image_to_textA description or answer about an image3 with the default model
save_image_defaultsYour default image model and settingsFree

generate_image

Creates an image from a text prompt with one of Nodaro's image models. It is the tool behind requests such as "make an image of…", and it works like the Generate Image node.

Permission: workflows:execute. Credits: the price of the model at the chosen resolution or quality.

ParameterTypeNotes
promptstringThe description of the image, up to 4,000 characters. Required unless a preset supplies it.
modelstringThe model id. Default nano-banana-2. An unknown id falls back to the default. See list_models.
aspect_ratiostringFor example 16:9, 9:16, 1:1, 4:3, 3:4 or 21:9. Default 16:9. Forms such as 16x9 are accepted, and a ratio the model does not support falls back to one it does.
resolutionstring1K, 2K or 4K, on models that support it. The nearest supported value is used.
qualitystringmedium or high, on models that have a quality setting.
negative_promptstringWhat to avoid, up to 2,000 characters.
reference_image_urlsarrayUp to 14 reference images, as URLs or Nodaro ids, to keep a person, character, product or style. The reply confirms how many were attached.
presetIdstringA preset from list_node_presets. Fields you pass override it.
structuredobjectStructured details added to the prompt: person (age, gender, expression, eyes, hair, profession), styling (aesthetic, color look, lighting, mood), setting (atmosphere, backdrop, era), camera (format, framing, motion), lens (aperture, focal length) and mood.
described_referencesarrayUp to 10 { name, description } entries for a subject you can name but have no picture of. Each becomes a line of the prompt, so the name in your prompt reaches the model as a described subject.
connected_references, reference_orderarrayAdvanced. Labeled, ordered references in the editor's own format, up to 14.
base_image_url, mask_urlstringInpainting: the image to edit and a mask, where white is changed and black is kept. The masked area is generated again and placed back over the image.
strengthnumberFor inpainting, from 0 (subtle) to 1 (full repaint), on models that support it.
guidance_scalenumberFrom 0 to 20, on models that support it.

Returns: a job id. In clients with MCP Apps, the card shows the image when it is ready.

modify_image

Edits, restyles or transforms an existing image with a prompt: change a color, swap a background, apply a style, extend or repaint part of the frame. It works like the Modify Image node.

Permission: workflows:execute. Credits: the price of the model.

ParameterTypeNotes
promptstringRequired. The change you want, up to 8,000 characters.
image_url or image_asset_idstringRequired, one of the two. A public https URL, or the id of a Nodaro job whose result is an image.
modelstringDefault nano-banana-2. Use nano-banana-pro to keep a face or a character the same across several edits and for text in the image, and gpt-image-2-i2i for edits with a lot of text. An unknown id falls back to the default.
aspect_ratiostringThe output shape. An unsupported value falls back.
resolutionstringThe nearest supported value is used.
qualitystringmedium, high or basic, on models that have it.
negative_promptstringWhat to avoid, up to 2,000 characters.
structuredobjectThe same structured details as generate_image.

Returns: a job id.

image_to_image

Transforms an image with a prompt, with options for masks and for composing several references in one image.

Permission: workflows:execute. Credits: the price of the model.

ParameterTypeNotes
promptstringRequired. The transformation, up to 2,000 characters.
image_url or image_asset_idstringThe source image.
modelstringDefault nano-banana. Others include nano-banana-2, flux-kontext for photorealistic edits, gpt-image-i2i for creative repaints, flux-i2i and ideogram-remix. An unknown id falls back to nano-banana.
reference_image_urlsarrayUp to 13 extra reference images, as URLs or Nodaro ids, for models that take several references.
mask_urlstringAn inpainting mask: white is changed, black is kept.
strengthnumberFrom 0 (subtle) to 1 (full repaint).
aspect_ratiostringThe output shape.
resolutionstring1K, 2K or 4K.
qualitystringmedium, high or basic.
seedintegerA fixed seed, on models that support it.
negative_promptstringWhat to avoid, up to 5,000 characters.

Returns: a job id.

edit_image

Upscales an image, removes its background, or applies a targeted edit. Choose the operation with model.

Permission: workflows:execute. Credits: the price of the operation, in the table below.

modelOperationNeeds
recraft-upscale (default)A sharp upscaleThe image
topaz-image-upscaleUpscale by 1, 2 or 4 timesThe image, and upscale_factor
recraft-remove-bgRemoves the background and returns a PNG with transparencyThe image
nano-banana-editA prompt edit, inside a mask or outside the frameThe image, prompt, and an optional mask_url
grok-upscaleA creative upscale of an earlier Grok generationkie_task_id
grok-2-segmentA free map of named regions of an earlier Grok Imagine 2 imagekie_task_id
grok-2-editA prompt edit of an earlier Grok Imagine 2 image, optionally only in some regionskie_task_id, prompt, and optional mask_indexes
ModelMakerModesCreditsDetails
Recraft Crisp UpscaleRecraftImage upscaling2Light-weight image upscale (Recraft Crisp).
Topaz Image UpscaleTopazImage upscalingfrom 25High-quality image upscale at 1x (enhance only), 2x or 4x. Best for production-ready output.
Recraft Remove BGRecraftBackground removal3Remove image background. Cheap utility.
Nano Banana EditGoogleImage editing10Image-to-image edits via Google's Nano Banana family. Good general-purpose editor.
Grok UpscalexAIImage upscaling25Upscale a previously-generated Grok image. Requires the prior task id.
Grok Imagine 2 Segment MapxAIImage editing0FREE semantic segment map of a prior grok-2 generation — named region masks whose indexes feed grok-2-edit's region targeting.
Grok Imagine 2 EditxAIImage editing10Prompt-edit a prior grok-2 generation by task id. Optional mask indexes (from grok-2-segment) restrict the edit to named regions.
ParameterTypeNotes
modelstringThe operation, from the table above. Default recraft-upscale.
image_url or image_asset_idstringThe source image, for every operation except the three Grok ones.
promptstringRequired for nano-banana-edit and grok-2-edit. Up to 2,000 characters.
mask_urlstringFor nano-banana-edit: white is changed.
upscale_factorstringFor topaz-image-upscale: 1, 2 or 4. Default 2.
kie_task_idstringFor the Grok operations: the task id of the earlier Grok generation. get_job returns it as kieTaskId in the generation's output.
mask_indexesarrayFor grok-2-edit: the index values of the regions to change, from a grok-2-segment run.
negative_prompt, seed, styleOptional, on the operations that use them.

To edit only some regions of a Grok Imagine 2 image, work in two steps. First run grok-2-segment with the image's kie_task_id, and read the named regions from the job's segments. Then run grok-2-edit with the same kie_task_id, a prompt, and the mask_indexes of the regions to change. The region map is free.

Returns: a job id.

generate_mask

Makes a black and white mask of what you describe, for example "the person" or "sky and clouds". White is the selected area. Use the mask with image_to_image, edit_image or the inpainting fields of generate_image. It works like the Generate Mask node.

Permission: workflows:execute. Credits: 50.

ParameterTypeNotes
promptstringRequired. What to select, up to 500 characters.
image_url or image_asset_idstringThe source image.
thresholdnumberThe detection confidence, from 0 to 1. Default 0.3.

Returns: a job id. The result is a PNG mask.

image_collage

Puts 2 to 30 images into one large image. No image is ever cropped: the smart layout arranges them in rows at their own shapes, and the grid layout uses equal cells with the empty space filled by the background color. It works like the Image Collage node, and suits storyboards and contact sheets.

Permission: workflows:execute. Credits: 20 at 2K, 40 at 4K.

ParameterTypeNotes
imagesarrayRequired. 2 to 30 items, each { url } or { asset_id }. An item can add size, a relative size for the smart layout (0 auto, 1 big, 2 medium, 3 small), and label, a caption of up to 80 characters.
layoutstringsmart (default) or grid.
resolutionstringThe long edge: 2K, or 4K (default, 3,840 pixels).
aspect_ratiostringAny W:H, such as 16:9 or 9:16. Default 4:3. Exact in grid; a target in smart, where the height follows the rows.
gapintegerThe space between images and around them, from 0 to 200 pixels. Default 24.
background_colorstringA #RRGGBB color. Default #ffffff.
numberedbooleanStamps 1, 2, 3 and so on in the corner of each image, in the order of images.
badge_positionstringThe corner of the numbers and labels: top-left (default) or top-right.

Returns: a job id.

image_overlay

Places 1 to 12 layers on a base image, pixel-exactly: logos, cut-outs, text, QR codes and shapes. No AI model runs, so the result is the same every time. It works like the Image Overlay node, which documents every option.

Permission: workflows:execute. Credits: 10, plus 2 for each extra platform size in variants.

ParameterTypeNotes
image_url or image_asset_idstringThe base image.
layersarrayRequired. 1 to 12 layers. See the layer fields below. The array order is the stacking order unless a layer sets z_index.
canvasobjectAn output size, width and height from 16 to 8,192 pixels, with a background_color. The base is placed into it with base_fit, contain or cover. Leave it out to keep the base image's size.
variantsarrayExtra platform sizes to render at once: youtube-thumbnail, youtube-banner, linkedin-company, linkedin-personal, x-header, facebook-cover, instagram-post, instagram-portrait, instagram-story, open-graph, presentation, a4-print.
qr_textstringFills every QR layer whose qr.fromInput is true.
mask_modestringThe mask the job also returns as maskUrl, where white may change: around (default, a ring around the layers for an AI finish), layers, outside or none.
mask_spreadintegerThe width of the around ring, from 1 to 400 pixels. Default 48.
output_formatstringpng (default, keeps transparency), jpg or webp.

The main layer fields:

Layer fieldNotes
kindimage (default, needs url or asset_id), text, qr or shape.
anchorOne of 9 positions, from top-left to bottom-right. Default center.
x, yThe offset from the anchor, in percent of the base width and height. A negative value on a right or bottom anchor moves the layer inward.
width, heightIn percent of the base width and height. Default width 25%. The height follows the layer's shape unless you set it.
opacity, rotation, blendOpacity from 0 to 1, rotation in degrees, and blend over, multiply or screen.
fit, shadow, rounded_corners, z_indexHow the layer fills its box (contain, cover or stretch), a drop shadow, rounded corners and the stacking order.
effectsImage layers only: a circle mask, a feather, a stroke or a glow.
textFor a text layer: the text, a fontId (inter, montserrat, space-grotesk, playfair-display, oswald, bebas-neue, anton, pacifico, rubik or heebo; rubik and heebo set Hebrew), a fontSize in percent of the base height, fontWeight, color, align, uppercase, an outline and a background box.
qrFor a QR layer: the text to encode, or fromInput: true, plus colors and margin.
shapeFor a shape layer: rect, rounded, pill, circle, ribbon, triangle, diamond, hexagon, star, burst or arrow, with a color and an outline.

A watermark in the bottom right corner is anchor: "bottom-right", x: -4, y: -6, width: 12. SVG logos are rendered sharp at the target size.

Returns: a job id. The result carries the image, maskUrl, its width and height, and variants, a list of { id, label, width, height, url }.

suggest_overlay_placement

Asks a vision model where one layer should sit on a base image. The model looks at the picture and keeps the layer off faces, the subject and busy texture. Nothing is composited: pass the answer to image_overlay.

Permission: workflows:execute. Credits: one image description, the price of image_to_text.

ParameterTypeNotes
image_url or image_asset_idstringThe base image.
intentstringWhat the layer is, such as a logo, a headline, a price badge or a QR code. Up to 300 characters. Default: a logo.
layer_aspectnumberThe layer's width divided by its height, from 0.05 to 20. Default 1, a square.
safe_areaobjectThe area that is always visible, as fractions of the canvas: x, y, w, h. The layer stays inside it.

Returns: anchor, x, y and width in the same percent units as image_overlay, and a one-sentence reason.

image_to_text

Describes an image, or answers a question about it, with a vision model. Use it for captions, alt text, scene analysis or a specific question, such as "list all the text in the image". It works like the Describe Image node.

Permission: workflows:execute. Credits: 3 with the default model; the price follows the model's tier.

ParameterTypeNotes
image_url or image_asset_idstringThe image to describe.
detail_levelstringbrief, detailed (default) or comprehensive.
custom_promptstringA specific question instead of a general description, up to 2,000 characters.
llmModelstringThe vision model, one of the LLM ids the tool lists.
reasoning_effortstringnone to max. xhigh and max bill one tier higher.
advanced_mode, temperature, max_tokensGemini models only, as on the prompt tools. Bills one tier higher.

Returns: a job id. The text is in the job's output, and the card shows it with a Copy button.

save_image_defaults

Saves your preferred image settings, so later generate_image calls use them when you do not say otherwise. Only the fields you pass change. In clients with MCP Apps, the Save as default chip on an image card calls this tool.

Permission: workflows:execute. Credits: free.

ParameterTypeNotes
modelstring or nullYour default model. null clears it and goes back to the catalog default.
aspect_ratiostring or nullYour default aspect ratio.
resolutionstring or nullYour default resolution.
qualitystring or nullYour default quality.

Returns: a confirmation.

Frequently asked questions

Last updated on

On this page