OATDA Generate Image

v1.0.6

Generate images from text descriptions using AI models through OATDA's unified API. Triggers when the user wants to generate, create, or produce AI images, a...

0· 120·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for devcsde/oatda-generate-image.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "OATDA Generate Image" (devcsde/oatda-generate-image) from ClawHub.
Skill page: https://clawhub.ai/devcsde/oatda-generate-image
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: OATDA_API_KEY
Required binaries: curl, jq
Config paths to check: ~/.oatda/credentials.json
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install oatda-generate-image

ClawHub CLI

Package manager switcher

npx clawhub@latest install oatda-generate-image
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (image generation via OATDA) match the actual requirements: curl + jq for HTTP and JSON handling, an OATDA API key, and a credentials file for fallback. The listed model providers are plausible for a unified API proxy.
Instruction Scope
SKILL.md only instructs the agent to read the declared credentials file or env var, call OATDA endpoints to list models or generate images, and handle common HTTP errors. It does not direct reading unrelated paths or exfiltrating unrelated secrets.
Install Mechanism
Instruction-only skill with no install spec and no code files — lowest-risk install surface. It relies on standard system tools (curl, jq) already declared.
Credentials
Only one credential (OATDA_API_KEY) is required and declared as primary; the credentials file (~/.oatda/credentials.json) is explicitly listed and used as a fallback. No unrelated secrets or multiple service credentials are requested.
Persistence & Privilege
Skill is user-invocable, not always-enabled, and does not request persistent or elevated platform privileges.
Assessment
This skill appears coherent for calling OATDA's image API, but before installing: (1) verify you trust https://oatda.com and its published docs because your API key will be used there; (2) ensure your ~/.oatda/credentials.json is stored with appropriate filesystem permissions (it contains your API key); (3) prefer setting OATDA_API_KEY in the environment rather than leaving a long-lived key file if you have security concerns; (4) be aware that providing public URLs for file-type params exposes those files to the provider; and (5) confirm the endpoint domain matches official docs and that you’re comfortable with the service’s content and privacy policies.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎨 Clawdis
Binscurl, jq
EnvOATDA_API_KEY
Config~/.oatda/credentials.json
Primary envOATDA_API_KEY
latestvk972c1kr2akmf8yz226rgbmp9n845npy
120downloads
0stars
5versions
Updated 3w ago
v1.0.6
MIT-0

OATDA Image Generation

Generate images from text descriptions using AI models through OATDA's unified API.

API Key Resolution

All commands need the OATDA API key. Resolve it inline for each exec call:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}"

If the key is empty or null, tell the user to get one at https://oatda.com and configure it.

Security: Never print the full API key. Only verify existence or show first 8 chars.

Model Mapping

User saysProviderModel
dall-e, dall-e-3 (default)openaidall-e-3
gpt-imageopenaigpt-image-1
imagengoogleimagen-4.0-generate-001
seedreambytedanceseedream-4-5-251128
wanalibabawan2.6-t2i
minimax imageminimaximage-01
grok imagexaigrok-imagine-image

Default: openai / dall-e-3 if no model specified.

⚠️ Models update frequently. If a model ID fails, query oatda-list-models with ?type=image for the latest available models.

Discovering Model-Specific Parameters

Different models support different parameters (sizes, quality, styles, masks, watermarks, negative prompts, etc.). Query before generating:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=image" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.image_models[] | {id, supported_params}'

This returns each model's supported_params with type, allowed values, defaults, and descriptions. File-type parameters (like mask) require public URLs.

API Call

CRITICAL: The endpoint is /api/v1/llm/generate-image (NOT /api/v1/llm/image — that's vision analysis).

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-image" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "<PROVIDER>",
    "model": "<MODEL>",
    "prompt": "<IMAGE_DESCRIPTION>",
    "size": "1024x1024",
    "quality": "standard",
    "n": 1,
    "numberOfImages": 1
  }'

Common Parameters

  • prompt: Image description (1-4000 characters)
  • size: "1024x1024", "1792x1024", "1024x1792", "2K", "4K" (model-dependent)
  • quality: "standard", "hd", "auto", "low", "medium", "high"
  • n and numberOfImages: Number of images (1-10) — set both to same value
  • aspectRatio: "1:1", "16:9", "9:16", "3:2", "2:3", "4:3", "3:4"
  • style: "vivid" (dramatic) or "natural" (realistic)
  • background: "auto", "transparent", "opaque"
  • outputFormat: "png", "jpeg", "webp"
  • model_params: Model-specific key-value pairs (see discovery above)

model_params Examples

  • DALL-E 3: {"style": "vivid", "quality": "hd"}
  • GPT-Image-1: {"quality": "high", "background": "transparent", "outputFormat": "png"}
  • Imagen 4: {"sampleImageSize": "2K", "personGeneration": "allow_adult"}
  • Seedream: {"size": "4K", "watermark": false}
  • Wan 2.6: {"seed": "42", "negative_prompt": "blurry", "prompt_extend": true}

Response Format

{
  "success": true,
  "url": "https://cdn.example.com/generated-image.png",
  "all_images": [
    {"url": "https://cdn.example.com/image-1.png"},
    {"url": "https://cdn.example.com/image-2.png"}
  ],
  "revised_prompt": "A detailed cyberpunk cityscape at night..."
}

Show image URL(s) from all_images array (or url field if single). Mention revised_prompt if present.

Error Handling

HTTP StatusMeaningAction
401Invalid API keyTell user to check their key
400Bad request / prompt too longKeep prompt under 4000 chars
429Rate limitedWait 5 seconds and retry once
400 + content_policyContent policy violationAsk user to adjust description

Examples

DALL-E 3 HD

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-image" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "openai",
    "model": "dall-e-3",
    "prompt": "A cyberpunk city at night with neon lights reflecting on wet streets",
    "size": "1024x1024",
    "quality": "hd",
    "n": 1,
    "numberOfImages": 1,
    "model_params": {"style": "vivid"}
  }'

GPT-Image-1 Transparent PNG

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-image" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "openai",
    "model": "gpt-image-1",
    "prompt": "A sleek minimalist logo of a mountain, clean vector style",
    "n": 1,
    "model_params": {"quality": "high", "background": "transparent", "outputFormat": "png"}
  }'

Seedream 4K No Watermark

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/generate-image" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "bytedance",
    "model": "seedream-4-5-251128",
    "prompt": "A majestic dragon flying over a fantasy kingdom at sunset",
    "model_params": {"size": "4K", "watermark": false}
  }'

Notes

  • Endpoint is /api/v1/llm/generate-image — NOT /api/v1/llm/image (vision analysis)
  • Set both n and numberOfImages to the same value for compatibility
  • Image URLs may be temporary — recommend downloading promptly
  • Max prompt length: 4000 characters
  • Use oatda-vision-analysis for analyzing images
  • Use oatda-list-models for available image models
  • In Telegram/chat: Extract only the image URL from the response (jq -r '.url'), do NOT dump raw JSON. Present as clickable link or describe the image.

Comments

Loading comments...