NodaroAccount
Nodaro Docs
DocumentationNode ReferenceModelsTemplatesAI Agents (MCP)DevelopersSelf-hostingResearchCompare
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 except suggest_overlay_placement, save_image_defaults and the palette and moodboard tools starts a job and returns its id, and the result is saved to your library. Every image tool except the palette and moodboard tools 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
split_into_layersOne image split into a base picture and transparent layersPer image returned
generate_maskA black and white mask of what you describe55
image_collage2 to 30 images in one large image22 at 2K, 44 at 4K
image_overlayLogos, text, QR codes and shapes placed on an image, without AI11, more with extra sizes
suggest_overlay_placementWhere a logo or text should sit on an imageOne image description
image_to_textA description or answer about an imageCharged for the tokens used, at the model's rate
save_image_defaultsYour default image model and settingsFree
list_palettes, save_paletteYour own color palettes, to steer generate_imageFree
list_moodboards, save_moodboardYour own moodboards, to steer generate_imageFree

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 gpt-image-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. auto keeps the shape of your photo on every model: base_image_url when set, else the first reference image. A model whose own auto setting keeps the shape receives it. Any other model uses its supported ratio closest to that photo, and so does GPT Image 2.6, whose own auto renders a portrait square. With no photo, auto gives the model's own auto where it has one, else 16:9 where the model lists it, else its first listed ratio.
resolutionstring1K, 2K or 4K, on models that support it. The nearest supported value is used.
qualitystringThe quality levels the model lists in list_models, on models that have a quality setting. With auto, the run is charged for the image it actually made, and never more than the price of max.
backgroundstringauto, opaque or transparent, on models that list it. On GPT Image, a transparent background renders at 1K.
output_formatstringThe file format: png (default), jpeg, webp, gif or svg, on GPT Image 2.6 Flare and Sunburst. See Output format.
gif_frames, gif_frame_duration_ms, svg_levelThe GIF and SVG settings of output_format.
negative_promptstringWhat to avoid, up to 2,000 characters.
reference_image_urlsarrayUp to 14 reference images, or 16 on GPT Image 2.6 or MiniMax H3 Image, as URLs or Nodaro ids, to keep a person, character, product or style. The reply confirms how many were attached.
countintegerFrom 1 to 4 images per model. Each image is its own job.
modelsarrayFrom 2 to 4 image model ids, instead of model. The same request runs on each model.
presetIdstringA preset from list_node_presets, applied as the editor applies it. Fields you pass override it. See Apply a preset.
variablesobjectValues for a preset's placeholders that have no default, for example { "BRAND": "Acme" }.
palette_idstringA palette from list_palettes. Its colors are named in the prompt.
moodboard_idstringA moodboard from list_moodboards. Its description joins the prompt, and its images go to the model as style references.
subjectobjectWho is in the shot, as catalog ids: { field: id } or { field: [ids] }. The fields are the person and styling fields, heldProp, material and animal, from get_picker_catalog.
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.
user_requeststringThe user's latest message to the assistant, word for word, up to 4,000 characters. It is kept on the node in the conversation's workflow and never changes what is generated. See MCP conversations become workflows.
flow_idstring"new" starts a new workflow for this step. A workflow id from an earlier result adds the step to that workflow. Up to 36 characters. See MCP conversations.

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

Several images in one call

  • count makes up to 4 images of the same request. Each image is its own job.
  • models runs the same request on 2 to 4 models. With both, count is per model, so one call makes at most 8 images.
  • The answer lists every job id, grouped by model, with the batch id. The card and jobId follow the first job.
  • Each model gets its own settings. Levers such as aspect ratio and resolution are fitted to each model, as on a single call.
  • The batch is charged as a whole. Nodaro checks your balance for the whole batch and creates all of its jobs, or none. An error answer means nothing was charged.
  • Refusals. A count outside 1 to 4, more than 4 models, model and models together, or a list that names a model that is not an image model is refused. The error names the problem. Model ids in models match without regard to capital letters.

Apply a preset

presetId applies a built-in or saved preset exactly as the editor applies it:

  • The preset's prompt and its text before and after the prompt are used. Your own prompt is wrapped in that text.
  • Placeholders written as {name || default} are filled with their defaults.
  • The preset's style and negative prompt are passed the way the model takes them.
  • Any setting the preset leaves unset gets the editor's default. Your saved image defaults do not apply to a preset call.

A placeholder with no default, such as {BRAND}, needs a value in variables. Without one, the tool names the missing value. With count, the tool makes that many images of the preset's request. With models, it applies the preset once for each model. You cannot combine presetId with palette_id or moodboard_id yet: the call is refused.

Palettes and moodboards

