When to use
Only handles text-to-speech. Input: verbatim-confirmed read-aloud text; select --voice-name via voice list; do not pass --model or --count.
Operation contract
| Item | Standard |
|---|---|
| Input and prerequisites | User-confirmed prompt, current model spec, projectId, and mode-required references |
| Side effects | Nodes written without --run save drafts; paid execution goes through public execution operations |
| Output handoff | Returned nodeId and projectId; after generation, attach submitId and validated assets |
| Recovery rules | Recovery uses the original submitId; only explicit absent + resubmittable resumes submission under the original identity |
Workflow
Step 1: Reuse dreamina-canvas-cli public call contract and confirmed projectId; if installation or login is missing, hand off by name to the setup/auth skill.
Step 2: Validate mode parameters from current model/voice query results, read parameter spec. Do not apply the old CLI's model_version, resolution_type, or poll.
Step 3: Save the draft and record the returned nodeId; when modifying an existing node, first read the current state and fully replace generation parameters and references; only metadata is sparsely updated.
dreamina-canvas --format json node create audio --project-id <projectId> \
--prompt "<narration>" --mode tts --voice-name <voice-name>
Step 4: When generation is needed, hand off to dreamina-canvas-cli execution operations: node quote → node confirm → node run. Record a stable submitId before submission; the task skill does not approve budgets on its own.
Step 5: Hand off to the same public skill for query recovery and download validation, and verify the actual artifacts of this mode. On timeout, do not resubmit with a different submitId.
Rules
- Placeholder parameters must be replaced with values returned by the current CLI or confirmed by the user; draft commands do not add --run.
- Do not mix required fields from other modes; get batch limits from model capability queries.
- Never persist tokens, cookies or signed URLs; recovery retains only non-sensitive identity.
- If a companion skill is missing, install it:
npx skills add full-aigc-skills/dreamina-skills --skill <skill-name>。
Progressive disclosure (read as needed)
- When per-flag required/value/conflict rules are needed, read parameter spec。
- When selecting a model, ratio, resolution, or duration from current discovery results, read model or voice selection。
- For staged workflows such as batch, async, multi-project, and iteration, read common scenario combinations。
- For timeout, partial success, or recovery scenarios, read exception handling。
- For pre-delivery self-check, read acceptance checklist。
- For first run, see success scenario; for batch/async/multi-project/privilege-escalation-rejection/failure-recovery examples, see the
examples/directory.
Validation checklist
- Input matches tts mode, and parameters come from real-time discovery.
- The returned projectId, nodeId, and submitId are handed off correctly; acceptance must not be treated as completion.
- Output reaches a successful terminal state; after download, validate media type, byte count, and SHA-256.
Gotchas
- Node generation editing is a full replace and must not lose existing references.
- Login status, billing permissions, and successful generation are distinct checks.
- Generate only the quantity requested by the user; do not automatically add extra attempts.
Not Applicable and Boundaries
Not applicable to music generation or speech-to-text. Music uses text2audio; do not rewrite narration when the input text has not been confirmed, and do not select or promise a particular voice based on impressions.
Read only the account and asset information necessary for the current operation; do not store, log, or output access tokens, cookies, or temporary signed links.