NodaroAccount
Nodaro Docs
DocumentationNode ReferenceModelsTemplatesAI Agents (MCP)DevelopersSelf-hostingResearchCompare
CLI

Asset commands

Create, search and train characters, locations and objects from the Nodaro CLI, approve their main pictures, and add variants and motion clips to each asset.

The asset commands of the Nodaro CLI manage characters, locations and objects: the reusable identities that keep a person, a place or a prop the same in every generation. Each asset has a main picture that you generate and approve, and variants and motion clips that you add later. The same assets appear in the editor's Character Asset, Location Asset and Object/Props Asset nodes.

How an asset is built

Create the record

create saves the asset's name, description and style.

Generate candidates

generate makes 1, 2 or 4 candidate main pictures. Add --watch to wait for them.

Approve one

approve-portrait (characters) or approve-main-image (locations and objects) sets the main picture from a completed candidate job. Nodaro then writes the asset's description from the picture.

Add variants and motion

generate-asset adds a variant, such as an expression or a season. generate-motion animates the main picture into a short clip.

Every generation costs credits, like the matching node in the editor. See Consistent characters for how assets keep identities stable.

Characters

nodaro characters list [--project <id>] [--archived] [--search <words> | --q <words>] [--limit <n>] [--json]
nodaro characters get <id>
nodaro characters create --name <name> [--description "..."] [--gender <gender>] [--style realistic|anime|3d-pixar|illustration] [--base-outfit "..."] [--seed-prompt "..."] [--node-id <id>] [--project <id>]
nodaro characters update <id> [--name <name>] [--description "..."] [--gender <gender>] [--style realistic|anime|3d-pixar|illustration] [--base-outfit "..."] [--seed-prompt "..."]
nodaro characters delete <id>
nodaro characters restore <id>
nodaro characters duplicate <id> [--node-id <id>] [--project <id>]
nodaro characters usage <id>
nodaro characters generate <id> [--seed-prompt "..."] [--description "..."] [--name <name>] [--count 1|2|4] [--provider <p>] [--watch]
nodaro characters generate-asset <id> --asset-type expressions|poses|lighting|angles|headAngles|bodyAngles|custom --variant <name> [--user-prompt "..."] [--description "..."] [--column <col>] [--attach-name <name>] [--provider <p>] [--watch]
nodaro characters generate-motion <id> --motion-prompt "..." [--attach-name <name>] [--description "..."] [--motion-description "..."] [--provider <p>] [--watch]
nodaro characters approve-portrait <id> --job <jobId>
nodaro characters recaption <id>
nodaro characters train <id> [--image <url> ...] [--watch] [--poll-interval <ms>] [--json]
nodaro characters training <id> [--watch] [--poll-interval <ms>] [--json]
nodaro characters delete-lora <id> [--json]
CommandWhat it does
listLists your characters, or the archived ones with --archived. --project limits the list to one project. --search or --q keeps the characters whose name or description contains every word, up to 5 words, in any case. Each word matches as written, without wildcards.
deleteArchives the character. restore brings it back.
duplicateCopies the character to a new record.
usageLists the workflows that use the character.
generateMakes 1, 2 or 4 portrait candidates.
approve-portraitSets the portrait from a completed candidate job, then writes the character's description from it.
generate-assetMakes one variant: an expression, a pose, a lighting, an angle, a head angle, a body angle or a custom variant.
generate-motionAnimates the portrait into a motion clip.
recaptionWrites the description again from the current portrait.
trainStarts a high-fidelity training of the character, on Nodaro Cloud. Repeat --image to train on those images only, at least 4. --watch follows the training's job.
trainingShows the training's status: untrained, queued, training, succeeded, failed or cancelled. With --watch, it exits with 0 on success, 2 when the training failed or could not start, and 130 when it was cancelled or removed.
delete-loraRemoves the trained model. It cancels a training that is running, with a refund. It cannot be undone.

A training costs 1,650 credits, takes about 15 minutes, and is refunded if it fails. Training again costs the full price again. See Character training.

Locations