palette_id names every color of a palette in the prompt, by an everyday name and its hex code. moodboard_id adds the moodboard's description to the prompt and sends its images as style references, after your own references, up to the model's limit. The answer says when some images did not fit. Create and find palettes and moodboards with the tools below.

Output format

generate_image, modify_image and image_to_image take output_format on GPT Image 2.6 Flare and Sunburst. list_models lists the formats of each model as outputFormats.

  • Formats. png (default), jpeg, webp, gif or svg. jpg is read as jpeg.
  • GIF. An animated square GIF of 512 × 512 pixels, with 2 to 16 frames. gif_frames sets the number of frames, default 9. gif_frame_duration_ms sets how long each frame shows, from 20 to 2,000 ms, default 200. A GIF ignores the aspect ratio and the resolution.
  • SVG. svg_level sets the detail: standard, detailed or max.
  • Price. PNG, JPEG and WebP cost the same. A GIF is priced by its quality and its number of frames. An SVG costs the PNG price plus a part for its level. See Formats on the Generate Image page.
  • Limits. A transparent background is kept only in PNG and WebP. A mask with a GIF or an SVG is refused.

What the server changed is listed in the answer's adjustments.

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 gpt-image-2-6-flare-i2i. 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. auto keeps the shape of the photo on every model. A model whose own auto setting keeps the shape receives it. Any other model uses its supported ratio closest to the source image, and so does GPT Image 2.6, whose own auto renders a portrait square. Another unsupported value falls back. Without it, your saved aspect ratio is used. With neither, the GPT Image 2, 2.5 and 2.6 edit models, the default included, and Seedream 5.5 run at auto. Other models run at 16:9 where they list it, else at their first listed ratio.
resolutionstringThe nearest supported value is used. GPT Image 2.5 renders the ratios 27:16, 16:27, 9:8 and 8:9 at 1K only: a 2K or 4K request at those ratios runs, and is charged, at 1K.
qualitystringThe quality levels the model lists in list_models, on models that have it. With auto, the run is charged for the image it actually made, and never more than the price of max.
backgroundstringauto, opaque or transparent, on models that list it. On GPT Image, a transparent background renders at 1K.
output_format, gif_frames, gif_frame_duration_ms, svg_levelThe file format, as on generate_image. See Output format.
negative_promptstringWhat to avoid, up to 2,000 characters.
mask_urlstringAn inpainting mask: white is changed, black is kept. Used by gpt-image-2-6-flare-i2i, gpt-image-2-6-sunburst-i2i, ideogram-edit and flux-fill, the models whose list_models sheet lists the mask feature. Other models ignore it. A mask cannot be used with a GIF or an SVG output. See Masks.
structuredobjectThe same structured details as generate_image.
user_requeststringThe user's latest message to the assistant, word for word, up to 4,000 characters. It is kept on the node in the conversation's workflow and never changes what is generated. See MCP conversations become workflows.
flow_idstring"new" starts a new workflow for this step. A workflow id from an earlier result adds the step to that workflow. Up to 36 characters. See MCP conversations.

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 gpt-image-2-6-flare-i2i, or the edit model that draws the aspect_ratio you asked for. Others include nano-banana, nano-banana-2, flux-kontext for photorealistic edits, gpt-image-i2i for creative repaints, flux-i2i and ideogram-remix. An unknown id is refused. The answer's model names the model that the job runs.
reference_image_urlsarrayExtra reference images beside the source image, as URLs or Nodaro ids, for models that take several references. Up to 13, or 15 on GPT Image 2.6 or MiniMax H3 Image, and 9 on Seedream 5.5.
mask_urlstringAn inpainting mask: white is changed, black is kept. Used by gpt-image-2-6-flare-i2i, gpt-image-2-6-sunburst-i2i, ideogram-edit and flux-fill, the models whose list_models sheet lists the mask feature. Other models ignore it. A mask cannot be used with a GIF or an SVG output. See Masks.
strengthnumberFrom 0 (subtle) to 1 (full repaint).
aspect_ratiostringThe output shape.
resolutionstring1K, 1.5K, 2K or 4K, depending on the model.
qualitystringauto, low, medium, high, xhigh, max or basic, depending on the model.
output_format, gif_frames, gif_frame_duration_ms, svg_levelThe file format, as on generate_image. See Output format.
seedintegerA fixed seed, on models that support it.
negative_promptstringWhat to avoid, up to 5,000 characters.
user_requeststringThe user's latest message to the assistant, word for word, up to 4,000 characters. It is kept on the node in the conversation's workflow and never changes what is generated. See MCP conversations become workflows.
flow_idstring"new" starts a new workflow for this step. A workflow id from an earlier result adds the step to that workflow. Up to 36 characters. See MCP conversations.

