Overview
Generate brand-new images from scratch based on text descriptions (no base image); reference images only supplement style/atmosphere rather than serving as the main content. Covers 2 types of scenarios:
- General text-to-image / multi-image reference fusion: creative concept art, illustrations, style mashups, fast image generation; supports
image_listmulti-image reference fusion; the default channel that is divergent/diverse/fast. - Commercial-grade high-quality generation: promotional visuals/covers, e-commerce posters/marketing banners, product scene images, text rendering (infographic/poster text), photorealistic/movie still style; deep text understanding, accurate text rendering, high resolution;Does not support
image_list。
Text-to-image with descriptions of people/characters/portraits (character covers, concept art, illustrations containing people) is handled by this tool. Does not handle: editing/modifying based on existing images, reference-image-driven creation (where the reference image is the main source of content),reference image already providedhigh-fidelity portraits/pet photos/ID photos, poster layout design, style transfer, video generation, image search, image quality enhancement/super-resolution.
API Mapping
| Scenario | Backend API |
|---|---|
| General text-to-image / multi-image reference fusion | image_gummy_generate |
| Commercial-grade high-quality generation | image_praline_create_v2 |
| Commercial-grade fallback | image_praline_create_2(fallback channel when praline_v2 fails, parameters compatible) |
| Nougat high quality (explicitly specified externally) | image_nougat_create(does not support image_list / output_format; quality defaults internally in the API to Medium and is not exposed externally) |
model mapping:
auto(default) / not passed → decided according to routing rulesgummy→image_gummy_generatepraline_pro→image_praline_create_v2nougat→image_nougat_create(triggered only when explicitly specified externally; not recognized by routing)- When a call with a specified model fails, retries continue according to the fallback chain
Dependencies
- meitu-cli:
>=2.0.6 - Credentials:CONFIG AKSK →
meitu tools update; EXEC AKSK → run command (see rootCONFIG.md) - Environment variables:
MEITU_OPENAPI_TOOL_TASK_MODE=command
Core Workflow
Preflight → Execute → Deliver
Preflight
meitu --version≥ 2.0.6meitu auth verify --json- Confirm registry contains
text-to-image - Resolve output_dir:
openclaw.yaml→./output/;else →~/.openclaw/workspace/visual/output/text-to-image/
Execute
Trigger signals / routing rules
Decision order:
- Has
image_list→ forceimage_gummy_generate(praline does not support image_list) - No
image_list: commercial/promotional/text rendering/photorealistic movie style →image_praline_create_v2; otherwise →image_gummy_generate(default)
| Scenario | Judgment keywords | Routing |
|---|---|---|
| Has reference image (multi-image fusion) | refer to this image, fusion, multiple images | image_gummy_generate |
| Commercial-grade / promotional / e-commerce | promotional image, cover, e-commerce, marketing, Banner, commercial-grade, high quality, product scene image | image_praline_create_v2 |
| Text rendering | with text, add title, infographic, poster text | image_praline_create_v2 |
| Photorealistic / movie style | photorealistic, realistic feel, light and shadow texture, movie still | image_praline_create_v2 |
| Creative / illustration / concept | draw an image, concept art, illustration, creative, style mashup | image_gummy_generate |
| General / no special requirements | Other | image_gummy_generate(Default) |
Parameter Definitions
Common Parameters:
| Parameter | Type | Required | Range | Default Value | Description |
|---|---|---|---|---|---|
prompt |
STRING | Yes | -- | -- | Image description. Missing → follow-up question |
size |
STRING | No | 1K / 2K / 4K | 2K | Output resolution |
image_gummy_generate Additional Parameters:
| Parameter | Type | Required | Default Value | Description |
|---|---|---|---|---|
image_list |
ARRAY[STRING] | No | -- | Array of reference image URLs, for multi-image fusion/style reference; not passed for pure text-to-image |
image_praline_create_v2 Additional Parameters:
| Parameter | Type | Required | Range | Default Value | Description |
|---|---|---|---|---|---|
ratio |
STRING | No | 1:1 / 2:3 / 3:2 / 3:4 / 4:3 / 4:5 / 5:4 / 9:16 / 16:9 / 21:9 | -- | Output aspect ratio; special ratios must be written at the end of prompt ending with Aspect ratio x:y |
image_praline_create_2(fallback):
| Parameter | Type | Required | Range | Default Value | Description |
|---|---|---|---|---|---|
ratio |
STRING | No | auto / 1:1 / 2:3 / 3:2 / 3:4 / 4:3 / 4:5 / 5:4 / 9:16 / 16:9 / 21:9 | auto | Output aspect ratio |
image_nougat_create(explicit model):
| Parameter | Type | Required | Range | Default Value | Description |
|---|---|---|---|---|---|
ratio |
STRING | No | 1:1 / 2:3 / 3:2 / 3:4 / 4:3 / 4:5 / 5:4 / 9:16 / 16:9 / 21:9 | -- | Only effective when model=nougat ; does not support image_list |
Description:image_list and ratio are mutually exclusive;output_format is internally fixed by combo-tool to jpeg, not exposed externally.
Tool Invocation
Creative / Default:
meitu text-to-image \
--skill_name skill_text-to-image \
--prompt "{image_description}" \
--size 2K \
--json --download-dir {output_dir}
Multi-image reference fusion:
meitu text-to-image \
--skill_name skill_text-to-image \
--prompt "{image_description}" \
--model gummy \
--image_list "{ref1}" --image_list "{ref2}" \
--json --download-dir {output_dir}
Commercial-grade high quality (with aspect ratio):
meitu text-to-image \
--skill_name skill_text-to-image \
--prompt "{image_description} Aspect ratio 16:9" \
--model praline_pro \
--ratio 16:9 --size 2K \
--json --download-dir {output_dir}
Error Fallback
| Scenario | Handling |
|---|---|
prompt missing |
Prompt "Please describe the image content you want to generate" |
size invalid value |
Fall back to 2K |
image_list partially invalid |
Silently filter out invalid items |
image_list all invalid + has prompt |
Degrade to pure text-to-image, go through image_gummy_generate |
| Has reference images but routed to praline | Force switch to image_gummy_generate, inform "commercial-grade mode does not support reference images" |
image_praline_create_v2 failed |
Fall back to image_praline_create_2 retry |
image_praline_create_2 failed |
Fall back to image_gummy_generate retry |
image_gummy_generate failed |
Retry once, return error if still fails |
| Content compliance interception | Directly return compliance prompt, no retry, no fallback |
Deliver
Parse --json:
ok: true→downloaded_files[0].saved_pathas local imageok: false→ outputcode+hint
Write to disk:mv {file} {output_dir}/{YYYY-MM-DD}_{descriptive-name}.jpg
Output
- Format: JPEG (internally fixed by combo-tool)
- Naming:
{YYYY-MM-DD}_{descriptive-name}.jpg - Location: project →
./output/; one-off →~/.openclaw/workspace/visual/output/text-to-image/
Baseline Task ID
See root directory references/task-id-baseline.md in text-to-image entry.