muapi-media · git:20260823.d16bece · 2026-08-23 · sha256 317a70e602d84132

muapi-media git:20260823.d16beceA

Immutable. This exact content is served forever at /api/v1/blob/317a70e602d84132.

---
name: muapi-media
category: media-content
description: Discover current MuAPI image models and run one explicitly confirmed asynchronous image generation request with bounded polling. Use when an agent needs hosted image generation without hard-coding stale model endpoints or request IDs.
allowed-tools: Bash(python3 *)
---

# MuAPI Media

Use the bundled `scripts/muapi_media.py` CLI to discover current MuAPI image models and submit
one explicitly confirmed image-generation request. The CLI uses the live catalog's `name`,
`category`, and already-versioned `endpoint` fields, then polls the standard prediction result
endpoint. It does not assume that the catalog contains an inline request schema; add model-specific
fields only from the current model contract.

## When to use this skill

- The user wants to find a current MuAPI image model.
- An image workflow needs MuAPI's exact model endpoint rather than a remembered alias.
- The user has explicitly approved a potentially billable image-generation request.
- An asynchronous MuAPI prediction needs bounded status polling.

This skill covers text-to-image and image-to-image workflows. Do not use it for MuAPI video, audio,
3D, chat, or model-training requests.

## Setup

Set the API key in the environment. Never pass it as a CLI argument or commit it:

~~~bash
export MUAPI_API_KEY="your-api-key"
~~~

`MUAPI_BASE_URL` is optional and defaults to `https://api.muapi.ai`. Use it only for an approved
compatible deployment.

## Workflow

### 1. Discover current image models

~~~bash
python3 scripts/muapi_media.py models --category image --query flux
~~~

The public catalog currently returns a top-level `models` array. Image-generation entries use
categories such as `Text to Image` and `Image to Image`; their `endpoint` values already include
the `/api/v1/` prefix. Choose an exact model from this output immediately before generation.

### 2. Prepare and review parameters

~~~json
{
  "prompt": "A clean product photograph on a neutral background",
  "aspect_ratio": "1:1"
}
~~~

Keep only fields supported by the selected model's current request contract. The catalog is a
model directory, not a guarantee that every model accepts the same parameters. A prompt is required
for this skill.

### 3. Confirm cost and generate once

~~~bash
python3 scripts/muapi_media.py generate \
  flux-dev \
  --params-file request.json \
  --confirm-paid
~~~

`--confirm-paid` is mandatory. The CLI sends exactly one generation POST, never retries an
ambiguous POST, and polls only GET requests with a finite budget. The model argument may be the
catalog model name or its exact `/api/v1/...` endpoint path.

Use `--output` to download the first completed artifact without sending the API key to the output
host:

~~~bash
python3 scripts/muapi_media.py generate \
  flux-dev \
  --params-file request.json \
  --confirm-paid \
  --output ./muapi-output.png
~~~

## Safety rules

- Keep `MUAPI_API_KEY` server-side and out of logs, prompts, screenshots, and committed files.
- Never retry a generation POST automatically. Require fresh user confirmation before another paid request.
- Poll only with GET and stop at `--max-polls`.
- Preserve the catalog endpoint path; do not prepend `/api/v1/` to an endpoint that already has it.
- Download only HTTPS output URLs and do not forward the API key to the output host.
- Require human review for sensitive, regulated, or high-impact content.

## Output

Commands write structured JSON to stdout. A successful generation includes the selected model,
request ID, terminal status, output URLs, and—when requested—the local artifact path.

## Official references

- [MuAPI model catalog](https://muapi.ai/docs/models)
- [MuAPI API reference](https://muapi.ai/docs/api-reference)
- [MuAPI image models](https://muapi.ai/playground/group/image)
- [MuAPI access keys](https://muapi.ai/access-keys)