Asset commands
Create characters, locations and objects from the Nodaro CLI, generate and 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, Location and Object 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] [--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>| Command | What it does |
|---|---|
list | Lists your characters, or the archived ones with --archived. --project limits the list to one project. |
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. |
Locations
nodaro locations list [--archived] [--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]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] [--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]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
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, burn in captions, build slideshows and overlays, process audio and plan edits with the voice, media, audio and edit commands of the Nodaro CLI.