Skill: blammectrappora/cosplay-reference-generator (version 1.0.1)

--- name: cosplay-reference-generator description: Generate cosplay reference sheets and costume design illustrations from any character or outfit description. Perfect for cosplayers planning builds, commissioning costumes, anime convention prep, costume photoshoot planning, Etsy seller listings, and cosplay tutorials. Creates full-body character references with detailed outfit visualization, multiple angles, and accessory details via the Neta AI image generation API (free trial at neta.art/open). tools: Bash --- # Cosplay Reference Generator Generate cosplay reference sheets and costume design illustrations from any character or outfit description. Perfect for cosplayers planning builds, commissioning costumes, anime convention prep, costume photoshoot planning, Etsy seller listings, and cosplay tutorials. Creates full-body character references with detailed outfit visualization, multiple angles, and accessory details. ## Token Requires a Neta API token (free trial at <https://www.neta.art/open/>). Pass it via the `--token` flag. ```bash node <script> "your prompt" --token YOUR_TOKEN ``` ## When to use Use when someone asks to generate or create cosplay reference sheet generator images. ## Quick start ```bash node cosplayreferencegenerator.js "your description here" --token YOUR_TOKEN ``` ## Options - `--size` — `portrait`, `landscape`, `square`, `tall` (default: `portrait`) - `--ref` — reference image UUID for style inheritance ## Install ```bash npx skills add blammectrappora/cosplay-reference-generator ```

path: README.md
content: # Cosplay Reference Generator

Generate cosplay reference sheets and costume design illustrations from text descriptions. Describe any character or outfit and get a full-body anime-style reference sheet — ideal for cosplayers planning builds, commissioning costumes, prepping for anime conventions, organizing photoshoots, populating Etsy listings, or producing cosplay tutorials.

Powered by the Neta AI image generation API (api.talesofai.com) — the same service as neta.art/open.

## Install

```bash
npx skills add blammectrappora/cosplay-reference-generator
```

Or with ClawHub:

```bash
clawhub install cosplay-reference-generator
```

## Usage

```bash
node cosplayreferencegenerator.js "your description here" --token YOUR_TOKEN
```

### Examples

```bash
node cosplayreferencegenerator.js "magical girl with star wand and pastel pink dress" --token YOUR_TOKEN
```

```bash
node cosplayreferencegenerator.js "cyberpunk samurai with neon katana and tactical armor" --size portrait --token YOUR_TOKEN
```

```bash
node cosplayreferencegenerator.js "fantasy elf ranger in forest green leather armor" --size tall --token YOUR_TOKEN
```

## Options

| Flag | Description | Default |
| --- | --- | --- |
| `--token` | Neta API token (required) | — |
| `--size` | `portrait`, `landscape`, `square`, or `tall` | `portrait` |
| `--ref` | Reference image UUID for style inheritance | — |

### Sizes

| Name | Dimensions |
| --- | --- |
| `square` | 1024 × 1024 |
| `portrait` | 832 × 1216 |
| `landscape` | 1216 × 832 |
| `tall` | 704 × 1408 |

## Token setup