nodaro locations list [--archived] [--search <words> | --q <words>] [--json]
nodaro locations get <id> [--json]
nodaro locations create <name> --node-id <id> [--description "..."] [--category indoor|outdoor|urban|nature|fantasy|sci-fi|historical|futuristic|other] [--style realistic|anime|3d-pixar|illustration] [--project <id>] [--json]
nodaro locations update <id> [--name <name>] [--description "..."] [--category <category>] [--style <style>] [--style-lock true|false] [--canonical-description "..."] [--expected-updated-at <iso>] [--json]
nodaro locations delete <id> [--json]
nodaro locations restore <id> [--json]
nodaro locations generate --name <name> [--description "..."] [--user-prompt "..."] [--category <category>] [--style <style>] [--provider <p>] [--count 1|2|4] [--attach-to-location-id <id>] [--watch] [--json]
nodaro locations generate-asset <id> --asset-type timeOfDay|weather|seasons|angles|lighting|custom --variant <name> [--user-prompt "..."] [--description "..."] [--column <col>] [--attach-name <name>] [--provider <p>] [--watch] [--json]
nodaro locations generate-motion --name <name> --motion-prompt "..." --source-image-url <url> [--provider kling|kling-turbo|kling-3.0|wan-i2v|wan-2.7-i2v|seedance-2] [--style realistic|anime|3d-pixar|illustration] [--canonical-description "..."] [--attach-to-location-id <id>] [--attach-name <name>] [--aspect-ratio 1:1|3:4|16:9|9:16] [--watch] [--json]
nodaro locations approve-main-image <id> --candidate-job-id <jobId> [--json]
nodaro locations recaption <id> [--json]
  • list --search or --q keeps the locations whose name or description contains every word, as on characters.
  • generate makes candidate establishing shots. With --attach-to-location-id and a count of 1, the result becomes the location's main image when the job completes. With more candidates, choose one with approve-main-image.
  • generate-asset makes one variant: a time of day, a weather, a season, an angle, a lighting or a custom variant.
  • generate-motion animates a source image into a clip, with one of the listed video models.
  • --style-lock sets whether variant generations stay anchored to the location's canonical style.
  • --expected-updated-at protects an update from overwriting a newer change. If the record changed since that time, the update is refused with concurrent_modification; read it again and retry.

Objects

nodaro objects list [--project <id>] [--archived] [--search <words> | --q <words>] [--json]
nodaro objects get <id> [--json]
nodaro objects create <name> --node-id <id> [--description "..."] [--category furniture|vehicle|weapon|food|clothing|electronics|nature|tool|animal|other] [--style realistic|anime|3d-pixar|illustration] [--project <id>] [--json]
nodaro objects update <id> [--name <name>] [--description "..."] [--category <category>] [--style <style>] [--style-lock true|false] [--canonical-description "..."] [--expected-updated-at <iso>] [--json]
nodaro objects delete <id> [--permanent] [--json]
nodaro objects restore <id> [--json]
nodaro objects generate --name <name> [--description "..."] [--user-prompt "..."] [--category <category>] [--style <style>] [--provider <p>] [--count 1|2|4] [--attach-to-object-id <id>] [--seed-prompt-hint "..."] [--watch] [--json]
nodaro objects generate-asset --asset-type angles|materials|variations|motion|custom --variant <name> --attach-to-object-id <id> [--attach-to-column <col>] [--name <name>] [--description "..."] [--seed-prompt-hint "..."] [--watch] [--json]
nodaro objects generate-motion --name <name> --motion-prompt "..." --source-image-url <url> [--provider kling-turbo|kling|kling-3.0|minimax|hailuo-2.3|wan-i2v|seedance|bytedance-lite] [--style realistic|anime|3d-pixar|illustration] [--canonical-description "..."] [--attach-to-object-id <id>] [--attach-name <name>] [--aspect-ratio 1:1|3:4|16:9|9:16|4:3] [--seed-prompt-hint "..."] [--watch] [--json]
nodaro objects approve-main-image <id> --candidate-job-id <jobId> [--expected-updated-at <iso>] [--json]
nodaro objects recaption <id> [--json]
  • list --search or --q keeps the objects whose name or description contains every word, as on characters.
  • delete archives the object. delete --permanent erases an object that is already archived. restore brings back an archived object.
  • generate makes 1, 2 or 4 candidate main images. With --attach-to-object-id and a count of 1, the result becomes the object's main image when the job completes.
  • generate-asset makes one variant: an angle, a material, a variation, a motion or a custom variant, attached to the object you name.
  • generate-motion animates the object's main image into a clip. The default model is kling-turbo and the default aspect ratio is 1:1.

Example: a character from start to finish

# 1. Create the character
nodaro characters create --name Kira --description "young protagonist with auburn hair" \
  --style realistic --seed-prompt "kira portrait, warm natural lighting"

# 2. Generate four portrait candidates and wait for them
nodaro characters generate <characterId> --count 4 --watch

# 3. Approve the candidate you like
nodaro characters approve-portrait <characterId> --job <candidateJobId>

# 4. Add a smiling expression
nodaro characters generate-asset <characterId> --asset-type expressions --variant smile --watch

Frequently asked questions

How do I create a character with a portrait from the CLI?

Create the record with nodaro characters create, generate portrait candidates with nodaro characters generate and --count 4, then approve the one you like with nodaro characters approve-portrait and the candidate's job id.

Is a deleted character gone for good?

No. Delete archives a character, a location or an object, and the restore command brings it back. Only objects can be erased for good, with delete --permanent on an object that is already archived.

What is a variant of an asset?

A variant is an extra picture of the same asset, such as an expression or a pose of a character, a time of day or a season of a location, or a material of an object. Generate one with the generate-asset command.

How do I train a character from the CLI?

Run nodaro characters train with the character id and --watch, on Nodaro Cloud. A training costs 1,650 credits, takes about 15 minutes, and is refunded if it fails.

What does recaption do?

It writes the asset's description again from its current main picture. Approving a portrait or a main image already does this, so run recaption only when that caption failed or the picture changed.

Last updated on

On this page