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.
referenced-4x4-asset-sheet
Platformneta-skills/referenced-4x4-asset-sheet
Use it in Cohub
Paste this into your agent's chat — it fetches the skill and follows it.
Use the skill: referenced-4x4-asset-sheet. Run `npx -y @neta-art/neta-search-cli@latest skills use neta-skills/referenced-4x4-asset-sheet --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 neta-skills/referenced-4x4-asset-sheet
Summary
Generate 16 game assets in one organized sheet, then crop them into ready-to-use images.
Make props, items, furniture, icons, or stickers in one go—16 slots arranged in a 4×4 grid.
Each asset is automatically cropped, centered, and saved as a transparent PNG or WebP file.
Works best with a clear theme: fantasy potions, sci-fi weapons, cozy furniture, emoji-style food icons.
You get a contact sheet showing all 16 slots with labels, plus quality checks for cutoff or misaligned items.
The skill guides the AI to keep each object inside its space so nothing gets sliced off when cropped.
SKILL.md
# Referenced 4×4 Asset Sheet
Use this skill to produce a deterministic **4×4 asset sheet** and crop it into final production assets. It is intentionally generic: use it for game props, buildings, furniture, icons, items, stickers, character sprites, UI tokens, or any visual asset family that benefits from one 16-slot sheet.
## Neta generation requirement
When this workflow needs to create new visual source art, use Neta `generate image` as the default image generation path. Do not create final sheet art by drawing with Python/Pillow, SVG, Canvas, CSS, emoji, icon fonts, or colored boxes.
Use local scripts only for validation, download, cutout, cropping, recentering, contact sheets, QA metadata, and other deterministic post-processing.
Preferred generation command pattern:
```bash
node /mods/neta/neta generate image --prompt "<4x4 production asset sheet prompt>" --aspect 1:1
```
If reference images are needed, pass them with `--ref-file` according to the `generate-image` skill. If Neta image generation is blocked, report the asset generation as blocked/not ready instead of silently switching to local placeholder art.
## Non-negotiable 4×4 rule
For every generated deterministic 4×4 sheet, **use a grid reference image**:
```text
references/layout-guides/faint-4x4-sheet-grid.png
```
No reference, no generation. Do not silently fall back to text-only 4×4 prompting. Stop and report a blocker if any of these are true:
- the layout reference file is missing;
- the provider cannot accept image references;
- the manifest disables layout reference use;
- a generated deterministic 4×4 sheet would be made from prompt text alone;
- the generation call cannot verify that the grid reference was attached.
This rule exists because the sheet is not merely an illustration; it is a spatial data structure that will be cropped by fixed coordinates.
## Standard geometry
Every deterministic 4×4 generated sheet uses:
```text
1024×1024 square canvas
4 columns × 4 rows
16 equal cells
256×256 px per cell
32 px safe padding inside every cell
row-major order: left to right, top to bottom
white or near-white sheet background
no visible grid in the final output
no text, labels, UI, watermark, or logo
```
If fewer than 16 final assets are needed, keep the 4×4 sheet and fill unused slots with deliberate variants; mark unused slots in the manifest. Do not reduce the grid to 2×3, 3×3, etc.
## Required reading by task type
Before running a generation/crop task, read:
```text
docs/WORKFLOW.md
docs/REFERENCE_POLICY.md
docs/QA.md
prompts/PROMPT_TEMPLATES.md
```
For manifest-driven runs, also read:
```text
docs/MANIFEST.md
templates/manifest.example.json
```
Reusable scripts:
```text
engine/sheet_engine.py
engine/make_contact_sheet.py
engine/manifest.schema.json
```
## Dependency recovery
Before running generation, crop, cutout, or QA scripts, verify required dependencies. If a dependency is missing, first attempt safe installation in the current workspace/sandbox, rerun the dependency check, and then continue. Do not skip crop/QA/cutout just because a package was initially absent.
Common dependencies and recovery commands:
```bash
python3 -m pip install --user --break-system-packages pillow requests
python3 -m pip install --user --break-system-packages "rembg[cpu,cli]" # only when background removal is needed
```
If the environment does not require `--break-system-packages`, omit it. Only mark the task `blocked` when installation is forbidden, unsafe, unavailable, or still fails after retry.
## Reference modes
Classify the user request before planning:
1. `layout_grid_required`: normal theme-to-sheet generation. Always attach the faint 4×4 grid.
2. `source_sheet_preserve_layout`: user supplies an existing sheet. Use the source sheet as a composition/reference input **and** still attach or compose with the grid reference if the provider supports multiple references. If the provider supports only one image reference, create or require a combined reference image that preserves grid alignment. Do not drop the grid requirement.
3. `style_reference`: user supplies a visual style reference. Use it for style, but keep the grid reference mandatory. If provider cannot accept both, stop or create an explicit combined reference; do not generate text-only.
4. `crop_existing`: user provides an already-generated sheet and asks only for crop/QA. This does not require provider generation. Still verify the sheet geometry before cropping.
## Workflow
1. **Confirm inputs**
- Theme or style direction.
- Asset list and intended output format.
- Reference image(s), if any.
- Whether final assets should preserve alpha or be opaque.
2. **Create a manifest**
- Use 4 rows, 4 columns, 1024×1024 canvas, 256×256 cells, 32 px safe padding.
- Include all 16 slots, including unused placeholders when needed.
- Set `requires_layout_reference: true` and `use_layout_reference: true` for generated 4×4 sheets.
3. **Validate before generation**
- Run the engine with `--validate-manifest`.
- Ensure Python dependencies such as Pillow are available; if missing, install safely and rerun validation.
- Ensure the layout reference exists.
- Ensure the provider is reference-capable.
- If validation fails, fix the manifest instead of generating.
4. **Generate the sheet**
- Use Neta `generate image` as the default visual source generation path.
- Attach the faint 4×4 grid reference when reference attachment is supported by the selected generation route.
- Use the standard prompt contract from `prompts/PROMPT_TEMPLATES.md`.
- Do not draw the final sheet locally with Pillow/SVG/Canvas/CSS as a substitute for image generation.
- Save the raw sheet and provider log.
- Verify a non-empty artifact exists before continuing.
5. **Background removal / cutout**
- If final assets are sprites/objects/icons over a live background, use a no-crop background-removal method that preserves the 1024×1024 canvas.
- If `rembg` or another required cutout dependency is missing, attempt safe installation and rerun before falling back.
- If no no-crop cutout exists after recovery, crop raw cells first and remove background per cell.
- Never run global white-key / near-white-key alpha deletion as a default cleanup; it can destroy legitimate white details.
6. **Crop**
- Use the grid to identify the intended slot, but do not default to blind fixed-cell slicing for generated art.
- Default to `content_aware_recenter`: search around the nominal 256×256 slot, detect the foreground bbox, add padding, and recenter into a 256×256 output canvas.
- Use `fixed_cell` only when visual QA proves every object is fully inside its nominal cell.
- Preserve alpha unless the manifest explicitly asks for opaque outputs.
7. **QA**
- Validate sheet size and slot count.
- Verify every crop is non-empty, centered enough, not clipped, and not touching borders.
- When using `content_aware_recenter`, rebuild a normalized 4×4 sheet from the final crops and use that for review/publishing; do not present the raw provider sheet as the authoritative crop preview.
- Generate a contact sheet with slot numbers and IDs.
- Repair/regenerate before publishing if any slot is wrong.
8. **Report**
- Return the skill path, generated files, manifest path, and QA notes.
- Mention whether the layout grid reference was attached. If it was not, the generation is invalid.
## Hard blockers
Stop instead of continuing when:
- generated 4×4 sheet lacks the grid reference;
- provider supports only text prompts for generation;
- output canvas is not square or not compatible with 4×4 crop geometry;
- background removal auto-cropped the sheet before grid cropping;
- any required provider artifact is missing or empty;
- crop QA shows cut-off assets, crossed borders, empty slots, wrong semantic order, or fallback from content-aware crop to fixed-cell crop.
## Good default output layout
For project-local workspaces, use:
```text
<project>/generated/4x4/<sheet-id>/
├── manifest.json
├── raw/<sheet-id>.png
├── cutout/<sheet-id>.png
├── composed/<sheet-id>-composed.png
├── crops/<slot-id>.png or .webp
├── qa/contact-sheet.png
└── logs/
```
Keep raw/provenance files out of public release packages unless the user asks for them.