@acedatacloud/skills 2026.406.0

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.
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: google-search
3
+ description: Search the web using Google via AceDataCloud API. Use when searching for web pages, images, news, maps, local places, or videos. Supports localization, time filtering, and pagination. Returns structured results with titles, snippets, URLs, and rich data.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN environment variable. Optionally pair with mcp-serp for tool-use.
9
+ ---
10
+
11
+ # Google Search (SERP)
12
+
13
+ Search the web through AceDataCloud's Google SERP API.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/serp/google \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"query": "latest AI news", "type": "search"}'
24
+ ```
25
+
26
+ ## Search Types
27
+
28
+ | Type | Description | Returns |
29
+ |------|-------------|---------|
30
+ | `search` | Web search (default) | Organic results, knowledge graph, rich snippets |
31
+ | `images` | Image search | Image URLs, titles, sources |
32
+ | `news` | News articles | Headlines, sources, publish dates |
33
+ | `maps` | Map results | Locations, coordinates |
34
+ | `places` | Local businesses/places | Name, address, rating, reviews |
35
+ | `videos` | Video results | Video URLs, thumbnails, duration |
36
+
37
+ ## Parameters
38
+
39
+ ```json
40
+ POST /serp/google
41
+ {
42
+ "query": "your search query",
43
+ "type": "search",
44
+ "country": "us",
45
+ "language": "en",
46
+ "range": "qdr:w",
47
+ "number": 10,
48
+ "page": 1
49
+ }
50
+ ```
51
+
52
+ | Parameter | Type | Description |
53
+ |-----------|------|-------------|
54
+ | `query` | string | Search query (required) |
55
+ | `type` | string | One of: search, images, news, maps, places, videos |
56
+ | `country` | string | Country code (e.g., "us", "uk", "cn", "jp") |
57
+ | `language` | string | Language code (e.g., "en", "zh", "ja") |
58
+ | `range` | string | Time filter (see below) |
59
+ | `number` | int | Number of results per page |
60
+ | `page` | int | Page number for pagination |
61
+
62
+ ## Time Range Options
63
+
64
+ | Value | Period |
65
+ |-------|--------|
66
+ | `qdr:h` | Past hour |
67
+ | `qdr:d` | Past 24 hours |
68
+ | `qdr:w` | Past week |
69
+ | `qdr:m` | Past month |
70
+ | `qdr:y` | Past year |
71
+
72
+ ## Response Structure
73
+
74
+ Web search returns structured data including:
75
+ - `organic_results`: Main search results with title, link, snippet
76
+ - `knowledge_graph`: Entity information panel (when available)
77
+ - `related_searches`: Related query suggestions
78
+
79
+ ## Gotchas
80
+
81
+ - Default search type is `"search"` (web). Always specify `type` for non-web searches
82
+ - Country and language codes affect result localization significantly
83
+ - `number` controls results per page, not total results — use `page` for pagination
84
+ - Time range (`range`) only applies to web search and news, not images or places
85
+ - Image search returns thumbnail and full-size URLs — use full-size for downloads
86
+ - Places search works best with location-specific queries (e.g., "restaurants near Times Square")
87
+
88
+ > **MCP:** `pip install mcp-serp` | Hosted: `https://serp.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: hailuo-video
3
+ description: Generate AI videos with Hailuo (MiniMax) via AceDataCloud API. Use when creating videos from text descriptions or animating images into video. Supports text-to-video and image-to-video with director mode for precise control.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN environment variable.
9
+ ---
10
+
11
+ # Hailuo Video Generation
12
+
13
+ Generate AI videos through AceDataCloud's Hailuo (MiniMax) API.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/hailuo/videos \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"action": "generate", "prompt": "a dolphin jumping through ocean waves at golden hour", "model": "minimax-t2v"}'
24
+ ```
25
+
26
+ > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /hailuo/tasks` with `{"task_id": "..."}`.
27
+ ## Models
28
+
29
+ | Model | Type | Best For |
30
+ |-------|------|----------|
31
+ | `minimax-t2v` | Text-to-Video | Creating video from text description |
32
+ | `minimax-i2v` | Image-to-Video | Animating a still image |
33
+ | `minimax-i2v-director` | Image-to-Video (Director) | Precise control over animation from image |
34
+
35
+ ## Workflows
36
+
37
+ ### 1. Text-to-Video
38
+
39
+ ```json
40
+ POST /hailuo/videos
41
+ {
42
+ "action": "generate",
43
+ "prompt": "a time-lapse of flowers blooming in a meadow",
44
+ "model": "minimax-t2v"
45
+ }
46
+ ```
47
+
48
+ ### 2. Image-to-Video
49
+
50
+ Animate a still image into a video clip.
51
+
52
+ ```json
53
+ POST /hailuo/videos
54
+ {
55
+ "action": "generate",
56
+ "prompt": "gentle wind blows through the scene",
57
+ "model": "minimax-i2v",
58
+ "first_image_url": "https://example.com/landscape.jpg"
59
+ }
60
+ ```
61
+
62
+ ### 3. Image-to-Video (Director Mode)
63
+
64
+ More precise control over the animation.
65
+
66
+ ```json
67
+ POST /hailuo/videos
68
+ {
69
+ "action": "generate",
70
+ "prompt": "camera slowly zooms in while leaves fall gently",
71
+ "model": "minimax-i2v-director",
72
+ "first_image_url": "https://example.com/scene.jpg"
73
+ }
74
+ ```
75
+
76
+ ## Parameters
77
+
78
+ | Parameter | Required | Values | Description |
79
+ |-----------|----------|--------|-------------|
80
+ | `action` | Yes | `"generate"` | Action type |
81
+ | `prompt` | Yes | string | Video description |
82
+ | `model` | Yes | `"minimax-t2v"`, `"minimax-i2v"`, `"minimax-i2v-director"` | Model |
83
+ | `first_image_url` | For i2v | string | Source image URL (required for image-to-video) |
84
+ | `callback_url` | No | string | Async callback URL |
85
+
86
+ ## Gotchas
87
+
88
+ - `first_image_url` is **required** for `minimax-i2v` and `minimax-i2v-director` models
89
+ - Director mode (`minimax-i2v-director`) provides finer camera/motion control than standard i2v
90
+ - The `action` field currently only supports `"generate"` — no extend or edit
91
+ - Flat pricing per generation regardless of model
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: kling-video
3
+ description: Generate AI videos with Kuaishou Kling via AceDataCloud API. Use when creating videos from text or images, extending existing videos, or applying motion control. Supports text-to-video, image-to-video, extend, and motion generation with multiple models and quality modes.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN environment variable.
9
+ ---
10
+
11
+ # Kling Video Generation
12
+
13
+ Generate AI videos through AceDataCloud's Kuaishou Kling API.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/kling/videos \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"action": "text2video", "prompt": "a cat playing piano on a rooftop at sunset", "model": "kling-v2-5-turbo", "mode": "std", "duration": 5}'
24
+ ```
25
+
26
+ > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /kling/tasks` with `{"task_id": "..."}`.
27
+ ## Models
28
+
29
+ | Model | Quality | Best For |
30
+ |-------|---------|----------|
31
+ | `kling-v1` | Standard | Basic generation, lowest cost |
32
+ | `kling-v1-6` | Improved | Better quality than v1 |
33
+ | `kling-v2-master` | High | High-quality output |
34
+ | `kling-v2-1-master` | High | Improved v2 |
35
+ | `kling-v2-5-turbo` | High + Fast | Best speed/quality trade-off (recommended) |
36
+ | `kling-video-o1` | Premium | Highest quality |
37
+
38
+ ## Quality Modes
39
+
40
+ | Mode | Speed | Cost | Use For |
41
+ |------|-------|------|---------|
42
+ | `std` (Standard) | Slower | Lower | Draft/preview |
43
+ | `pro` (Professional) | Faster | Higher | Final output |
44
+
45
+ ## Workflows
46
+
47
+ ### 1. Text-to-Video
48
+
49
+ ```json
50
+ POST /kling/videos
51
+ {
52
+ "action": "text2video",
53
+ "prompt": "a futuristic city with flying cars",
54
+ "model": "kling-v2-5-turbo",
55
+ "mode": "std",
56
+ "duration": 5,
57
+ "aspect_ratio": "16:9"
58
+ }
59
+ ```
60
+
61
+ ### 2. Image-to-Video
62
+
63
+ Animate a still image. Optionally specify an ending frame.
64
+
65
+ ```json
66
+ POST /kling/videos
67
+ {
68
+ "action": "image2video",
69
+ "prompt": "the scene slowly comes alive with movement",
70
+ "start_image_url": "https://example.com/scene.jpg",
71
+ "end_image_url": "https://example.com/end-scene.jpg",
72
+ "model": "kling-v2-5-turbo",
73
+ "mode": "pro"
74
+ }
75
+ ```
76
+
77
+ ### 3. Extend Video
78
+
79
+ Continue an existing video with additional seconds.
80
+
81
+ ```json
82
+ POST /kling/videos
83
+ {
84
+ "action": "extend",
85
+ "video_id": "existing-video-id",
86
+ "prompt": "the camera pulls back to reveal the full landscape",
87
+ "model": "kling-v2-5-turbo"
88
+ }
89
+ ```
90
+
91
+ ### 4. Motion Control
92
+
93
+ Apply precise camera/motion control from an image + reference video.
94
+
95
+ ```json
96
+ POST /kling/motion
97
+ {
98
+ "image_url": "https://example.com/subject.jpg",
99
+ "video_url": "https://example.com/motion-reference.mp4"
100
+ }
101
+ ```
102
+
103
+ ## Parameters
104
+
105
+ | Parameter | Values | Description |
106
+ |-----------|--------|-------------|
107
+ | `action` | `"text2video"`, `"image2video"`, `"extend"` | Generation mode |
108
+ | `model` | See models table | Model to use |
109
+ | `mode` | `"std"`, `"pro"` | Quality mode |
110
+ | `duration` | `5`, `10` | Duration in seconds |
111
+ | `aspect_ratio` | `"16:9"`, `"9:16"`, `"1:1"` | Video aspect ratio |
112
+ | `cfg_scale` | 0–1 | Prompt relevance strength |
113
+ | `negative_prompt` | string | What to avoid in the video |
114
+ | `camera_control` | object | Camera movement parameters |
115
+ | `element_list` | array | Reference subjects from the element library (each item has `element_id`). Combined with `video_list`, total reference images + subjects ≤ 7 (or ≤ 4 if a reference video is included) |
116
+ | `video_list` | array | Reference video(s) via `video_url` (MP4/MOV, 3–10s, ≤200MB, max 1 video). Each item has `video_url`, `refer_type` (`"feature"` or `"base"`), and optional `keep_original_sound` |
117
+ | `callback_url` | string | Async callback URL |
118
+
119
+ ## Gotchas
120
+
121
+ - `duration` only supports `5` or `10` seconds
122
+ - `end_image_url` is only for `image2video` action — it defines the last frame
123
+ - Motion control (`/kling/motion`) is a separate endpoint from video generation
124
+ - `pro` mode costs roughly 2x `std` mode but generates faster with better quality
125
+ - Task states use `"succeed"` (not "succeeded") — check for this value when polling
126
+ - `negative_prompt` helps avoid unwanted elements (e.g., "blurry, low quality, text")
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: luma-video
3
+ description: Generate AI videos with Luma Dream Machine via AceDataCloud API. Use when creating videos from text prompts, generating videos from reference images, extending existing videos, or any video generation task with Luma. Supports text-to-video, image-to-video, and video extension.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN environment variable. Optionally pair with mcp-luma for tool-use.
9
+ ---
10
+
11
+ # Luma Video Generation
12
+
13
+ Generate AI videos through AceDataCloud's Luma Dream Machine API.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/luma/videos \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"prompt": "a drone flying over a mountain lake at sunrise", "action": "generate", "callback_url": "https://api.acedata.cloud/health"}'
24
+ ```
25
+
26
+ > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /luma/tasks` with `{"task_id": "..."}`.
27
+
28
+ ## Workflows
29
+
30
+ ### 1. Text-to-Video
31
+
32
+ Generate video purely from a text description.
33
+
34
+ ```json
35
+ POST /luma/videos
36
+ {
37
+ "prompt": "a timelapse of flowers blooming in a garden",
38
+ "action": "generate",
39
+ "aspect_ratio": "16:9",
40
+ "loop": false,
41
+ "enhancement": true
42
+ }
43
+ ```
44
+
45
+ ### 2. Image-to-Video
46
+
47
+ Use start and/or end reference images to guide generation.
48
+
49
+ ```json
50
+ POST /luma/videos
51
+ {
52
+ "prompt": "the scene comes alive with gentle wind",
53
+ "action": "generate",
54
+ "start_image_url": "https://example.com/scene.jpg",
55
+ "end_image_url": "https://example.com/scene-end.jpg",
56
+ "aspect_ratio": "16:9"
57
+ }
58
+ ```
59
+
60
+ ### 3. Extend a Video
61
+
62
+ Continue an existing video with a new prompt.
63
+
64
+ ```json
65
+ POST /luma/videos
66
+ {
67
+ "action": "extend",
68
+ "video_id": "existing-video-id",
69
+ "prompt": "the camera continues forward through the forest"
70
+ }
71
+ ```
72
+
73
+ ## Aspect Ratios
74
+
75
+ | Ratio | Use Case |
76
+ |-------|----------|
77
+ | `16:9` | Landscape (default) — YouTube, TV |
78
+ | `9:16` | Portrait — TikTok, Instagram Stories |
79
+ | `1:1` | Square — Social media |
80
+ | `4:3` | Classic — Presentations |
81
+ | `21:9` | Ultra-wide — Cinematic |
82
+
83
+ ## Parameters
84
+
85
+ | Parameter | Type | Default | Description |
86
+ |-----------|------|---------|-------------|
87
+ | `prompt` | string | — | Text description of the video (required) |
88
+ | `action` | string | `"generate"` | `"generate"` or `"extend"` |
89
+ | `aspect_ratio` | string | `"16:9"` | Video aspect ratio |
90
+ | `loop` | bool | `false` | Create seamless loop |
91
+ | `enhancement` | bool | `true` | Enhance prompt for better results |
92
+ | `start_image_url` | string | — | Reference image for first frame |
93
+ | `end_image_url` | string | — | Reference image for last frame |
94
+ | `video_id` | string | — | ID of video to extend (alternative to `video_url`) |
95
+ | `video_url` | string | — | URL of video to extend (alternative to `video_id`) |
96
+ | `timeout` | number | — | Timeout in seconds for the API to return data |
97
+ | `callback_url` | string | — | Webhook URL for async notifications |
98
+
99
+ ## Gotchas
100
+
101
+ - `enhancement: true` (default) improves prompt quality but may alter your intent — set to `false` for literal prompts
102
+ - Start/end image URLs must be publicly accessible
103
+ - `loop: true` creates seamless looping video — good for backgrounds and social media
104
+ - Extend requires either `video_id` or `video_url` from a previously completed generation
105
+ - Video generation takes 1–5 minutes depending on complexity
106
+ - Both start and end images are optional — you can use just one for partial guidance
107
+
108
+ > **MCP:** `pip install mcp-luma` | Hosted: `https://luma.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
@@ -0,0 +1,170 @@
1
+ ---
2
+ name: midjourney-image
3
+ description: Generate, edit, blend, upscale, and describe images with Midjourney via AceDataCloud API. Use when creating AI images from text prompts, editing existing images, generating 2x2 grids, upscaling, creating variations, blending multiple images, reverse-prompting from images, or generating video from images. Supports versions 5.2 through 8.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN environment variable. Optionally pair with mcp-midjourney for tool-use.
9
+ ---
10
+
11
+ # Midjourney Image Generation
12
+
13
+ Generate and manipulate AI images through AceDataCloud's Midjourney API.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## Quick Start — Generate an Image
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/midjourney/imagine \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"prompt": "a futuristic city at sunset, cyberpunk style --ar 16:9", "callback_url": "https://api.acedata.cloud/health"}'
24
+ ```
25
+
26
+ > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /midjourney/tasks` with `{"task_id": "..."}`.
27
+
28
+ ## Generation Modes
29
+
30
+ | Mode | Speed | Cost | Best For |
31
+ |------|-------|------|----------|
32
+ | `fast` | Fast | Standard | Most tasks (default) |
33
+ | `relax` | Slow | Cheaper | Batch generation |
34
+ | `turbo` | Fastest | Premium | Time-sensitive work |
35
+
36
+ ## Midjourney Versions
37
+
38
+ | Version | Notes |
39
+ |---------|-------|
40
+ | `8` | Latest, best quality |
41
+ | `7` | Great quality, fast |
42
+ | `6.1` | Stable, well-tested |
43
+ | `6` | Previous generation |
44
+ | `5.2` | Legacy |
45
+
46
+ ## Core Workflows
47
+
48
+ ### 1. Generate Images (Imagine)
49
+
50
+ Creates a 2x2 grid of 4 image variations.
51
+
52
+ ```json
53
+ POST /midjourney/imagine
54
+ {
55
+ "prompt": "a serene mountain lake at dawn, photorealistic --ar 16:9 --v 7",
56
+ "mode": "fast",
57
+ "translation": true,
58
+ "split_images": true
59
+ }
60
+ ```
61
+
62
+ Set `translation: true` to auto-translate non-English prompts. Set `split_images: true` to get individual images besides the grid.
63
+
64
+ ### 2. Upscale / Vary / Pan / Zoom
65
+
66
+ After generating a grid, use transform actions on individual images:
67
+
68
+ ```json
69
+ POST /midjourney/imagine
70
+ {
71
+ "action": "upscale1",
72
+ "image_id": "grid-image-id"
73
+ }
74
+ ```
75
+
76
+ **Available actions:**
77
+ - `upscale1`–`upscale4`: Upscale individual quadrant
78
+ - `variation1`–`variation4`: Create variation of a quadrant
79
+ - `variation_subtle` / `variation_strong`: Subtle/strong variation of full image
80
+ - `reroll`: Re-generate with same prompt
81
+ - `zoom_out_2x` / `zoom_out_1_5x`: Zoom out
82
+ - `pan_left` / `pan_right` / `pan_up` / `pan_down`: Extend canvas
83
+
84
+ ### 3. Edit an Image
85
+
86
+ Modify an existing image using a text prompt, optionally with a mask.
87
+
88
+ ```json
89
+ POST /midjourney/edits
90
+ {
91
+ "image_url": "https://example.com/photo.jpg",
92
+ "prompt": "add a rainbow in the sky",
93
+ "mode": "fast"
94
+ }
95
+ ```
96
+
97
+ ### 4. Blend Images
98
+
99
+ Combine 2–5 images into a new composition.
100
+
101
+ ```json
102
+ POST /midjourney/imagine
103
+ {
104
+ "action": "blend",
105
+ "image_urls": [
106
+ "https://example.com/image1.jpg",
107
+ "https://example.com/image2.jpg"
108
+ ]
109
+ }
110
+ ```
111
+
112
+ ### 5. Describe an Image (Reverse Prompt)
113
+
114
+ Get AI-generated text descriptions of an image (returns 4 options).
115
+
116
+ ```json
117
+ POST /midjourney/describe
118
+ {"image_url": "https://example.com/photo.jpg"}
119
+ ```
120
+
121
+ ### 6. Generate Video from Image
122
+
123
+ Create a video with a reference image and text prompt.
124
+
125
+ ```json
126
+ POST /midjourney/videos
127
+ {
128
+ "image_url": "https://example.com/photo.jpg",
129
+ "prompt": "the city comes alive with moving traffic",
130
+ "resolution": "720p"
131
+ }
132
+ ```
133
+
134
+ ## Prompt Parameters
135
+
136
+ Append these to your prompt text:
137
+
138
+ | Parameter | Example | Description |
139
+ |-----------|---------|-------------|
140
+ | `--ar` | `--ar 16:9` | Aspect ratio |
141
+ | `--v` | `--v 7` | Midjourney version |
142
+ | `--q` | `--q 2` | Quality (0.25, 0.5, 1, 2) |
143
+ | `--s` | `--s 750` | Stylization (0–1000) |
144
+ | `--c` | `--c 50` | Chaos/variety (0–100) |
145
+ | `--no` | `--no text, watermark` | Negative prompt |
146
+ | `--seed` | `--seed 12345` | Reproducible generation |
147
+
148
+ ## API-Level Parameters (Billing Impact)
149
+
150
+ These top-level fields on `POST /midjourney/imagine` affect billing and are separate from inline prompt parameters:
151
+
152
+ | Parameter | Type | Description |
153
+ |-----------|------|-------------|
154
+ | `version` | string | Midjourney version (`"8"`, `"7"`, `"6.1"`, etc.) — used for billing calculation |
155
+ | `hd` | boolean | Enable HD 2K resolution (V8 only) — costs 4× GPU time |
156
+ | `quality` | string | Quality level: `".25"`, `".5"`, `"1"`, `"2"`, `"4"` — quality `"4"` is V8 only and costs 16× GPU time |
157
+ | `style_reference` | boolean | Whether prompt uses `--sref` style references (V8: costs 4× GPU time) |
158
+ | `moodboard` | boolean | Whether prompt uses moodboard image references (V8: costs 4× GPU time) |
159
+
160
+ ## Gotchas
161
+
162
+ - Imagine returns a **2x2 grid** — use upscale/variation actions to work with individual images
163
+ - Use `split_images: true` to also receive individual cropped images alongside the grid
164
+ - Prompt parameters (`--ar`, `--v`, etc.) go **inside the prompt string**, not as separate fields
165
+ - `translation: true` auto-translates Chinese/other languages to English before sending to Midjourney
166
+ - Video generation requires a reference `image_url` — it cannot generate from text alone
167
+ - Available transform actions depend on the image — check `available_actions` in the response
168
+ - Get the seed with `POST /midjourney/seed` using the image_id for reproducible results
169
+
170
+ > **MCP:** `pip install mcp-midjourney` | Hosted: `https://midjourney.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: nano-banana-image
3
+ description: Generate and edit AI images with NanoBanana (Gemini-based) via AceDataCloud API. Use when creating images from text prompts or editing existing images with text instructions. Supports nano-banana, nano-banana-2, and nano-banana-pro models.
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: acedatacloud
7
+ version: "1.0"
8
+ compatibility: Requires ACEDATACLOUD_API_TOKEN environment variable. Optionally pair with mcp-nano-banana for tool-use.
9
+ ---
10
+
11
+ # NanoBanana Image Generation
12
+
13
+ Generate and edit AI images through AceDataCloud's NanoBanana (Gemini-based) API.
14
+
15
+ > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
16
+
17
+ ## Quick Start
18
+
19
+ ```bash
20
+ curl -X POST https://api.acedata.cloud/nano-banana/images \
21
+ -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
+ -H "Content-Type: application/json" \
23
+ -d '{"action": "generate", "prompt": "a watercolor painting of a French countryside village", "model": "nano-banana"}'
24
+ ```
25
+
26
+ > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /nano-banana/tasks` with `{"id": "..."}`.
27
+ ## Models
28
+
29
+ | Model | Best For |
30
+ |-------|----------|
31
+ | `nano-banana` | Standard image generation (default) |
32
+ | `nano-banana-2` | Improved quality, second generation |
33
+ | `nano-banana-pro` | Highest quality, most detailed output |
34
+
35
+ ## Workflows
36
+
37
+ ### 1. Text-to-Image
38
+
39
+ ```json
40
+ POST /nano-banana/images
41
+ {
42
+ "action": "generate",
43
+ "prompt": "a photorealistic macro shot of morning dew on a spider web",
44
+ "model": "nano-banana-pro",
45
+ "aspect_ratio": "16:9",
46
+ "resolution": "2K"
47
+ }
48
+ ```
49
+
50
+ ### 2. Image Editing
51
+
52
+ Edit existing images using natural language instructions — no mask needed. Pass source images via `image_urls`.
53
+
54
+ ```json
55
+ POST /nano-banana/images
56
+ {
57
+ "action": "edit",
58
+ "prompt": "change the background to a starry night sky",
59
+ "image_urls": ["https://example.com/photo.jpg"],
60
+ "model": "nano-banana"
61
+ }
62
+ ```
63
+
64
+ ## Parameters
65
+
66
+ | Parameter | Values | Description |
67
+ |-----------|--------|-------------|
68
+ | `action` | `"generate"`, `"edit"` | Operation mode |
69
+ | `model` | `"nano-banana"`, `"nano-banana-2"`, `"nano-banana-pro"` | Model to use |
70
+ | `prompt` | string | Image description or editing instruction |
71
+ | `image_urls` | array of strings | Source image URLs (required for edit action) |
72
+ | `aspect_ratio` | `"1:1"`, `"3:2"`, `"2:3"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"` | Output aspect ratio |
73
+ | `resolution` | `"1K"`, `"2K"`, `"4K"` | Output resolution (1K=1024px, 2K=2048px, 4K=4096px) |
74
+ | `callback_url` | string | Async callback URL; returns a task ID immediately |
75
+
76
+ ## Gotchas
77
+
78
+ - Editing does **NOT** require a mask — just describe the change in natural language
79
+ - Editing uses the same `/nano-banana/images` endpoint with `action: "edit"` and `image_urls` array (not a separate `/edit` path)
80
+ - `nano-banana-2` is the second-generation model; `nano-banana-pro` offers the highest quality
81
+ - Task polling uses `id` (not `task_id`) in the `/nano-banana/tasks` request body
82
+ - Aspect ratio uses colon notation (e.g., `"16:9"`) not pixel dimensions
83
+ - The Gemini-based model excels at understanding complex, conversational editing instructions
84
+
85
+ > **MCP:** `pip install mcp-nano-banana` | Hosted: `https://nano-banana.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)