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]| Command | What it does |
|---|---|
list | Lists 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. |
delete | Archives the character. restore brings it back. |
duplicate | Copies the character to a new record. |
usage | Lists the workflows that use the character. |
generate | Makes 1, 2 or 4 portrait candidates. |
approve-portrait | Sets the portrait from a completed candidate job, then writes the character's description from it. |
generate-asset | Makes one variant: an expression, a pose, a lighting, an angle, a head angle, a body angle or a custom variant. |
generate-motion | Animates the portrait into a motion clip. |
recaption | Writes the description again from the current portrait. |
train | Starts 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. |
training | Shows 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-lora | Removes 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 --searchor--qkeeps the locations whose name or description contains every word, as on characters.generatemakes candidate establishing shots. With--attach-to-location-idand a count of 1, the result becomes the location's main image when the job completes. With more candidates, choose one withapprove-main-image.generate-assetmakes one variant: a time of day, a weather, a season, an angle, a lighting or a custom variant.generate-motionanimates a source image into a clip, with one of the listed video models.--style-locksets whether variant generations stay anchored to the location's canonical style.--expected-updated-atprotects an update from overwriting a newer change. If the record changed since that time, the update is refused withconcurrent_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 --searchor--qkeeps the objects whose name or description contains every word, as on characters.deletearchives the object.delete --permanenterases an object that is already archived.restorebrings back an archived object.generatemakes 1, 2 or 4 candidate main images. With--attach-to-object-idand a count of 1, the result becomes the object's main image when the job completes.generate-assetmakes one variant: an angle, a material, a variation, a motion or a custom variant, attached to the object you name.generate-motionanimates the object's main image into a clip. The default model iskling-turboand the default aspect ratio is1: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 --watchFrequently 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.
Related
Commands
Consistent characters
Character Asset
Characters
Output and exit codes
Last updated on
Output and exit codes
Read Nodaro CLI output as tables or JSON, follow runs to the end with --watch, and branch on the exit codes for failed, cancelled and held runs in scripts.
Media and voice commands
Revoice tracks, caption videos, process audio, plan edits, and tighten, chapter and clip podcast episodes with the voice, media, audio and edit CLI commands.