@clawhub-coolhackboy-b4095acbc2
GPT Image 2 generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `gpt-image-2`, `gpt-image-2-edit`, text-to-image,...
---
name: poyo-gpt-image-2
description: GPT Image 2 generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `gpt-image-2`, `gpt-image-2-edit`, text-to-image, multi-image editing with `image_urls`, single-image output, `auto` or aspect-ratio sizes, custom `WIDTHxHEIGHT`, and 1K/2K/4K resolution control.
metadata: {"openclaw":{"homepage":"https://docs.poyo.ai/api-manual/image-series/gpt-image-2","requires":{"bins":["curl"],"env":["POYO_API_KEY"]},"primaryEnv":"POYO_API_KEY"}}
---
# PoYo GPT Image 2 Generation and Editing
Use this skill for GPT Image 2 jobs on PoYo. It covers text-to-image generation, reference-image-guided generation, and multi-image editing payloads for `gpt-image-2` and `gpt-image-2-edit`.
## Use When
- The user explicitly mentions `GPT Image 2`, `gpt-image-2`, or `gpt-image-2-edit`.
- The task is text-to-image, image-to-image, or editing one or more supplied images.
- The workflow needs broader aspect-ratio support, custom pixel size, or `1K` / `2K` / `4K` resolution control.
## Model Selection
- `gpt-image-2`: text-to-image generation and optional reference-image-guided generation.
- `gpt-image-2-edit`: editing based on one or more reference images and a text instruction; requires `image_urls`.
## Key Inputs
- `prompt` is required inside `input` and is limited to 4000 characters.
- `image_urls` is required for `gpt-image-2-edit` and supports multiple input images.
- Each request returns a single image.
- `size` supports `auto`, `1:1`, `2:3`, `3:2`, `4:3`, `3:4`, `4:5`, `5:4`, `16:9`, `9:16`, `21:9`, or custom `WIDTHxHEIGHT`.
- `resolution` supports `1K`, `2K`, and `4K`.
- Custom `WIDTHxHEIGHT` sizes require `resolution` to be `2K` or `4K`.
- `auto` size or omitted `size` always uses `1K` resolution.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, resolution notes, and polling notes.
- Use `scripts/submit_gpt_image_2.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt one from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output Expectations
When helping with this model family, include:
- chosen model id
- whether the request is text-to-image, reference-guided generation, or editing
- final payload or a concise parameter summary
- selected `size` and `resolution`
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_gpt_image_2.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_gpt_image_2.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit \
-H "Authorization: Bearer $api_key" \
-H 'Content-Type: application/json' \
-d "$body"
FILE:references/api.md
# PoYo GPT Image 2 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/gpt-image-2>
- Model page: <https://poyo.ai/models/gpt-image-2>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/gpt-image-2.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `gpt-image-2` — text-to-image generation and optional reference-image-guided generation
- `gpt-image-2-edit` — image editing from one or more reference images; requires `image_urls`
## Key input fields
- `model` (string, required) — choose `gpt-image-2` or `gpt-image-2-edit`
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `input.prompt` (string, required, max 4000 chars) — Prompt describing the target image or requested edit
- `input.image_urls` (string[], optional) — Reference image URLs; required for `gpt-image-2-edit`; supports multiple input images
- `input.size` (string, optional, default `auto`) — Output aspect ratio or custom pixel size
- `input.resolution` (string, optional, default `1K`) — Output resolution: `1K`, `2K`, or `4K`
## Size and resolution
Preset `size` values:
- `auto`
- `1:1`, `2:3`, `3:2`, `4:3`, `3:4`, `4:5`, `5:4`
- `16:9`, `9:16`, `21:9`
Custom size:
- Use `WIDTHxHEIGHT`, for example `2304x1536`.
- Custom size requires `resolution` to be `2K` or `4K`.
- `auto` size or omitted `size` always uses `1K` resolution.
- True `4K` billing applies only to `16:9`, `9:16`, `21:9`, or custom sizes with a 3840-pixel edge; other `4K` selections are billed as `2K`.
## Important constraints
- `gpt-image-2-edit` requires `image_urls`.
- Each request returns a single image.
- Public image URLs must be directly downloadable by the upstream provider.
## Text-to-image example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A premium product photo of a silver espresso machine on a clean white studio background, realistic lighting, high detail",
"size": "1:1"
}
}'
```
## 2K generation example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A premium product photo of a silver espresso machine on a clean white studio background, realistic lighting, high detail",
"size": "16:9",
"resolution": "2K"
}
}'
```
## 4K generation example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A cinematic landscape with dramatic lighting, ultra-high detail",
"size": "16:9",
"resolution": "4K"
}
}'
```
## Custom size example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A premium product photo of a silver espresso machine on a clean white studio background",
"size": "2304x1536",
"resolution": "2K"
}
}'
```
## Edit example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-image-2-edit",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "Use these reference images together to create a polished product photo: keep the flower subject, use the vase shape from the second image, replace the background with a clean white studio backdrop, and add a soft natural shadow",
"image_urls": [
"https://example.com/flower.jpg",
"https://example.com/vase.jpg"
],
"size": "1:1"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use `gpt-image-2` for pure prompt generation; add `image_urls` only when reference-guided generation is needed.
- Use `gpt-image-2-edit` when the prompt asks to modify supplied images.
- Choose `auto` or omit `size` for default 1K output; specify `resolution` when the user needs 2K or 4K.
- Save the returned `task_id` immediately so status polling is straightforward.
Seedance 2 video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedance-2`, `seedance-2-fast`, text-to-video, first/la...
---
name: poyo-seedance-2
description: Seedance 2 video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedance-2`, `seedance-2-fast`, text-to-video, first/last-frame image-to-video, multimodal image/video/audio references, 4s-15s clips, optional audio, and seed control.
metadata: {"openclaw":{"homepage":"https://docs.poyo.ai/api-manual/video-series/seedance-2","requires":{"bins":["curl"],"env":["POYO_API_KEY"]},"primaryEnv":"POYO_API_KEY"}}
---
# PoYo Seedance 2 Video Generation
Use this skill for Seedance 2 jobs on PoYo. It covers standard and fast variants, text-to-video, first/last-frame control, and multimodal reference-to-video workflows.
## Use When
- The user explicitly asks for `Seedance 2`, `Seedance 2.0`, `seedance-2`, or `seedance-2-fast`.
- The task is a 4-second to 15-second video clip from text, first/last frames, or multimodal references.
- The workflow needs generated audio, reproducible `seed`, or reference images, videos, and audio.
## Model Selection
- `seedance-2`: default standard-quality variant; supports `480p`, `720p`, and `1080p`.
- `seedance-2-fast`: faster, lower-cost variant; supports `480p` and `720p` only.
## Key Inputs
- `prompt`, `resolution`, and `duration` are required inside `input`.
- `duration` supports integer values from `4` to `15`.
- `aspect_ratio` is optional and supports `1:1`, `21:9`, `4:3`, `3:4`, `16:9`, `9:16`.
- `image_urls` supports up to two images for first and last frame control.
- `reference_image_urls`, `reference_video_urls`, and `reference_audio_urls` support multimodal reference-to-video workflows.
- Do not combine `image_urls` with any `reference_*_urls` field in the same request.
- `generate_audio` and `seed` are optional.
## Execution
- Read `references/api.md` for endpoint details, field constraints, example payloads, and polling notes.
- Use `scripts/submit_seedance_2.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt one from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output Expectations
When helping with this model family, include:
- chosen model id
- whether the request is text-to-video, first/last-frame, or multimodal reference-to-video
- final payload or a concise parameter summary
- whether generated audio or seed control is enabled
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_seedance_2.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_seedance_2.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit \
-H "Authorization: Bearer $api_key" \
-H 'Content-Type: application/json' \
-d "$body"
FILE:references/api.md
# PoYo Seedance 2 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/seedance-2>
- Model page: <https://poyo.ai/models/seedance-2>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/seedance-2.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `seedance-2` — standard Seedance 2 video generation model; supports `480p`, `720p`, and `1080p`
- `seedance-2-fast` — faster, lower-cost variant; supports `480p` and `720p` only
## Key input fields
- `model` (string, required) — choose `seedance-2` or `seedance-2-fast`
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `input.prompt` (string, required) — Text prompt describing the target video
- `input.resolution` (string, required) — `480p`, `720p`, `1080p`; use `1080p` only with `seedance-2`
- `input.duration` (integer, required) — Video duration in seconds, any integer from `4` to `15`
- `input.aspect_ratio` (string, optional) — `1:1`, `21:9`, `4:3`, `3:4`, `16:9`, `9:16`
- `input.image_urls` (string[], optional, max 2) — First and last frame images; index `0` is first frame, index `1` is last frame
- `input.reference_image_urls` (string[], optional) — Reference image URLs for multimodal reference-to-video mode
- `input.reference_video_urls` (string[], optional) — Reference video URLs for multimodal reference-to-video mode
- `input.reference_audio_urls` (string[], optional) — Reference audio URLs for multimodal reference-to-video mode
- `input.generate_audio` (boolean, optional) — Whether to generate an audio track
- `input.seed` (integer, optional) — Random seed for reproducible generation
## Important constraints
- `image_urls` and any `reference_*_urls` fields are mutually exclusive.
- `seedance-2-fast` uses the same input schema as `seedance-2`, but do not request `1080p` with it.
- Public media URLs must be directly downloadable by the upstream provider.
- Credits are calculated by duration and resolution; requests with `reference_video_urls` may have different final cost.
## Text-to-video example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "seedance-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A cinematic drone shot flying over a neon city after rain, reflections shimmering on the streets",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": 5,
"generate_audio": true,
"seed": 42
}
}'
```
## First and last frame example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "seedance-2",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A smooth transition from sunrise to golden afternoon over a mountain lake",
"image_urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 10,
"generate_audio": false,
"seed": 42
}
}'
```
## Multimodal reference example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "seedance-2-fast",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A stylish fashion short with energetic pacing, matching the movement rhythm of the reference clip",
"reference_image_urls": [
"https://example.com/reference-image.jpg"
],
"reference_video_urls": [
"https://example.com/reference-video.mp4"
],
"reference_audio_urls": [
"https://example.com/reference-audio.mp3"
],
"aspect_ratio": "9:16",
"resolution": "720p",
"duration": 5,
"generate_audio": true,
"seed": 42
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use `seedance-2` for `1080p`; use `seedance-2-fast` when latency or cost matters and `480p`/`720p` is enough.
- Prefer `image_urls` for exact first/last frame control.
- Prefer `reference_*_urls` for looser multimodal guidance from images, videos, or audio.
- Save the returned `task_id` immediately so status polling is straightforward.
Seedream 5.0 Lite image generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedream-5.0-lite`, `seedream-5.0-li...
---
name: poyo-seedream-5-0-lite
description: Seedream 5.0 Lite image generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedream-5.0-lite`, `seedream-5.0-lite-edit`, 2K/3K output, multi-reference editing, and aspect-ratio control.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/seedream-5-0-lite", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Seedream 5.0 Lite Image Generation and Editing
Use this skill for Seedream 5.0 Lite jobs on PoYo. It fits efficient high-resolution generation, image editing, and flexible size control.
## Use When
- The user explicitly asks for `Seedream 5.0 Lite`, `seedream-5.0-lite`, or `seedream-5.0-lite-edit`.
- The task is high-resolution generation, image-to-image, or edit.
- The workflow needs 2K/3K output or direct aspect-ratio control.
## Model Selection
- `seedream-5.0-lite`: standard generation entry point.
- `seedream-5.0-lite-edit`: use when the request explicitly edits supplied images.
## Key Inputs
- `prompt` is required.
- `image_urls` supports up to 10 images and is required for edit workflows.
- `size` can be `2K`, `3K`, or an aspect ratio like `1:1`, `16:9`, `21:9`.
- `n` controls output count from `1` to `15`.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_seedream_5_0_lite.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_seedream_5_0_lite.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_seedream_5_0_lite.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Seedream 5 0 Lite API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/seedream-5-0-lite>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/seedream-5-0-lite.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `seedream-5.0-lite` — general generation with this model variant
- `seedream-5.0-lite-edit` — editing or modifying supplied images
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URLs for image-to-image or editing (1-10 images). Required for seedream-5.0-lite-edit model. Supported formats: JPEG, PNG
- `size` (string, optional) — Specify the output image dimensions. Two methods are available, but they cannot be used at the same time. Method 1: Specify the resolution of the generated image, and describe its aspect ratio, shape, or purpose in the prompt using natural language. You let the model determine the width and height. Optional values: 2K, 3K Method 2: Specify the aspect ratio of the generated image. Optional values: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9 options: 2K, 3K, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9
- `n` (integer, optional) — Number of images to generate (1-15). Credits are pre-deducted based on this count
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "seedream-5.0-lite",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene Japanese garden with cherry blossoms and a koi pond",
"size": "16:9",
"n": 1
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 10 item(s).
- Use a supported `size`: 2K, 3K, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9.
- Save the returned `task_id` immediately so status polling is straightforward.
Wan 2.6 video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `wan2.6-text-to-video`, `wan2.6-image-to-video`, `wan2.6-vi...
---
name: poyo-wan-2-6
description: Wan 2.6 video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `wan2.6-text-to-video`, `wan2.6-image-to-video`, `wan2.6-video-to-video`, text-to-video, image-to-video, video-to-video, and `multi_shots` control.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/wan-2-6", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Wan 2.6 Video Generation
Use this skill for Wan 2.6 jobs on PoYo. It routes between text-to-video, image-to-video, and video-to-video within one model family.
## Use When
- The user explicitly asks for `Wan 2.6` or one of the `wan2.6-*` model ids.
- The task needs one family that covers text-to-video, image-to-video, and video-to-video.
- The workflow needs `multi_shots`, resolution control, or source-video transformation.
## Model Selection
- `wan2.6-text-to-video`: prompt-only video generation.
- `wan2.6-image-to-video`: one-image guided video generation.
- `wan2.6-video-to-video`: source-video transformation with up to 3 reference videos.
## Key Inputs
- `prompt` is required.
- `image_urls` is only for `wan2.6-image-to-video` and supports one image.
- `video_urls` is only for `wan2.6-video-to-video` and supports up to 3 videos.
- `duration` supports `5`, `10`, `15`.
- `resolution` supports `720p`, `1080p`; `multi_shots` controls single-shot vs multi-shot composition.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_wan_2_6.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_wan_2_6.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_wan_2_6.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Wan 2 6 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/wan-2-6>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/wan-2-6.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `wan2.6-text-to-video` — general generation with this model variant
- `wan2.6-image-to-video` — general generation with this model variant
- `wan2.6-video-to-video` — general generation with this model variant
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Text prompt for video generation
- `image_urls` (string[], optional) — Reference image URLs for image-to-video (wan2.6-image-to-video only). Max 1 image; supported formats: .jpeg, .jpg, .png, .webp; max size 10MB
- `duration` (integer, optional) — Video duration in seconds (15 seconds supported for text-to-video and image-to-video) options: 5, 10, 15
- `resolution` (string, optional) — Output video resolution options: 720p, 1080p
- `video_urls` (string[], optional) — Reference video URLs for video-to-video (wan2.6-video-to-video only). Max 3 videos; supported formats: .mp4, .mov, .mkv; max size 10MB
- `multi_shots` (boolean, optional) — Enable multi-shot composition (single continuous shot when false)
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "wan2.6-text-to-video",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A cinematic time-lapse of a bustling city street transitioning from day to night.",
"duration": 5,
"resolution": "1080p",
"multi_shots": false
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 1 item(s).
- Pick duration deliberately: available values are 5, 10, 15.
- Use a supported `resolution`: 720p, 1080p.
- Save the returned `task_id` immediately so status polling is straightforward.
Grok Imagine video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `grok-imagine`, text-to-video, image-to-video, 6s/10s...
---
name: poyo-grok-imagine
description: Grok Imagine video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `grok-imagine`, text-to-video, image-to-video, 6s/10s clips, and `fun` / `normal` / `spicy` mode control.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/grok-imagine", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Grok Imagine Video Generation
Use this skill for `grok-imagine` jobs on PoYo. It covers short text-to-video, image-to-video, and mode-based styling.
## Use When
- The user explicitly asks for `Grok Imagine` or `grok-imagine`.
- The task is a 6-second or 10-second clip.
- The workflow needs text-to-video, image-to-video, or `mode` styling.
## Core Capability
- `grok-imagine` is a single-model video entry point. Use `image_urls` for image-to-video and `mode` for `fun`, `normal`, or `spicy` style control.
## Key Inputs
- `prompt` is required.
- `image_urls` is for image-to-video and supports one image.
- `duration` supports `6` and `10`.
- `aspect_ratio` supports `1:1`, `2:3`, `3:2` for text-to-video.
- `mode` supports `fun`, `normal`, `spicy`.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_grok_imagine.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_grok_imagine.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_grok_imagine.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Grok Imagine API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/grok-imagine>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/grok-imagine.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `grok-imagine` — general generation with this model variant
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired video motion
- `image_urls` (string[], optional) — Reference image URLs for image-to-video generation (required for image-to-video, max 1 image)
- `duration` (integer, optional) — The duration of the generated video in seconds options: 6, 10
- `aspect_ratio` (string, optional) — Video aspect ratio (text-to-video only) options: 1:1, 2:3, 3:2
- `mode` (string, optional) — Generation style mode options: fun, normal, spicy
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "grok-imagine",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A couple of doors open sequentially, revealing living rooms, kitchens, bedrooms, and offices with residents inside",
"aspect_ratio": "16:9",
"mode": "normal"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 1 item(s).
- Pick duration deliberately: available values are 6, 10.
- Match aspect ratio to the destination surface: 1:1, 2:3, 3:2.
- Save the returned `task_id` immediately so status polling is straightforward.
Seedream 4.5 image generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedream-4.5`, `seedream-4.5-edit`, 2K/4K...
---
name: poyo-seedream-4-5
description: Seedream 4.5 image generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedream-4.5`, `seedream-4.5-edit`, 2K/4K output, multi-reference editing, and higher image counts.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/seedream-4-5", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Seedream 4.5 Image Generation and Editing
Use this skill for Seedream 4.5 jobs on PoYo. It covers high-resolution generation, multi-reference image workflows, and edit requests.
## Use When
- The user explicitly asks for `Seedream 4.5`, `seedream-4.5`, or `seedream-4.5-edit`.
- The task is high-resolution generation, image-to-image, or edit.
- The workflow needs multiple reference images or higher output counts.
## Model Selection
- `seedream-4.5`: standard generation entry point.
- `seedream-4.5-edit`: use when the request explicitly edits supplied images.
## Key Inputs
- `prompt` is required.
- `image_urls` supports up to 10 images and is required for `seedream-4.5-edit`.
- `size` can be a resolution token like `2K`/`4K` or an aspect ratio like `1:1`, `16:9`, `21:9`.
- `n` controls output count from `1` to `15`.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_seedream_4_5.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_seedream_4_5.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_seedream_4_5.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Seedream 4 5 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/seedream-4-5>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/seedream-4-5.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `seedream-4.5` — general generation with this model variant
- `seedream-4.5-edit` — editing or modifying supplied images
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URLs for image-to-image or editing (1-10 images). Required for seedream-4.5-edit model. Supported formats: JPEG, PNG
- `size` (string, optional) — Specify the output image dimensions. Two methods are available, but they cannot be used at the same time. Method 1: Specify the resolution of the generated image, and describe its aspect ratio, shape, or purpose in the prompt using natural language. You let the model determine the width and height. Optional values: 2K, 4K Method 2: Specify the aspect ratio of the generated image. Optional values: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9 options: 2K, 4K, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9
- `n` (integer, optional) — Number of images to generate (1-15). Credits are pre-deducted based on this count
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "seedream-4.5",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene Japanese garden with cherry blossoms and a koi pond",
"size": "16:9",
"n": 1
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 10 item(s).
- Use a supported `size`: 2K, 4K, 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9.
- Save the returned `task_id` immediately so status polling is straightforward.
Kling 2.6 Motion Control on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `kling-2.6-motion-control`, motion transfer, character anim...
---
name: poyo-kling-2-6-motion-control
description: Kling 2.6 Motion Control on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `kling-2.6-motion-control`, motion transfer, character animation, orientation control, and 720p/1080p output.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/kling-2.6-motion-control", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Kling 2.6 Motion Control
Use this skill for `kling-2.6-motion-control` jobs on PoYo. It is for strict motion transfer workflows that require both a character image and a reference video.
## Use When
- The user explicitly asks for `Kling 2.6 Motion Control` or `kling-2.6-motion-control`.
- The task is motion transfer from a reference video to a target character image.
- The workflow depends on `character_orientation` and explicit resolution control.
## Core Capability
- `kling-2.6-motion-control` is not a general video model. Use it only when the task requires character animation from a supplied image plus a supplied motion video.
## Key Inputs
- `image_urls` is required, supports one character image, and should clearly show head, shoulders, and torso.
- `video_urls` is required, supports one reference video, and must be 3-30 seconds.
- `character_orientation` is required and supports `image` or `video`.
- `resolution` is required and supports `720p` or `1080p`.
- `prompt` is optional scene guidance only.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_kling_2_6_motion_control.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_kling_2_6_motion_control.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_kling_2_6_motion_control.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Kling 2 6 Motion Control API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/kling-2.6-motion-control>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/kling-2.6-motion-control.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `kling-2.6-motion-control` — motion transfer and character animation
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `character_orientation` (string, required) — Character orientation mode: 'image' matches the person's orientation in the photograph (max 10 seconds output), 'video' maintains consistency with character orientation from the reference video (max 30 seconds output) options: image, video
- `video_urls` (string[], required) — Single reference video URL for motion transfer (MP4, MOV, MKV, max 100MB, 3-30 seconds). Must clearly show the subject's head, shoulders, and torso
- `prompt` (string, optional) — Text description of the desired output scene (optional)
- `image_urls` (string[], required) — Single character image URL (JPEG, PNG, WEBP, max 10MB). Must clearly show the subject's head, shoulders, and torso
- `resolution` (string, required) — Output video resolution. 720p for standard quality, 1080p for higher visual quality options: 720p, 1080p
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "kling-2.6-motion-control",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "The cartoon character is dancing gracefully in a studio",
"image_urls": [
"https://example.com/character-image.jpg"
],
"video_urls": [
"https://example.com/dance-reference.mp4"
],
"character_orientation": "video",
"resolution": "1080p"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 1 item(s).
- Use a supported `resolution`: 720p, 1080p.
- Save the returned `task_id` immediately so status polling is straightforward.
Kling 3.0 video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `kling-3.0/standard`, `kling-3.0/pro`, single-shot, multi...
---
name: poyo-kling-3-0
description: Kling 3.0 video generation on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `kling-3.0/standard`, `kling-3.0/pro`, single-shot, multi-shot, `multi_prompt`, `kling_elements`, and sound-enabled output.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/kling-3-0", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Kling 3.0 Multi-Shot Video Generation
Use this skill for Kling 3.0 jobs on PoYo. It covers single-shot and multi-shot video generation, element-referenced prompting, and sound-enabled output.
## Use When
- The user explicitly asks for `Kling 3.0`, `kling-3.0/standard`, or `kling-3.0/pro`.
- The task needs multi-shot storytelling or structured multi-prompt input.
- The workflow depends on `kling_elements`, reference frames, or sound control.
## Model Selection
- `kling-3.0/standard`: standard-quality entry point.
- `kling-3.0/pro`: higher-quality variant for users who explicitly want pro output.
## Key Inputs
- `sound`, `multi_shots`, and `duration` drive the main workflow.
- `prompt` is for single-shot; `multi_prompt` is for multi-shot.
- `image_urls` is for start/end frames and is also required when `kling_elements` is used.
- `aspect_ratio` supports `1:1`, `16:9`, `9:16`.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_kling_3_0.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_kling_3_0.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_kling_3_0.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Kling 3 0 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/kling-3-0>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/kling-3-0.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `kling-3.0/standard` — default-quality or standard jobs
- `kling-3.0/pro` — higher-quality or premium jobs
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `sound` (boolean, required) — Whether to enable sound effects. true enables sound effects, false disables them. When multi_shots is true, this field must be true.
- `multi_shots` (boolean, required) — Enable multi-shot mode. When true, use multi_prompt array instead of prompt. When false, use prompt string. Default is false
- `prompt` (string, optional) — Video generation prompt. Required when multi_shots is false. You can reference elements using @element_name syntax (e.g., @element_dog)
- `image_urls` (string[], required) — Array of image URLs. For single shot mode (multi_shots: false), provide start and end frame URLs. For multi-shot mode (multi_shots: true), provide only the start frame URL. **Required** when `kling_elements` is provided
- `duration` (integer, required) — Video duration in seconds. For single shot mode, duration can be 3-15 seconds. For multi-shot mode, duration is the total duration of all shots
- `aspect_ratio` (string, optional) — Video aspect ratio. When the input does not contain reference images (image_urls), the default is 1:1 if the aspect_ratio parameter is not passed; when the input contains the first frame image, the aspect_ratio parameter will be ignored, and the output will use the aspect ratio of the first frame image options: 1:1, 16:9, 9:16
- `multi_prompt` (object[], optional) — Array of prompt objects for multi-shot mode. Required when multi_shots is true. Each object contains a prompt and duration. Total duration of all shots cannot exceed 15 seconds
- `kling_elements` (object[], optional) — Array of element objects that can be referenced in prompts using @element_name syntax. Elements can be defined using images (2-4 images) or a single video. When provided, `image_urls` is required
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "kling-3.0/standard",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A chef carefully plating a gourmet dish in a modern kitchen, steam rising from the food under warm lighting",
"multi_shots": false,
"duration": 5,
"sound": true,
"aspect_ratio": "16:9"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use `image_urls` only when the task genuinely depends on reference imagery.
- Match aspect ratio to the destination surface: 1:1, 16:9, 9:16.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Sora 2 Pro for longer premium video generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants 15s or 25s c...
---
name: poyo-sora-2-pro
description: Use PoYo AI Sora 2 Pro for longer premium video generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants 15s or 25s cinematic clips, optional storyboard control, style presets, image-to-video input, or PoYo payloads for `sora-2-pro` and `sora-2-pro-private`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/sora-2-pro", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Sora 2 Pro Video Generation
Use this skill to submit and track PoYo jobs for the Sora 2 Pro family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.duration` when the clip length matters.
- Use `input.aspect_ratio` when the output surface matters.
## Model selection
### `sora-2-pro`
Use for higher-quality or premium jobs.
### `sora-2-pro-private`
Use for private deployment or account-specific private variants.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_sora_2_pro.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_sora_2_pro.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_sora_2_pro.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Sora 2 Pro API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/sora-2-pro>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/sora-2-pro.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `sora-2-pro` — higher-quality or premium jobs
- `sora-2-pro-private` — private deployment or account-specific private variants
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URL (for image-to-video). Only one image is supported. Maximum file size: 10MB. Supported formats: .jpeg, .jpg, .png, .webp
- `duration` (integer, optional) — Video duration in seconds (15 or 25) options: 15, 25
- `aspect_ratio` (string, optional) — Video aspect ratio options: 16:9, 9:16
- `style` (string, optional) — Video style options: thanksgiving, comic, news, selfie, nostalgic, anime
- `storyboard` (boolean, optional) — Whether to use storyboard for finer control over video generation details. true: Enable storyboard feature, false: Do not use storyboard
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "sora-2-pro",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A cinematic drone shot flying through a misty forest at dawn",
"duration": 25,
"aspect_ratio": "16:9"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 1 item(s).
- Pick duration deliberately: available values are 15, 25.
- Match aspect ratio to the destination surface: 16:9, 9:16.
- `style` is constrained to: thanksgiving, comic, news, selfie, nostalgic, anime.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Veo 3.1 for frame-conditioned video generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants fast or qual...
---
name: poyo-veo-3-1
description: Use PoYo AI Veo 3.1 for frame-conditioned video generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants fast or quality modes, start-frame and end-frame guidance, up to 4K resolution, reference-image video generation, or PoYo payloads for `veo3.1-fast` and `veo3.1-quality`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/veo-3-1", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Veo 3.1 Video Generation
Use this skill to submit and track PoYo jobs for the VEO 3.1 family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.duration` when the clip length matters.
- Use `input.aspect_ratio` when the output surface matters.
- Use `input.resolution` when quality/cost tradeoffs matter.
## Model selection
### `veo3.1-fast`
Use for general generation with this model variant.
### `veo3.1-quality`
Use for general generation with this model variant.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_veo_3_1.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_veo_3_1.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_veo_3_1.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo VEO 3 1 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/veo-3-1>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/veo-3-1.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `veo3.1-fast` — general generation with this model variant
- `veo3.1-quality` — general generation with this model variant
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URLs for image-to-video. - Supports public http/https URLs. - Maximum 3 images. - Frame mode: first image is the start frame, second image is the end frame. - Maximum file size: 10MB. - Supported formats: .jpeg, .jpg, .png, .webp
- `duration` (integer, optional) — Video duration in seconds (fixed at 8). options: 8
- `aspect_ratio` (string, optional) — Video aspect ratio options: 16:9, 9:16
- `resolution` (string, optional) — Output resolution. - `720p`: Default. - `1080p`: Full HD. - `4k`: Ultra HD. options: 720p, 1080p, 4k
- `generation_type` (string, optional) — Video generation type. - `frame`: Frame-to-video (two images). - `reference`: Reference image video (three images). - If omitted, inferred by `image_urls` count: 2 for `frame`, 3 for `reference`. options: frame, reference
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "veo3.1-fast",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "Dolphins jumping in a bright blue ocean",
"duration": 8,
"aspect_ratio": "16:9"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 3 item(s).
- Pick duration deliberately: available values are 8.
- Match aspect ratio to the destination surface: 16:9, 9:16.
- Use a supported `resolution`: 720p, 1080p, 4k.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Nano Banana for general image generation and image editing across many aspect ratios through the `https://api.poyo.ai/api/generate/submit` endpoi...
---
name: poyo-nano-banana
description: Use PoYo AI Nano Banana for general image generation and image editing across many aspect ratios through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants prompt-based images, reference-image edits, wide or tall canvases, or PoYo payloads for `nano-banana` and `nano-banana-edit`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/nano-banana", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Nano Banana Image Generation and Editing
Use this skill to submit and track PoYo jobs for the Nano Banana family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.size` to match the intended aspect ratio or canvas.
## Model selection
### `nano-banana`
Use for general generation with this model variant.
### `nano-banana-edit`
Use for editing or modifying supplied images.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_nano_banana.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_nano_banana.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_nano_banana.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Nano Banana API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/nano-banana>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/nano-banana.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `nano-banana` — general generation with this model variant
- `nano-banana-edit` — editing or modifying supplied images
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URLs (for image editing)
- `size` (string, optional) — Image size ratio options: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "nano-banana",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A cyberpunk street scene with neon signs and rain",
"size": "16:9"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use `image_urls` only when the task genuinely depends on reference imagery.
- Use a supported `size`: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Seedance 1.5 Pro for higher-end image-to-video generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants l...
---
name: poyo-seedance-1-5-pro
description: Use PoYo AI Seedance 1.5 Pro for higher-end image-to-video generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants longer 4s, 8s, or 12s clips, optional audio, fixed-lens control, broad aspect-ratio support, or PoYo payloads for `seedance-1.5-pro`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/seedance-1-5-pro", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Seedance 1.5 Pro Image-to-Video
Use this skill to submit and track PoYo jobs for the Seedance 1.5 Pro family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.duration` when the clip length matters.
- Use `input.aspect_ratio` when the output surface matters.
- Use `input.resolution` when quality/cost tradeoffs matter.
## Model selection
### `seedance-1.5-pro`
Use for higher-quality or premium jobs.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_seedance_1_5_pro.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_seedance_1_5_pro.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_seedance_1_5_pro.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Seedance 1 5 Pro API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/seedance-1-5-pro>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/seedance-1-5-pro.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `seedance-1.5-pro` — higher-quality or premium jobs
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Enter video description
- `image_urls` (string[], optional) — Reference image URLs for video generation (1st image as the first frame, 2nd image as the last frame). File URL after upload, not file content; Accepted types: image/jpeg, image/png, image/webp; Max size: 10.0MB
- `duration` (integer, required) — Video duration in seconds options: 4, 8, 12
- `aspect_ratio` (string, required) — Select the frame dimensions. options: 1:1, 21:9, 4:3, 3:4, 16:9, 9:16
- `resolution` (string, optional) — Standard (480p) / High (720p) / Ultra (1080p) options: 480p, 720p, 1080p
- `fixed_lens` (boolean, optional) — Whether to keep the camera lens fixed
- `generate_audio` (boolean, optional) — Whether to generate an audio track
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "seedance-1.5-pro",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "slow zoom, sunset glow",
"image_urls": [
"https://example.com/image.jpg"
],
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": 4,
"fixed_lens": false,
"generate_audio": true
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 2 item(s).
- Pick duration deliberately: available values are 4, 8, 12.
- Match aspect ratio to the destination surface: 1:1, 21:9, 4:3, 3:4, 16:9, 9:16.
- Use a supported `resolution`: 480p, 720p, 1080p.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Z-Image for straightforward prompt-based image generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants d...
---
name: poyo-z-image
description: Use PoYo AI Z-Image for straightforward prompt-based image generation through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants direct text-to-image output, simple aspect-ratio control, lightweight PoYo payloads, or submissions for `z-image`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/z-image", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Z-Image Generation
Use this skill to submit and track PoYo jobs for the Z-Image family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.size` to match the intended aspect ratio or canvas.
## Model selection
### `z-image`
Use for general generation with this model variant.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_z_image.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_z_image.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_z_image.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Z Image API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/z-image>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/z-image.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `z-image` — general generation with this model variant
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `size` (string, required) — Image size ratio options: 1:1, 4:3, 3:4, 16:9, 9:16
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "z-image",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene mountain landscape at sunset with vibrant colors",
"size": "1:1"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use a supported `size`: 1:1, 4:3, 3:4, 16:9, 9:16.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Hailuo 02 for prompt-optimized video generation and image-to-video workflows through the `https://api.poyo.ai/api/generate/submit` endpoint. Use...
---
name: poyo-hailuo-02
description: Use PoYo AI Hailuo 02 for prompt-optimized video generation and image-to-video workflows through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants standard or pro video jobs, optional prompt optimization, end-frame control, or PoYo payloads for `hailuo-02` and `hailuo-02-pro`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/hailuo-02", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Hailuo 02 Video Generation
Use this skill to submit and track PoYo jobs for the Hailuo 02 family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.duration` when the clip length matters.
- Use `input.resolution` when quality/cost tradeoffs matter.
## Model selection
### `hailuo-02`
Use for general generation with this model variant.
### `hailuo-02-pro`
Use for higher-quality or premium jobs.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_hailuo_02.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_hailuo_02.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_hailuo_02.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Hailuo 02 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/hailuo-02>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/hailuo-02.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `hailuo-02` — general generation with this model variant
- `hailuo-02-pro` — higher-quality or premium jobs
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired video
- `image_urls` (string[], optional) — Reference image URLs for image-to-video generation (required for image-to-video)
- `duration` (integer, optional) — Video duration in seconds (hailuo-02 only) options: 6, 10
- `resolution` (string, optional) — Output resolution (hailuo-02 image-to-video only) options: 512P, 768P
- `end_image_url` (string, optional) — Optional URL of the image to use as the last frame (image-to-video only)
- `prompt_optimizer` (boolean, optional) — Enable AI-powered prompt optimization
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "hailuo-02",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A llama and a raccoon battle in an intense table tennis match inside a roaring Olympic stadium",
"duration": 6,
"prompt_optimizer": true
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 1 item(s).
- Pick duration deliberately: available values are 6, 10.
- Use a supported `resolution`: 512P, 768P.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Grok Imagine Video for short text-to-video and image-to-video generation with motion-style controls through the `https://api.poyo.ai/api/generate...
---
name: poyo-grok-imagine
description: Use PoYo AI Grok Imagine Video for short text-to-video and image-to-video generation with motion-style controls through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants 6s or 10s clips, optional `mode` styling, or PoYo payloads for `grok-imagine`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/video-series/grok-imagine", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Grok Imagine Video Generation
Use this skill to submit and track PoYo jobs for the Grok Imagine Video family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.duration` when the clip length matters.
- Use `input.aspect_ratio` when the output surface matters.
## Model selection
### `grok-imagine`
Use for general generation with this model variant.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_grok_imagine.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_grok_imagine.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_grok_imagine.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Grok Imagine API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/grok-imagine>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/video-series/grok-imagine.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `grok-imagine` — general generation with this model variant
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired video motion
- `image_urls` (string[], optional) — Reference image URLs for image-to-video generation (required for image-to-video, max 1 image)
- `duration` (integer, optional) — The duration of the generated video in seconds options: 6, 10
- `aspect_ratio` (string, optional) — Video aspect ratio (text-to-video only) options: 1:1, 2:3, 3:2
- `mode` (string, optional) — Generation style mode options: fun, normal, spicy
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "grok-imagine",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A couple of doors open sequentially, revealing living rooms, kitchens, bedrooms, and offices with residents inside",
"aspect_ratio": "16:9",
"mode": "normal"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 1 item(s).
- Pick duration deliberately: available values are 6, 10.
- Match aspect ratio to the destination surface: 1:1, 2:3, 3:2.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI GPT Image 1.5 through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate or edit media with this model fam...
---
name: poyo-gpt-image-1-5
description: Use PoYo AI GPT Image 1.5 through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate or edit media with this model family, prepare PoYo-compatible payloads, submit jobs, or poll task status for `gpt-image-1.5`, `gpt-image-1.5-edit`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/gpt-image-1.5", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo GPT Image 1 5
Use this skill to submit and track PoYo jobs for the GPT Image 1.5 family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.size` to match the intended aspect ratio or canvas.
## Model selection
### `gpt-image-1.5`
Use for general generation with this model variant.
### `gpt-image-1.5-edit`
Use for editing or modifying supplied images.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_gpt_image_1_5.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_gpt_image_1_5.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_gpt_image_1_5.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo GPT Image 1 5 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/gpt-image-1.5>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/gpt-image-1.5.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `gpt-image-1.5` — general generation with this model variant
- `gpt-image-1.5-edit` — editing or modifying supplied images
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URLs (for image editing)
- `size` (string, optional) — Image size ratio options: 1:1, 2:3, 3:2
- `n` (integer, optional) — Number of images to generate options: 1, 2, 3, 4
- `mask_url` (string, optional) — Mask image URL for editing
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "gpt-image-1.5",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene mountain landscape at sunset with vibrant colors",
"size": "1:1",
"n": 1
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use `image_urls` only when the task genuinely depends on reference imagery.
- Use a supported `size`: 1:1, 2:3, 3:2.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI GPT-4o Image through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate or edit media with this model fami...
---
name: poyo-gpt-4o-image
description: Use PoYo AI GPT-4o Image through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate or edit media with this model family, prepare PoYo-compatible payloads, submit jobs, or poll task status for `gpt-4o-image`, `gpt-4o-image-edit`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/gpt-4o-image", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo GPT 4O Image
Use this skill to submit and track PoYo jobs for the GPT-4o Image family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.size` to match the intended aspect ratio or canvas.
## Model selection
### `gpt-4o-image`
Use for general generation with this model variant.
### `gpt-4o-image-edit`
Use for editing or modifying supplied images.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_gpt_4o_image.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_gpt_4o_image.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_gpt_4o_image.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo GPT 4O Image API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/gpt-4o-image>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/gpt-4o-image.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `gpt-4o-image` — general generation with this model variant
- `gpt-4o-image-edit` — editing or modifying supplied images
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Reference image URLs (for image editing)
- `size` (string, optional) — Image size ratio options: 1:1, 2:3, 3:2
- `n` (integer, optional) — Number of images to generate options: 1, 2, 3, 4
- `mask_url` (string, optional) — Mask image URL for editing
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "gpt-4o-image",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "A serene mountain landscape at sunset with vibrant colors",
"size": "1:1",
"n": 1
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Use `image_urls` only when the task genuinely depends on reference imagery.
- Use a supported `size`: 1:1, 2:3, 3:2.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI Flux 2 through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate or edit media with this model family, pr...
---
name: poyo-flux-2
description: Use PoYo AI Flux 2 through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate or edit media with this model family, prepare PoYo-compatible payloads, submit jobs, or poll task status for `flux-2-pro`, `flux-2-pro-edit`, `flux-2-flex`, `flux-2-flex-edit`.
metadata: {"openclaw": {"homepage": "https://docs.poyo.ai/api-manual/image-series/flux-2", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}
---
# PoYo Flux 2
Use this skill to submit and track PoYo jobs for the Flux 2 family.
## Quick workflow
1. Choose the right model id for the requested output.
2. Build the request body for `POST https://api.poyo.ai/api/generate/submit`.
3. Send Bearer-authenticated JSON with `Authorization: Bearer <POYO_API_KEY>`.
4. Save the returned `task_id`.
5. Poll unified task status or wait for `callback_url` notifications.
## Request rules
- Require top-level `model`.
- Keep prompts concrete and outcome-focused.
- Require `input.prompt` unless the user already supplied a full payload.
- Use `input.image_urls` only when the task needs reference or source images.
- Use `input.size` to match the intended aspect ratio or canvas.
- Use `input.resolution` when quality/cost tradeoffs matter.
## Model selection
### `flux-2-pro`
Use for higher-quality or premium jobs.
### `flux-2-pro-edit`
Use for editing or modifying supplied images.
### `flux-2-flex`
Use for general generation with this model variant.
### `flux-2-flex-edit`
Use for editing or modifying supplied images.
## Execution
- Read `references/api.md` for endpoint details, model ids, key fields, example payloads, and polling notes.
- Use `scripts/submit_flux_2.sh` to submit a raw JSON payload from the shell.
- If the user only needs a curl example, adapt the example from `references/api.md` instead of rewriting from scratch.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with this model family, include:
- chosen model id
- final payload or a concise parameter summary
- whether reference images are involved
- returned `task_id` if a request was actually submitted
- next step: poll status or wait for webhook
Notes:
Needs POYO_API_KEY from https://poyo.ai
PoYo.ai - Premium AI API Platform | Image, Video, Music & Chat APIs - 80% Cheaper
FILE:scripts/submit_flux_2.sh
#!/bin/sh
set -eu
api_key="-${1:-}"
if [ -z "$api_key" ]; then
echo "Usage: submit_flux_2.sh [api_key] [payload.json]" >&2
echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
exit 1
fi
payload="-${1:+}"
if [ -n "-" ]; then
payload="-"
fi
if [ -n "$payload" ] && [ "$payload" != "$api_key" ]; then
body=$(cat "$payload")
else
body=$(cat)
fi
curl -sS https://api.poyo.ai/api/generate/submit -H "Authorization: Bearer $api_key" -H 'Content-Type: application/json' -d "$body"
FILE:references/api.md
# PoYo Flux 2 API Reference
## Endpoint
- Submit task: `https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/flux-2>
- OpenAPI JSON: <https://docs.poyo.ai/api-manual/image-series/flux-2.json>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `flux-2-pro` — higher-quality or premium jobs
- `flux-2-pro-edit` — editing or modifying supplied images
- `flux-2-flex` — general generation with this model variant
- `flux-2-flex-edit` — editing or modifying supplied images
## Key input fields
- `model` (string, required) — choose one of the documented model ids
- `callback_url` (string, optional) — Webhook callback URL for result notifications
- `prompt` (string, required) — Generation prompt describing the desired output
- `image_urls` (string[], optional) — Input reference images (1-8 images). Required for edit models (flux-2-pro-edit, flux-2-flex-edit)
- `size` (string, required) — Image size ratio. Use 'auto' to automatically detect based on first input image options: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, auto
- `resolution` (string, required) — Output image resolution options: 1K, 2K
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{
"model": "flux-2-pro",
"callback_url": "https://your-domain.com/callback",
"input": {
"prompt": "The jar in image 1 is filled with capsules exactly same as image 2 with the exact logo",
"size": "1:1",
"resolution": "1K"
}
}'
```
## Polling notes
- PoYo returns a `task_id` after submission.
- If `callback_url` is present, PoYo sends a POST callback when the task reaches `finished` or `failed`.
- Whether or not callbacks are used, the same unified task status docs apply: <https://docs.poyo.ai/api-manual/task-management/status>.
## Practical guidance
- Respect the documented image count limit: `image_urls` allows up to 8 item(s).
- Use a supported `size`: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, auto.
- Use a supported `resolution`: 1K, 2K.
- Save the returned `task_id` immediately so status polling is straightforward.
Use PoYo AI's Sora 2 video generation models through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate videos, submit...
---
name: poyo-sora-2
description: Use PoYo AI's Sora 2 video generation models through the `https://api.poyo.ai/api/generate/submit` endpoint. Use when a user wants to generate videos, submit Sora 2 jobs, create text-to-video or image-to-video payloads, poll task status, or prepare PoYo-compatible requests for `sora-2` or `sora-2-private`.
metadata: {"openclaw":{"homepage":"https://docs.poyo.ai/api-manual/video-series/sora-2","requires":{"bins":["curl"],"env":["POYO_API_KEY"]},"primaryEnv":"POYO_API_KEY"}}
---
# PoYo Sora 2
Use this skill to submit and track Sora 2 video jobs on PoYo AI.
## Quick workflow
1. Choose the model:
- `sora-2` for standard Sora 2 generation
- `sora-2-private` for the private standard-quality variant
2. Build the request body.
3. Submit a POST request to `https://api.poyo.ai/api/generate/submit` with Bearer auth.
4. Save the returned `task_id`.
5. Poll unified task status until the job finishes, or rely on `callback_url` if the user has a webhook.
## Request rules
- Require `Authorization: Bearer <POYO_API_KEY>`.
- Require top-level `model`.
- Require `input.prompt`.
- Use `input.image_urls` only for image-to-video; PoYo docs say only one image is supported.
- Use `input.duration` when the user specifies clip length; valid values are `10` or `15`.
- Use `input.aspect_ratio` when needed; valid values are `16:9` or `9:16`.
- Optional stylistic control is available through `input.style` and `input.storyboard`.
## Model selection
### `sora-2`
Use for:
- standard text-to-video generation
- standard image-to-video generation
- default Sora 2 jobs on PoYo
### `sora-2-private`
Use for:
- private standard-quality variant when the user explicitly asks for it
- cases where the user's account/workflow expects the private model id
## Execution
- Read `references/api.md` for payload fields, examples, and polling notes.
- Use `scripts/submit_sora_2.sh` to submit a task from the shell when direct API execution is appropriate.
- If the user needs a raw curl example, adapt one from `references/api.md`.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with a Sora 2 task, include:
- chosen model
- whether the request is text-to-video or image-to-video
- final payload or summarized parameters
- returned `task_id` if the request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_sora_2.sh
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -lt 1 ]]; then
cat <<'EOF' >&2
Usage:
POYO_API_KEY=... submit_sora_2.sh <payload.json>
submit_sora_2.sh <api_key> <payload.json>
Examples:
POYO_API_KEY="$POYO_API_KEY" submit_sora_2.sh payload.json
submit_sora_2.sh "$POYO_API_KEY" payload.json
EOF
exit 1
fi
if [[ $# -eq 1 ]]; then
: "?POYO_API_KEY is required when api_key is not passed explicitly"
api_key="$POYO_API_KEY"
payload_file="$1"
else
api_key="$1"
payload_file="$2"
fi
curl -sS https://api.poyo.ai/api/generate/submit \
-H "Authorization: Bearer api_key" \
-H 'Content-Type: application/json' \
--data @"payload_file"
FILE:references/api.md
# PoYo Sora 2 API Reference
## Endpoint
- Submit task: `POST https://api.poyo.ai/api/generate/submit`
- Status query: <https://docs.poyo.ai/api-manual/task-management/status>
- Source docs: <https://docs.poyo.ai/api-manual/video-series/sora-2>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `sora-2`: standard quality video generation
- `sora-2-private`: private standard-quality variant
## Request schema
Top-level fields:
- `model` string, required
- `callback_url` string URI, optional
- `input` object
`input` fields:
- `prompt` string, required
- `image_urls` string[] URI, optional, for image-to-video only, max 1 image
- `duration` enum integer, optional: `10`, `15`
- `aspect_ratio` enum string, optional: `16:9`, `9:16`
- `style` enum string, optional: `thanksgiving`, `comic`, `news`, `selfie`, `nostalgic`, `anime`
- `storyboard` boolean, optional
Reference-image notes from PoYo docs:
- only one image is supported
- maximum file size: 10 MB
- supported formats: `.jpeg`, `.jpg`, `.png`, `.webp`
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "sora-2",
"input": {
"prompt": "A cinematic drone shot over a futuristic city at sunset",
"duration": 15,
"aspect_ratio": "16:9"
}
}'
```
## Image-to-video example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "sora-2",
"input": {
"prompt": "Animate this concept art into a smooth cinematic shot",
"image_urls": ["https://example.com/frame.png"],
"duration": 10,
"aspect_ratio": "16:9",
"style": "anime"
}
}'
```
## Typical response
```json
{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}
```
## Polling notes
- Save `task_id` immediately.
- If `callback_url` is provided, PoYo sends a POST callback when status becomes `finished` or `failed`.
- Even with callbacks, the user can still query unified task status directly.
## Error patterns
### 400
```json
{
"code": 400,
"error": {
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
```
### 401
```json
{
"code": 401,
"error": {
"message": "Unauthorized - Invalid API key",
"type": "authentication_error"
}
}
```
## Practical guidance
- Prefer `sora-2` unless the user explicitly requests the private variant.
- Use `10s` for quick tests and `15s` for fuller motion sequences.
- Use `16:9` for landscape scenes and `9:16` for mobile-first output.
- Use `storyboard: true` only when the user wants finer control over generation details.
- For sensitive images, do not upload them to public URLs casually before passing them in `image_urls`.
Nano Banana 2 image generation and advanced editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `nano-banana-2-new`, `nano-banan...
---
name: poyo-nano-banana-2
description: Nano Banana 2 image generation and advanced editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `nano-banana-2-new`, `nano-banana-2-new-edit`, multi-reference workflows, text-to-image, image-to-image, and 1K/2K/4K output.
metadata: {"openclaw":{"homepage":"https://docs.poyo.ai/api-manual/image-series/nano-banana-2-new","requires":{"bins":["curl"],"env":["POYO_API_KEY"]},"primaryEnv":"POYO_API_KEY"}}
---
# PoYo Nano Banana 2 Image Generation and Advanced Editing
Use this skill for Nano Banana 2 jobs on PoYo. It fits multi-reference generation, advanced editing, and higher-resolution output; read `references/frontend-notes.md` when product-side defaults matter.
## Use When
- The user explicitly asks for `Nano Banana 2`, `nano-banana-2-new`, or `nano-banana-2-new-edit`.
- The task depends on multiple reference images, image composition, or advanced edits.
- The workflow needs `1K`, `2K`, or `4K` output, or may use `google_search`.
## Model Selection
- `nano-banana-2-new`: text-to-image and image-to-image entry point.
- `nano-banana-2-new-edit`: use whenever the user explicitly wants to edit supplied images.
## Key Inputs
- `prompt` is required and limited to 1000 chars.
- `image_urls` supports up to 14 reference images.
- `size` supports `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`.
- `resolution` supports `1K`, `2K`, `4K` and defaults to `1K`.
- `google_search` is optional and only useful for real-world grounding.
## Execution
- Read `references/api.md` for payload fields, examples, and polling notes.
- Read `references/frontend-notes.md` when you need product-side defaults or want to mirror the current desktop frontend behavior.
- Use `scripts/submit_nano_banana_2.sh` to submit a task from the shell when direct API execution is appropriate.
- If the user needs a raw curl example, adapt one from `references/api.md`.
- After submission, report the `task_id` clearly so follow-up polling is easy.
## Output expectations
When helping with a Nano Banana 2 task, include:
- chosen model
- final payload or summarized parameters
- whether reference images are used
- returned `task_id` if the request was actually submitted
- next step: poll status or wait for webhook
FILE:scripts/submit_nano_banana_2.sh
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -lt 1 ]]; then
cat <<'EOF' >&2
Usage:
POYO_API_KEY=... submit_nano_banana_2.sh <payload.json>
submit_nano_banana_2.sh <api_key> <payload.json>
Examples:
POYO_API_KEY="$POYO_API_KEY" submit_nano_banana_2.sh payload.json
submit_nano_banana_2.sh "$POYO_API_KEY" payload.json
EOF
exit 1
fi
if [[ $# -eq 1 ]]; then
: "?POYO_API_KEY is required when api_key is not passed explicitly"
api_key="$POYO_API_KEY"
payload_file="$1"
else
api_key="$1"
payload_file="$2"
fi
curl -sS https://api.poyo.ai/api/generate/submit \
-H "Authorization: Bearer api_key" \
-H 'Content-Type: application/json' \
--data @"payload_file"
FILE:references/frontend-notes.md
# Frontend implementation notes from desktop `poyoapi`
These notes come from the local desktop frontend at `/Users/ronny/Desktop/poyoapi`.
## Relevant files
- `components/tool/nano-banana-2/index.tsx`
- `services/nanobananaService.ts`
- `data/models.json`
- `app/[locale]/models/nano-banana-2-api/ClientPage.tsx`
## What the frontend actually does
### Request flow
1. Upload user images first and obtain public URLs.
2. Submit `POST /api/generate/submit` with a JSON body.
3. Read `response.data.task_id`.
4. Poll `GET /api/generate/status/{task_id}` every 3 seconds until `finished` or `failed`.
### Supported models in the shared component
The frontend component knows about these model ids:
- `nano-banana-2-new`
- `nano-banana-2-new-edit`
- `nano-banana-2`
- `nano-banana-2-edit`
- `nano-banana`
- `nano-banana-edit`
For this skill, prefer the newer documented pair:
- `nano-banana-2-new`
- `nano-banana-2-new-edit`
### Frontend capability map
For the newer pair, the UI enables:
- `resolution`: yes
- `google_search`: yes
- `mask`: no
- reference images on edit model: yes
- max reference images for `nano-banana-2-new-edit`: 14
### Frontend file validation
Reference image uploads are validated as:
- max file size: 10 MB
- allowed MIME types: `image/jpeg`, `image/png`, `image/webp`
The component also contains mask-upload code for other model families, but Nano Banana 2 New currently has no mask capability enabled.
### Default UX choices in the frontend
- default prompt: `Generate image:Nano Banana 2 API is now available on Poyo.ai`
- default resolution: `1K`
- default aspect ratio: `16:9`
- status polling interval: 3 seconds
## Product/marketing copy used by the frontend
`data/models.json` describes Nano Banana Pro as:
- provider: Google
- tasks: Text to Image, Image to Image
- positioning: advanced Gemini image model with 4K output, stronger reasoning, real-time data integration, and multi-image composition
That copy is marketing-facing; use API docs as the source of truth for technical behavior.
## Practical guidance for skill users
- If a user provides local images, upload them somewhere reachable first, then pass URL(s) in `input.image_urls`.
- If the request is edit-oriented, require at least one source image.
- Polling every ~3 seconds matches the current frontend implementation.
- Prefer `16:9` for general demos because the PoYo frontend uses that default.
FILE:references/api.md
# PoYo Nano Banana 2 API Reference
## Endpoint
- Submit task: `POST https://api.poyo.ai/api/generate/submit`
- Status query: see PoYo unified task status docs at <https://docs.poyo.ai/api-manual/task-management/status>
- Model page: <https://poyo.ai/models/nano-banana-2>
- Source docs: <https://docs.poyo.ai/api-manual/image-series/nano-banana-2-new>
## Auth
Send:
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```
Get API keys from <https://poyo.ai/dashboard/api-key>.
Recommended skill env var:
- `POYO_API_KEY`
## Models
- `nano-banana-2-new`: text-to-image and image-to-image generation
- `nano-banana-2-new-edit`: advanced image editing
## Request schema
Top-level fields:
- `model` string, required
- `callback_url` string URI, optional
- `input` object
`input` fields:
- `prompt` string, required, max 1000 chars
- `image_urls` string[] URI, optional, supports up to 14 reference images
- `size` enum, optional: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9`
- `resolution` enum, optional: `1K`, `2K`, `4K` (default `1K`)
- `google_search` boolean, optional
## Submission example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "nano-banana-2-new",
"input": {
"prompt": "A cyberpunk street scene with neon signs and rain",
"size": "16:9",
"resolution": "2K"
}
}'
```
## Edit example
```bash
curl -sS https://api.poyo.ai/api/generate/submit \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "nano-banana-2-new-edit",
"input": {
"prompt": "Add colorful flowers in the foreground",
"image_urls": ["https://example.com/landscape.jpg"],
"size": "16:9",
"resolution": "2K"
}
}'
```
## Typical response
```json
{
"code": 200,
"data": {
"task_id": "task-unified-1757165031-uyujaw3d",
"status": "not_started",
"created_time": "2025-11-12T10:30:00"
}
}
```
## Polling notes
- Save `task_id` immediately.
- If `callback_url` is provided, PoYo sends a POST callback when status becomes `finished` or `failed`.
- Even with callbacks, the user can still query unified task status directly.
## Error patterns
### 400
```json
{
"code": 400,
"error": {
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}
```
### 401
```json
{
"code": 401,
"error": {
"message": "Unauthorized - Invalid API key",
"type": "authentication_error"
}
}
```
## Practical guidance
- Use `nano-banana-2-new-edit` whenever the user explicitly wants to modify a supplied image.
- Use `image_urls` only when the request truly depends on source/reference images.
- Prefer `2K` for a balance of quality and cost unless the user explicitly asks for `4K`.
- Prefer `16:9` for banners/screens, `1:1` for avatars/posts, and `9:16` for stories/mobile.
- If a user asks for factual real-world grounding, consider `google_search: true`.