Your saved image defaults fill in what the call leaves out. A value the call names always wins.

  • Aspect ratio, resolution and quality. Each saved value is fitted to the model. A saved aspect_ratio: "auto" works like a named ratio. A saved resolution or quality that the model does not take is left out.
  • Model. The saved model is used only when an edit can run it: an edit model, or a model that generates and edits under one id, such as nano-banana-pro. A text-to-image model such as gpt-image-2 is not used for an edit.
  • With neither. The GPT Image 2, 2.5 and 2.6 edit models and Seedream 5.5 run at auto and keep the photo's shape. GPT Image 2, GPT Image 2.5 and Seedream 5.5 receive their own auto, and GPT Image 2.6 the supported ratio closest to the photo. Any other model runs at its own default ratio.

Returns: a job id.

Masks

mask_url is a black and white image: white is the area to change, and black is kept. image_to_image and modify_image take it the same way. On GPT Image 2.6, the rest of the picture is kept exactly as it was: the source is pasted back everywhere outside the mask, and the result has the source's size. The run keeps the photo's shape and renders at the size (1K, 2K or 4K) nearest the photo, and is priced at that size. The answer's adjustments list each change. A mask costs nothing extra and does not count as an input image. Make a mask with generate_mask.

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
nodaro-image-upscaleNodaro Image Upscale: 1 (enhance only), 2, 4 or 8 times. It restores detail and keeps lettering exactly as written. Priced by the output's sizeThe 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-2-segmentA free map of named regions of an earlier Grok Imagine 2 imagetask_id
grok-2-editA prompt edit of an earlier Grok Imagine 2 image, optionally only in some regionstask_id, prompt, and optional mask_indexes
ModelMakerModesCreditsDetails
Recraft Crisp UpscaleRecraftImage upscaling3Light-weight image upscale (Recraft Crisp).
Topaz Image UpscaleTopazImage upscalingfrom 28High-quality image upscale at 1x (enhance only), 2x or 4x. Best for production-ready output.
Recraft Remove BGRecraftBackground removal4Remove image background. Cheap utility.
Nano Banana EditGoogleImage editing11Image-to-image edits via Google's Nano Banana family. Good general-purpose editor.
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 editing11Prompt-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 two 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. For nodaro-image-upscale: 1, 2, 4 or 8. Default 2.
target_resolutionstringAn older way to set the upscale factor for topaz-image-upscale: 2K is 2, and 4K and 8K are both 4. Use upscale_factor instead.
task_idstringFor the Grok operations: the task id of the earlier Grok Imagine 2 generation. get_job returns it as providerTaskId 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 task_id, and read the named regions from the job's segments. Then run grok-2-edit with the same task_id, a prompt, and the mask_indexes of the regions to change. The region map is free.

grok-upscale is no longer offered: it never upscaled an image. A call that still names it is refused with a message that names the replacement, recraft-upscale or topaz-image-upscale.

Returns: a job id.

split_into_layers

Splits one image into a base picture and separate layers, each element on its own transparent PNG. Each layer comes with its name, description, position and stacking order. It works like the Split into Layers node, and is not listed where that node is not offered.

Permission: workflows:execute. Credits: charged per image returned, the base included. A run holds the price of max_layers + 1 images at its size, and is charged only for the images it returns. 1K and 1.5K are priced alike, and so are 2K and auto.

ParameterTypeNotes
image_url or image_asset_idstringThe image to split: a URL, a Nodaro image job id or an uploaded image's id.
max_layersintegerThe most layers to make, from 1 to 99. Default 9. More elements than that are merged into fewer layers, and none is dropped.
sizestringEach image's pixel budget: 1K (default, about one megapixel), 1.5K, 2K or auto, which keeps the picture's own size between 1K and 2K.
promptstringWhat to separate, up to 2,000 characters. It may mark areas as <bbox>x1 y1 x2 y2</bbox>, on a 0 to 1000 scale. Leave it empty, and the main elements are found automatically.

Returns: a job id. The job's output holds:

  • imageUrl: the base picture, an opaque PNG.
  • layers: each layer's file, from bottom to top, and layerCount.
  • layersNotSaved: the layers that could not be saved. They are not charged.
  • layerData: one entry per layer, in the same order, with name, description, zIndex, width, height, box, boxNormalized, url and baseUrl.

