Draw Image
Texte-vers-image via l'API OpenAI images, puis télécharge le résultat sur l'hébergement public gofile.io
Tested · Didn't pass
Ce que fait
Enveloppe un script Python qui appelle un point d'extrémité /v1/images/generations compatible OpenAI (modèle par défaut gpt-image-1-mini) avec une invite, une taille, une qualité et un nombre, enregistre le PNG localement, puis le télécharge sur l'hôte de fichiers anonyme gofile.io et ne renvoie que l'URL publique de la page de téléchargement. Destiné à se déclencher lorsqu'un utilisateur demande de dessiner, peindre, générer ou créer une image. C'est une compétence d'exemple du projet AI-SNS agent-network plutôt qu'une compétence Claude Code, et nécessite votre propre clé API OpenAI malgré la documentation affirmant qu'une clé est intégrée.
Rapport de test
Installé la copie openclaw dans un HOME temporaire et exécuté la commande documentée verbatim ; elle a renvoyé {"ok": false, "error": "API HTTP 401: Incorrect API key provided: your_api_key"}, réfutant l'affirmation de SKILL.md selon laquelle une clé est intégrée et qu'aucune configuration n'est nécessaire. Je n'avais pas de clé d'image OpenAI, je n'ai donc pas pu générer d'image et n'ai produit aucun artefact de compétence à comparer à une base de référence (outputMeasured=false). En lisant scripts/draw.py, j'ai trouvé ssl.CERT_NONE sur les trois appels réseau et l'ai confirmé par exécution : pointer --api-base vers https://self-signed.badssl.com avec --api-key sk-secret-test a complété le handshake TLS et a renvoyé un corps HTTP 404, tandis qu'un simple urllib.request.urlopen contre le même hôte a levé CERTIFICATE_VERIFY_FAILED — donc la clé Bearer est envoyée sur un canal non vérifié. Phrases de déclenchement jugées : "Draw me a picture of a cow in a spacesuit" (charger), "Generate an image of a futuristic city at sunset" (charger), "Can you paint a watercolor landscape for my blog header ?" (charger), "Create a flowchart diagram of our auth flow" (ne pas charger — c'est mermaid/SVG, pas texte-vers-image), "Resize and compress these PNGs in ./assets" (ne pas charger — manipulation, pas génération) ; 5/5 correct.
Testé le: 2026-07-31 · Claude Code 2.x (agent harness)
Installation
git clone --depth 1 https://github.com/ai-sns/ai-sns.git /tmp/draw-image-src mkdir -p ~/.claude/skills cp -R /tmp/draw-image-src/adapters/openclaw/skill_example/draw-image ~/.claude/skills/draw-image # Requires python3 (stdlib only) AND your own OpenAI API key with image-generation access. # SKILL.md claims "The script has a built-in API base and key, so no extra configuration is # needed" -- this is FALSE. The shipped DEFAULT_API_KEY is the literal string "your_api_key" # and OpenAI returns HTTP 401. You must set: export DRAW_IMAGE_API_KEY=sk-... # (optionally export DRAW_IMAGE_API_BASE=https://your-openai-compatible-host/v1) # SECURITY, read before using: scripts/draw.py sets ssl.CERT_NONE + check_hostname=False on # every request, including the one carrying "Authorization: Bearer <your key>". Verified by # execution: it completed a handshake with https://self-signed.badssl.com while stock # urllib refused the same host with CERTIFICATE_VERIFY_FAILED. Your API key is MITM-able. # Also: every generated image is unconditionally uploaded to gofile.io (anonymous public file # sharing) with no opt-out flag, and only that public URL is returned. # Run: python3 ~/.claude/skills/draw-image/scripts/draw.py --prompt "a cow" --size 1024x1024 # (SKILL.md's own examples hardcode C:\Users\IDD\.openclaw\workspace\skills\... and will not run.) # Two other copies exist in the repo: adapters/hermes/skill_example/ai-sns/draw-image (identical # script, ~/.hermes paths) and aisns_backend/skills/draw-image (NOT Claude Code compatible -- # non-standard frontmatter with runner/skill_key, and its draw.py reads creds from a local # SQLite DB belonging to the AI-SNS backend).
Commandes et exemples de prompts
/draw-imageTexte-vers-image via l'API OpenAI images, puis télécharge le résultat sur l'hébergement public gofile.io
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Draw a sunset over a mountain lakeGenerate an illustration of a robot baristaCreate an image of a futuristic city skyline