Basic Cohub abilities. Most agents already have these mounted; listed here for reference.
Platform Published by the Neta team.
Official Made by the Neta team.
Verified Reviewed by the Neta team.
Community Shared by a Cohub user. Not reviewed — read SKILL.md before you use it.
moss-region-prompt
Community@kingdomrushdev/moss-region-prompt
Community skill — not reviewed. It was shared by 火木由子 and has not been checked by Neta. Read SKILL.md below before letting an agent use it.
Use it in Cohub
Paste this into your agent's chat — it fetches the skill and follows it.
Use the skill: moss-region-prompt. Run `npx -y @neta-art/neta-search-cli@latest skills use @kingdomrushdev/moss-region-prompt --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.
Install from a terminal
npx -y @neta-art/neta-search-cli@latest skills use @kingdomrushdev/moss-region-prompt
Summary
Turn an image idea into a precise, region-by-region prompt, with a layout diagram showing where everything should land.
Works for posters, comic pages, app screens, infographics, product shots, photos, character sheets, game key art, book covers and maps.
You get a ready-to-paste prompt that places every part of the picture, from background to text, and keeps one consistent style.
A preview diagram shows the planned boxes, numbered, so you can check the layout before making any image.
If you generate a test image, the boxes are drawn over it so you can see what landed where.
Works best when you supply the exact words to appear on the image; a short, clear text block per area keeps letters clean.
SKILL.md
# MOSS Region Prompt
Produce a MOSS-Image `scene_graph` JSON prompt that assigns every visible region, locks one style, and ships with an expected-bbox diagram and an optional overlay.
Read this file fully before writing the prompt or any file. Resolve relative paths from this skill's directory.
## Language
Reply in the user's language, whatever language this file is in. This holds for every message of the run, above all the final handover; translate what the scripts print, don't paste it. Text the user sees in the deliverable — Work title, page title, buttons, labels, captions — follows the user's language; text the user typed stays as they wrote it.
## When to use / when not
Use when the user wants a MOSS-Image prompt with deliberate layout: a poster, comic page, manga panel, UI screen, infographic, product still life, photo, character sheet, game character splash/key art, environment, book cover, map, diagram, logo, document, or game screenshot. Also use when the user asks for region boxes, bbox diagrams, full coverage, or exact on-image text.
Do not use for a one-line prompt with no layout or text requirement — write a normal prompt instead and say this skill is for region-controlled JSON. Do not use for video, 3D, audio, or a model other than MOSS-Image.
## Inputs
| Item | Required | Counts as given when |
|---|---|---|
| Image request | yes | The user describes the subject and the intended image |
| Format | yes | The user names or clearly implies poster / comic / UI / photo / product / infographic / etc.; if two formats fit, ask once |
| Visible text | yes for text-bearing formats; no for photo/product unless signage | The user supplies the exact strings, or says no text. Do not invent wording |
| Canvas | no — default `1456×2176` | The user gives W×H; both must be multiples of 16 |
| Style | no — infer from the request | The user names a style or reference; otherwise choose one, state it in one line, and continue |
| Output language | no — user's language | |
If a required item is missing, ask for it once, in one message, before writing files — then stop. If every required item is given, do not ask and do not wait for a go-ahead: build through to the package.
## Steps
1. **Pick the format profile.** Read `references/formats.md` and choose one profile id from `templates/profiles.json`. The profile supplies the required roles and text policy; it is not a style choice.
2. **Plan coverage.** For each frame, assign a backdrop, midground, subject, foreground, effects, and text. Write the role list and pixel boxes to `$RUN/plan.json`. If a role has no content, remove it rather than leaving an empty description.
3. **Write the prompt.** Use `templates/scene_graph.template.json` as the skeleton. Write `$RUN/prompt.json` with:
- `scene_type`, `gen_brief`, `aspect_ratio`, `layout`, `elements`, `anchors`, `must_not`, `palette`;
- `bbox_coord_space: "abs_centralized"` and `bbox_format: "yxyx"` unless the runtime needs normalized coordinates;
- exact text in every `text` element, newlines as `\n`;
- style lock in six places: `scene_type`, the first sentence of `gen_brief`, `palette`, `must_not`, every element's medium phrase, and the negative prompt used later.
Read `references/json-schema.md` before writing the JSON.
4. **Validate.** Run:
```bash
python3 scripts/validate_prompt.py "$RUN/prompt.json" --profile <id> --width <W> --height <H> --out "$RUN/qa.json"
```
It writes `qa.json` and exits non-zero on errors. Fix every error, rerun; do not deliver with errors. Read `references/qa.md` for what each check means.
5. **Render the expected bbox diagram.** Run:
```bash
python3 scripts/bbox_render.py "$RUN/prompt.json" --width <W> --height <H> --outdir "$RUN" --prefix expected
```
This writes `expected-bbox.png` (and `.svg`). It is the layout you expect, before generation.
6. **Optional: generate and overlay.** If the user asks for a test image, or supplies a generated image, run the same command with the image path:
```bash
python3 scripts/bbox_render.py "$RUN/prompt.json" "$RUN/output.png" --outdir "$RUN" --prefix expected
```
This adds `expected-overlay.png`. Generating an image costs credits: ask once before calling a model, and never generate without that yes. If the runtime exposes `cohub generate`, the default MOSS command is:
```bash
cohub generate "$(cat "$RUN/prompt.json")" -m moss_image --param steps=8 --param cfg=1 \
--param negative_prompt="<the style lock's negative prompt>" -o "$RUN/output.png"
```
If it exposes a different model runner, use that runner with the same JSON; do not invent flags.
7. **Deliver the package.** Keep the files together: `prompt.json`, `expected-bbox.png`, optional `expected-overlay.png`, `qa.json`, and `notes.md`.
`$RUN` = the user's requested folder, otherwise `_runs/moss-region-prompt/<timestamp>/` under the workspace root. Never move or rename the run folder after delivery.
## Deliver
A text/material package, not a generated image unless the user explicitly asked for one.
- `prompt.json` — the ready-to-paste MOSS-Image `scene_graph` JSON.
- `expected-bbox.png` — the expected layout: frames, element boxes, numbers, role table.
- `expected-overlay.png` — only when an image was generated or supplied: the same boxes over the actual image.
- `qa.json` — validator result.
- `notes.md` — one short block: format profile, style lock, canvas, exact text, how to run the prompt.
Hand over with an interaction-components card. If the runtime produces a Work, the card's target is the Work itself, with the id taken from the publish output; for a file-only package, target the files with file cards. If the runtime only supports text, give the absolute paths and include the JSON inline. Say the run is not delivered until the files and the command are handed over. Never invent a Work id.
## Out of scope
- Do not change world settings (WORLD.md config, visual style, slug) or delete files that existed before the run.
- Do not modify memory, character cards, installed scripts, existing Works or roleplays.
- Do not generate images or spend credits without an explicit yes.
- Do not use a model other than MOSS-Image for the prompt target; do not produce video, 3D or audio.
- Make only the prompt package asked for; do not add extra deliverables or act on your own next-step menu.
## When to stop
- Missing image request, format, or required text: ask once, then stop. Never invent visible wording.
- Canvas is not a positive multiple of 16: ask for a valid size; do not silently round.
- The runtime has no Chrome/ImageMagick: deliver `prompt.json`, `qa.json` and the `.svg` files, say the PNG preview could not be rendered, and stop.
- The user asks for a different model or a video/3D deliverable: say this skill makes MOSS-Image prompt packages and stop.
## Gotchas
- **bbox is a soft constraint**, not a mask. The overlay is the only honest check; always render it when an image exists.
- Use the **actual output size**. Cohub `moss_image` currently returns 1456×2176; writing boxes for another canvas shifts the whole layout.
- **Text density is the main failure.** Keep a text block to 1–3 lines; split long copy. A poster body over 2–3 lines or an infographic over 300–500 words will lose glyphs.
- **Never send editor layer names or CSS escapes** (`第1格`, `\A`) to the model; they get rendered as visible text.
- **Poster diagrams:** write `abstract horizontal rules and halftone dots, no letters` — never "text lines", which becomes fake gibberish.
- **UI screens:** write `full-bleed rectangular interface artwork, edge to edge, no bezel, no rounded device corners, no home indicator`; "phone screen" invites a mockup.
- **Comics:** every character, object and text region needs `In panel N (position): …`; otherwise adjacent panels swap characters or dialogue.
- **Photos/products:** do not add text elements unless there is real signage or packaging. `must_not: no text, no letters, no logo` is cleaner.
- **Game splash / key art:** use an original character and an original costume. Naming a style is fine; copying an existing character, costume, logo or trademark is not. Add `no existing IP/logo` to `must_not`.
- **Element budget:** 12–35 elements is stable. 30 elements is roughly 3k tokens; going far beyond 4096 loses elements.
- **Style lock is six places, not one sentence.** If color leaks, strengthen `palette`, `must_not`, the per-element medium phrase, and the negative prompt together.
- **Output size and bbox format:** if the runtime returns normalized coordinates, convert with `x' = x / W * 1000`, `y' = y / H * 1000`; do not mix absolute and normalized boxes in one file.