This skill requires a Neta API token (free trial available at <https://www.neta.art/open/>).

Pass it via the `--token` flag:

```bash
node <script> "your prompt" --token YOUR_TOKEN
```

## Output

Returns a direct image URL.



path: cosplayreferencegenerator.js
content: #!/usr/bin/env node
import process from 'node:process';

const DEFAULT_PROMPT = 'full body cosplay character reference sheet, T-pose front view, detailed costume design, vibrant colors, clean white background, professional reference art, full outfit visible, multiple costume details';
const STYLE_SUFFIX = 'anime';

const SIZES = {
  square: { width: 1024, height: 1024 },
  portrait: { width: 832, height: 1216 },
  landscape: { width: 1216, height: 832 },
  tall: { width: 704, height: 1408 },
};

function parseArgs(argv) {
  const args = { positional: [], size: 'portrait', token: null, ref: null };
  for (let i = 0; i < argv.length; i++) {
    const a = argv[i];
    if (a === '--size') {
      args.size = argv[++i];
    } else if (a === '--token') {
      args.[REDACTED_SECRET];
    } else if (a === '--ref') {
      args.ref = argv[++i];
    } else if (a.startsWith('--size=')) {
      args.size = a.slice('--size='.length);
    } else if (a.startsWith('--token=')) {
      args.[REDACTED_SECRET]'--[REDACTED_SECRET]);
    } else if (a.startsWith('--ref=')) {
      args.ref = a.slice('--ref='.length);
    } else {
      args.positional.push(a);
    }
  }
  return args;
}

async function main() {
  const args = parseArgs(process.argv.slice(2));
  const tokenFlag = args.token;
  const [REDACTED_SECRET];

  if (!TOKEN) {
    console.error('\n✗ Token required. Pass via: --token YOUR_TOKEN');
    console.error('  Get yours at: https://www.neta.art/open/');
    process.exit(1);
  }

  const userPrompt = args.positional[0];
  const PROMPT = userPrompt
    ? `${DEFAULT_PROMPT}, ${userPrompt}, ${STYLE_SUFFIX}`
    : `${DEFAULT_PROMPT}, ${STYLE_SUFFIX}`;

  const sizeKey = SIZES[args.size] ? args.size : 'portrait';
  const { width, height } = SIZES[sizeKey];

  const headers = {
    'x-token': TOKEN,
    'x-platform': 'nieta-app/web',
    'content-type': 'application/json',
  };

  const body = {
    storyId: 'DO_NOT_USE',
    jobType: 'universal',
    rawPrompt: [{ type: 'freetext', value: PROMPT, weight: 1 }],
    width,
    height,
    meta: { entrance: 'PICTURE,VERSE' },
    context_model_series: '8_image_edit',
  };

  if (args.ref) {
    body.inherit_params = {
      collection_uuid: args.ref,
      picture_uuid: args.ref,
    };
  }

  const submitRes = await fetch('https://api.talesofai.com/v3/make_image', {
    method: 'POST',
    headers,
    body: JSON.stringify(body),
  });

  if (!submitRes.ok) {
    const text = await submitRes.text();
    console.error(`\n✗ Submit failed (${submitRes.status}): ${text}`);
    process.exit(1);
  }

  const submitText = await submitRes.text();
  let task_uuid;
  try {
    const parsed = JSON.parse(submitText);
    task_uuid = typeof parsed === 'string' ? parsed : parsed.task_uuid;
  } catch {
    task_uuid = submitText.replace(/^"|"$/g, '').trim();
  }

  if (!task_uuid) {
    console.error('\n✗ No task_uuid returned');
    process.exit(1);
  }

  for (let attempt = 0; attempt < 90; attempt++) {
    await new Promise((r) => setTimeout(r, 2000));
    const pollRes = await fetch(
      `https://api.talesofai.com/v1/artifact/task/${task_uuid}`,
      { headers },
    );
    if (!pollRes.ok) continue;
    const data = await pollRes.json();
    const status = data.task_status;
    if (status === 'PENDING' || status === 'MODERATION') continue;

    const url =
      (data.artifacts && data.artifacts[0] && data.artifacts[0].url) ||
      data.result_image_url;
    if (url) {
      console.log(url);
      process.exit(0);
    }
    console.error(`\n✗ Task finished without image. Status: ${status}`);
    process.exit(1);
  }

  console.error('\n✗ Timed out waiting for image');
  process.exit(1);
}

main().catch((err) => {
  console.error(`\n✗ ${err.message}`);
  process.exit(1);
});


path: package.json
content: name: cosplay-reference-generator
version: 1.0.1
type: module
description: Cosplay Reference Generator — AI-powered cosplay reference sheet generator
license: MIT

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)