zIndex is the stacking order: 1 sits on the base, and higher is drawn above. box is where the layer sits on the base, in the base's pixels, and boxNormalized is the same box on a 0 to 1000 scale. A layer file is cropped to its element, so scale it to its box to put it back in place. A run that finds no element returns the base only, at the price of one image.

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: 55.

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: 22 at 2K, 44 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: 11, and a little more for each extra platform size in variants, as on the Image Overlay node.

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, letterSpacing, lineHeight, 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, charged like 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: one LLM call, charged for the tokens it actually used at the rate of the model that ran it. A hold is reserved before the call, and a balance below the hold is refused with 402. A longer description costs more. The editor's Run button shows ≈N, an estimate of a typical call. See How LLM calls are charged.

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. Default: Claude Sonnet 5.5.
reasoning_effortstringnone to max. A higher effort usually spends more output tokens, so the call costs more. On a Claude model, any effort runs on the model maker's own service and is charged at that service's rate.
advanced_mode, temperature, max_tokensGemini and Claude models, as on the prompt tools. The call is charged per token at the model maker's own rate.

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 on your account, as the defaults of later generate_image, modify_image and image_to_image calls. Only the fields you pass change. In clients with MCP Apps, the Save as default chip on an image card calls this tool.

  • A value the call names wins. A saved value fills in what the call leaves out. With neither, the tool's own default applies. A saved aspect_ratio: "auto" works like a named ratio.
  • One saved model for all three tools. The star on an image card saves the model that made the picture. An edit (modify_image, image_to_image) uses the saved model only when an edit can run it. generate_image uses it only when the model generates images. So after a star on an edit's result, generate_image runs its own default.
  • Presets. A call with presetId does not read your saved defaults.

Permission: workflows:execute. Credits: free.

ParameterTypeNotes
modelstring or nullYour default model. null clears it, and the tool's own default applies again.
aspect_ratiostring or nullYour default aspect ratio.
resolutionstring or nullYour default resolution.
qualitystring or nullYour default quality.

Pass null for a field to clear it.

Returns: a confirmation.

list_palettes

Lists your color palettes, newest first: the name, each color by its everyday name and hex code, the note and the id. Pass an id to generate_image as palette_id.

Permission: assets:read. Credits: free.

ParameterTypeNotes
cursorstringThe cursor of the previous page.

Returns: a page of palettes, the same list as GET /v1/palettes.

save_palette

Creates a palette, or changes one. To create, pass name and colors. To change a palette, pass its id and only the fields that change.

Permission: assets:write. Credits: free.

ParameterTypeNotes
idstringThe palette to change. Leave it out to create a palette.
namestringFrom 1 to 80 characters. Required to create.
colorsarrayFrom 2 to 12 colors written as #RRGGBB. Required to create. Colors are stored in capital letters.
descriptionstringA note, up to 500 characters.

Returns: the palette with its id. The tool cannot delete a palette. Delete one in the app, with the CLI or through the API.

list_moodboards

Lists your moodboards, newest first: the name, the number of images, the description and the id. With id, it returns one moodboard with each image's link and caption. Pass an id to generate_image as moodboard_id.

Permission: assets:read. Credits: free.

ParameterTypeNotes
idstringRead this moodboard in full.
cursorstringThe cursor of the previous page.

Returns: a page of moodboards, or one moodboard, as GET /v1/moodboards and GET /v1/moodboards/:id return them.

save_moodboard

Creates a moodboard, or changes one. To create, pass name and images. To change a moodboard, pass its id and only the fields that change.

Permission: assets:write. Credits: free.

ParameterTypeNotes
idstringThe moodboard to change. Leave it out to create a moodboard.
namestringFrom 1 to 80 characters. Required to create.
descriptionstringUp to 1,000 characters. A run puts these words into the prompt.
imagesarrayFrom 1 to 12 { url, caption } entries. Each url is an image link or the id of one of your Nodaro images. A caption is optional, up to 200 characters. Required to create. On a change, images replaces every image.

Returns: the moodboard with its id. Images are kept as links, never copied. The tool cannot delete a moodboard.

Frequently asked questions

Which model does generate_image use by default?

GPT Image 2. Pass model with another id from list_models to change it, for example nano-banana-pro for readable text or gpt-image-2-5-flare for fast iterations. An unknown id falls back to the default without an error.

How do I keep the same person in several images?

Pass the person's pictures in reference_image_urls, up to 14 URLs or Nodaro ids (16 on GPT Image 2.6 or MiniMax H3 Image), and the reply confirms how many were attached. For a saved character, pass the approved portrait that get_character returns.

How do I remove a background or upscale an image through MCP?

Use edit_image. Set model to recraft-remove-bg for a transparent PNG, or to recraft-upscale or topaz-image-upscale to upscale. None of them needs a prompt.

Can an assistant put a logo or text on an image without AI?

Yes. image_overlay places images, text, QR codes and shapes on a base image, pixel-exactly and without a model, for 11 credits. suggest_overlay_placement can first propose where a logo should go.

How much does an image generation cost through MCP?

The same as in the editor. The price depends on the model and its resolution or quality; list_models and each model page list the exact credits.

Last updated on

On this page