generate

Platformneta/generate
Use it in Cohub

Paste this into your agent's chat — it fetches the skill and follows it.

Use the skill: generate. Run `npx -y @neta-art/neta-search-cli@latest skills use neta/generate --via site` and follow what it prints. Read its complete output, redirecting it to a temporary file first if necessary, and resolve relative paths from the skill directory it prints.
Use in Neta Studio Open it in Neta Studio and see what people made with it.
Install from a terminal
npx -y @neta-art/neta-search-cli@latest skills use neta/generate
Summary

Turn your characters and ideas into new images, videos and 3D models, right on your canvas.

  • Make a new picture, rework one you already have, or restyle it into a different art look.
  • Animate a scene into a video, or redo a video that came out wrong.
  • Turn a character or object into a 3D model, then add textures, a skeleton for posing, or movement.
  • Your characters keep their look: it finds their existing pictures and uses them as the guide for new poses, outfits and scenes.
  • Browse a large library of art styles, from vintage anime and comics to watercolor, pixel art and woodblock prints.
SKILL.md
# Generate

Most generation tasks (image, video, audio, 3D) are covered here.

## Core loop

1. **Inspect** the selected model's declaration with `params` — legal `--param` keys, input limits, reference support.
2. **Find existing character references.** Before generating an existing character in a new pose, scene, outfit, or action, run `node /mods/neta/neta find images "<character name>"`. Prefer a matching character reference or three-view image; if none exists, fall back to the character atom cover.
3. **Construct** the generate command from the declaration only; pass declared `--param key=value` keys, omit the rest for their defaults. Include the selected character image as an actual reference input; mentioning it only in prose is insufficient.
4. **Submit.** Sync returns the media url in the result JSON. `--async` returns a `taskRunId`; check it once with `generate status` rather than waiting in-turn — except a video, whose cut `references/video/production.md` waits for in this turn.
5. **Look** at every image a sync call returns: open its `mediaPath` with your read tool and hold it against the ask — the right characters, any asked-for text spelled as given, whole hands and faces. Done when you can say what is in the picture because you saw it.

## Quickstart

`<kind>` is `image`, `video`, `audio`, or `3d`. A `3d` generate call also takes `--param operation=<op>`; `generate 3d params` lists the operations and `generate 3d params --param operation=<op>` shows one — see [`playbooks/3d.md`](playbooks/3d.md).

```bash
# inspect the model contract before building anything — declared params, input limits, reference support
node /mods/neta/neta generate <kind> params

# generate synchronously — result JSON carries the media url and mediaPath; use for images the creator is waiting on, or when this turn needs the url
node /mods/neta/neta generate <kind> --prompt "..." --work-title "Short Title" --param key=value

# generate asynchronously — returns a taskRunId; the card converges on its own
node /mods/neta/neta generate <kind> --async --prompt "..." --work-title "Short Title"

# check an async task once, non-blocking (do NOT run `generate reconcile`, it blocks)
node /mods/neta/neta generate status <taskRunId>

# re-render into an existing card instead of creating a new one — keep the same id across retries
node /mods/neta/neta generate <kind> --target-work <workId> --prompt "..."
```

## Rules

- The model comes from `NETA_DEFAULT_<KIND>_MODEL` (Studio injects it; 3D uses `meshy` unless it is set). Override for one call by prefixing the command; never pass `--model`.
- For character continuity, skipping image search is an error when matching image artifacts exist. Do not rely on `@CharacterName` alone when a reusable image is available.
- An `--async` image or 3D submit ends this turn's delivery — no wait-on-agent, no refresh. A video is the exception: `references/video/production.md` polls for the cut in this turn so it can be checked, placed and handed over. Never present a generating card as finished.
- **Before resubmitting**, read what the last call left. `ok:false` with no `taskRunId` never started: fix the cause and send it again. A `taskRunId` means the task exists and may be charged: `generate status <taskRunId>` tells running, done, or `GENERATION_FAILED`, and only `GENERATION_FAILED` is resubmitted. A call that printed no result has usually already written its Work — look in `neta work list`; its `taskRunId` is the key in `.neta/media-tasks.json` whose `target` is that Work's path.
- **Board.** A deliverable the user asked for goes on the Board per the **board-ops** skill — and so does each reviewed step of a multi-step production. A video's reference images, pitch board and final cut are steps of one flow, not hidden ingredients: place each as it is made, so the user can point at a reference or the pitch board while confirming. Only machinery the user never sees stays off — an asset composed inside a web page, a mask, a temporary file, a reference passed silently into a generation. A new version is a new work, placed to the right of the original; `--target-work` re-renders the same card, so the board is untouched. For `--async`, place it only once a later turn finds the task done — never resubmit to get a card.
- Embed only a CLI-returned mediaUrl — `![title](url)` for images, `<video>` for video. A local path or placeholder is a broken link; after a rerun, confirm the link points at the new version. A 3D model is never embedded: its Work card shows it.

## Playbook


 | Branch | Playbook |
 | --- | --- |
 | image — generate, rework, or restyle a still | [`playbooks/image.md`](playbooks/image.md) |
 | video — make, animate, or fix a video | [`playbooks/video.md`](playbooks/video.md) |
 | 3d — make, texture, rig, or animate a 3D model | [`playbooks/3d.md`](playbooks/3d.md) |