@acedatacloud/skills 2026.620.0 → 2026.620.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acedatacloud/skills",
3
- "version": "2026.620.0",
3
+ "version": "2026.620.1",
4
4
  "description": "Agent Skills for AceDataCloud AI services — music, image, video generation, LLM chat, web search. Compatible with Claude Code, GitHub Copilot, Gemini CLI, OpenAI Codex, and 30+ AI coding agents.",
5
5
  "keywords": [
6
6
  "agent-skills",
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: cos-upload
3
+ description: Upload a local file to AceData Cloud CDN and get back a public URL. Use whenever you produce a local artifact (image, audio, video, doc) that another API needs as a URL, or that you need to return/persist (e.g. feed a generated image into an image-to-video API, or publish a finished video).
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_PLATFORM_TOKEN (see _shared/authentication.md). Some runtimes instead provide a bundled uploader — prefer that when present.
9
+ ---
10
+
11
+ # Upload a file → AceData CDN URL
12
+
13
+ Turn a local file into a public `https://cdn.acedata.cloud/...` URL.
14
+
15
+ ## Upload (multipart, synchronous)
16
+
17
+ ```bash
18
+ curl -s -X POST https://platform.acedata.cloud/api/v1/files/ \
19
+ -H "Authorization: Bearer $ACEDATACLOUD_PLATFORM_TOKEN" \
20
+ -F "file=@/path/to/video.mp4"
21
+ ```
22
+
23
+ Response:
24
+
25
+ ```json
26
+ {"file_url": "https://cdn.acedata.cloud/7f849b80b9.mp4"}
27
+ ```
28
+
29
+ → use `file_url`. One file per request (loop for several).
30
+
31
+ ## When to use
32
+
33
+ - **Feed a generated asset into another API by URL** — e.g. upload a gpt-image-2 still, then pass its URL to `seedance` / `kling` image-to-video.
34
+ - **Publish/return a finished artifact** (final video, cover image).
35
+ - **Persist intermediate artifacts** so a later run can re-download and continue.
36
+
37
+ ## Notes
38
+
39
+ - Auth uses the **platform token** (`ACEDATACLOUD_PLATFORM_TOKEN`), not the per-service API token — the files endpoint is on `platform.acedata.cloud`, not `api.acedata.cloud`.
40
+ - If your runtime ships a bundled uploader (e.g. a worker that owns the storage creds), prefer it — it avoids handling the platform token directly.
41
+ - The returned URL is CDN-served and stable; safe to store and re-download later.
@@ -1,99 +1,83 @@
1
1
  ---
2
2
  name: fish-audio
3
- description: Generate AI audio and synthesize voices with Fish Audio via AceDataCloud API. Use when creating text-to-speech audio, synthesizing voices, or generating audio content. Supports multiple voice models and TTS capabilities.
3
+ description: Generate AI text-to-speech audio and clone voices with Fish Audio via AceDataCloud API. Use when creating voiceover/narration audio (TTS), synthesizing speech, or cloning a reference voice. Chinese + multilingual.
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: acedatacloud
7
- version: "1.0"
7
+ version: "1.1"
8
8
  compatibility: Requires ACEDATACLOUD_API_TOKEN in .env file (see _shared/authentication.md).
9
9
  ---
10
10
 
11
- # Fish Audio — Voice & Audio Synthesis
11
+ # Fish Audio — Text-to-Speech & Voice Cloning
12
12
 
13
- Generate AI audio and synthesize voices through AceDataCloud's Fish Audio API.
13
+ Generate narration / voiceover and clone voices through AceDataCloud's Fish Audio API.
14
14
 
15
15
  > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
16
 
17
- ## Quick Start
17
+ ## Quick Start (TTS — synchronous, ~3s)
18
18
 
19
19
  ```bash
20
20
  curl -X POST https://api.acedata.cloud/fish/audios \
21
21
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
22
  -H "Content-Type: application/json" \
23
- -d '{"prompt": "Hello, this is a demonstration of AI voice synthesis."}'
23
+ -d '{"action":"speech","model":"fish-tts","voice_id":"543e4181d81b4ef6874b0e8fbdf27c78","prompt":"你好,欢迎使用 AceData Cloud。"}'
24
24
  ```
25
25
 
26
- > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /fish/tasks` with `{"id": "..."}`.
26
+ Response (synchronous no polling needed for `speech`):
27
+
28
+ ```json
29
+ {"success": true, "data": [{"audio_url": "https://platform.r2.fish.audio/task/....mp3"}]}
30
+ ```
31
+
32
+ → download `data[0].audio_url`. `voice_id` is **required**. A good default Mandarin
33
+ news-anchor voice is **`543e4181d81b4ef6874b0e8fbdf27c78`**.
27
34
 
28
35
  ## Endpoints
29
36
 
30
37
  | Endpoint | Purpose |
31
38
  |----------|---------|
32
- | `POST /fish/audios` | Generate audio from text or parameters |
33
- | `POST /fish/voices` | Voice synthesis and cloning |
34
- | `POST /fish/tasks` | Poll task status |
39
+ | `POST /fish/audios` | TTS (`action: "speech"`) synchronous |
40
+ | `POST /fish/voices` | List / register (clone) voices |
35
41
 
36
42
  ## Workflows
37
43
 
38
- ### 1. Text-to-Speech
44
+ ### 1. Text-to-Speech (the common case)
39
45
 
40
46
  ```json
41
47
  POST /fish/audios
42
48
  {
43
- "prompt": "The quick brown fox jumps over the lazy dog.",
44
- "voice_id": "default"
49
+ "action": "speech",
50
+ "model": "fish-tts",
51
+ "voice_id": "543e4181d81b4ef6874b0e8fbdf27c78",
52
+ "prompt": "你的旁白文本。"
45
53
  }
46
54
  ```
47
55
 
48
- ### 2. Voice Cloning Register a Voice
49
-
50
- Upload a reference audio to create a cloneable voice.
56
+ ### 2. Clone a voice from a reference sample
51
57
 
52
58
  ```json
53
59
  POST /fish/voices
54
60
  {
55
61
  "voice_url": "https://example.com/reference-voice.mp3",
56
62
  "title": "My Custom Voice",
57
- "description": "Clear, neutral-toned speaker for TTS",
58
- "image_url": "https://example.com/avatar.jpg"
59
- }
60
- ```
61
-
62
- ### 3. Text-to-Speech with Cloned Voice
63
-
64
- ```json
65
- POST /fish/audios
66
- {
67
- "prompt": "Welcome to our platform.",
68
- "voice_id": "<voice_id from POST /fish/voices>"
63
+ "description": "Clear, neutral-toned speaker"
69
64
  }
70
65
  ```
71
66
 
72
- ## Parameters
73
-
74
- ### `/fish/audios`
75
-
76
- | Parameter | Type | Description |
77
- |-----------|------|-------------|
78
- | `prompt` | string | Text to synthesize into speech |
79
- | `voice_id` | string | Voice model or cloned voice ID to use |
80
- | `model` | string | TTS model (e.g., `"speech-1.5"`, `"speech-1.5-hd"`) |
81
- | `action` | string | Operation type (e.g., `"generate"`) |
82
- | `callback_url` | string | Webhook URL for async delivery |
67
+ Then pass the returned id as `voice_id` in workflow 1.
83
68
 
84
- ### `/fish/voices`
69
+ ## Parameters — `/fish/audios`
85
70
 
86
- | Parameter | Type | Description |
87
- |-----------|------|-------------|
88
- | `voice_url` | string | Reference audio URL for voice cloning |
89
- | `title` | string | Display title for the cloned voice |
90
- | `description` | string | Description of the voice |
91
- | `image_url` | string | Cover image URL for the voice |
92
- | `callback_url` | string | Webhook URL for async delivery |
71
+ | Parameter | Type | Required | Description |
72
+ |-----------|------|----------|-------------|
73
+ | `action` | string | yes | Use `"speech"` for TTS |
74
+ | `model` | string | yes | `"fish-tts"` |
75
+ | `voice_id` | string | yes | A Fish reference/cloned voice id (default Mandarin: `543e4181d81b4ef6874b0e8fbdf27c78`) |
76
+ | `prompt` | string | yes | Text to synthesize |
93
77
 
94
78
  ## Gotchas
95
79
 
96
- - Pricing is based on **byte count** of the generated audio
97
- - Voice cloning requires a clear reference audio sample
98
- - Text-to-speech supports multiple languages automatically
99
- - Use the `/fish/voices` endpoint to register a reference audio and receive a `voice_id` for TTS
80
+ - **TTS (`action:"speech"`) is synchronous** the response carries `data[0].audio_url`; do NOT poll `/fish/tasks` for it.
81
+ - `voice_id` is **required** a bare `{"prompt": "..."}` returns `400 voice_id is required when action is speech`.
82
+ - `model` must be `"fish-tts"` for speech (NOT `speech-1.5`); sending a different model returns `400 model is invalid if action is speech`.
83
+ - Pricing is based on the **byte count** of the generated audio. Multilingual is automatic.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: gpt-image-2
3
+ description: Generate and EDIT images with OpenAI gpt-image-2 via AceDataCloud API. Use when you need high-fidelity images from a prompt, or to edit/composite existing images (e.g. fuse a real logo/QR/screenshot into a scene, keep characters consistent, restyle). Strong at legible text and faithful editing.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN in .env file (see _shared/authentication.md).
9
+ ---
10
+
11
+ # gpt-image-2 — Image Generation & Editing
12
+
13
+ OpenAI `gpt-image-2` through AceDataCloud. Two endpoints, both **synchronous** (return image url(s) directly). Its standout is **editing**: feed real images (logos, QR codes, product shots, screenshots) and it composites/restyles them faithfully — great for on-brand video assets and character consistency.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## 1. Generate (text → image)
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/openai/images/generations \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"model":"gpt-image-2","prompt":"a clean dark tech hero background with a glowing API hub, lots of negative space","size":"1792x1024","n":1}'
24
+ ```
25
+
26
+ ## 2. Edit / composite (images + prompt → image) ← the powerful one
27
+
28
+ Multipart. Pass one or more source images via repeated `image[]` (local files with
29
+ `@`, or URLs). Use it to **fuse a real logo/QR into a generated scene**, keep a subject
30
+ consistent across scenes, or restyle a screenshot.
31
+
32
+ ```bash
33
+ curl -X POST https://api.acedata.cloud/openai/images/edits \
34
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
35
+ -F "model=gpt-image-2" \
36
+ -F "prompt=Place this logo crisply in the top-left on the tech background; keep the logo's exact colors and shape." \
37
+ -F "image[]=@background.png" \
38
+ -F "image[]=@logo.png" \
39
+ -F "size=1792x1024" \
40
+ -F "n=1"
41
+ ```
42
+
43
+ Response (both endpoints): `{"data":[{"url":"https://...png"}]}` → download `data[0].url`.
44
+
45
+ ## Sizes
46
+
47
+ `size` is `WxH` (a preset) or `"auto"`. Common presets:
48
+
49
+ | Aspect | Sizes |
50
+ |---|---|
51
+ | 16:9 | `1792x1024` (HD), `2048x1152`, `3840x2160` (4K) |
52
+ | 9:16 | `1024x1792`, `1152x2048`, `2160x3840` |
53
+ | 1:1 | `1024x1024`, `2048x2048`, `4096x4096` |
54
+
55
+ (Omit `size` or use `"auto"` to let the model pick. Invalid sizes 400.)
56
+
57
+ ## Tips
58
+
59
+ - **Editing keeps things faithful** — to place a logo/QR exactly, pass it as one of the
60
+ `image[]` and say "keep its exact colors/shape, do not redraw it".
61
+ - For **character/scene consistency** across video beats, generate one hero image, then
62
+ `edits` it per beat instead of regenerating from scratch.
63
+ - Text in images renders legibly — good for titles/labels you don't want to overlay in HTML.
64
+ - Both endpoints are synchronous; no `/tasks` polling.