agentsclimarketplace

Oatda generate image

Skill devcsde/oatda-openclaw-skills/skills/oatda-generate-image

OpenClaw skills for OATDA's unified LLM API gateway — text, vision, image, video, audio (TTS/STT/translation). 10+ providers, 100+ models, 1 API key.

Install
npx -y skills add devcsde/oatda-openclaw-skills --skill oatda-generate-image

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

AI image generation from text prompts through OATDA's unified gateway. Triggers when the user wants to generate, create, or produce AI images, artwork, illustrations, designs, mockups, concept art, logos, or marketing visuals using DALL-E 3, GPT-Image-1/2, Google Imagen, Bytedance Seedream, Alibaba Wan/Qwen-Image, MiniMax, xAI Grok Imagine, or ZAI GLM-Image via a single API key. Ideal for text-to-image, generative art, design assets, and visual content creation.

SKILL.md

7.1 KB, as published. Nobody here has run it

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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.