Skill instructions
ai-image-generator1017 Bytes
View saved version →
---
name: ai-image-generator
description: Create an image from a description. Use when the user asks to generate, draw, design or illustrate a picture, photo, logo, poster or artwork.
---
# Create an image
1. Write one clear prompt from the request: subject, setting, style, lighting, and any words that must appear in the image, in quotes.
2. Call `generate_image` with the `prompt`. Set `model` only when the user names one, and leave it out otherwise. Set `aspect_ratio` when the user asks for a shape (for example `16:9`, `9:16` or `1:1`) and `num_images` when they ask for several.
3. If the result is still generating, call `get_job` with the job id, and again until the image is ready. Never start the same image twice.
4. Reply with the image link, the model that made it and the prompt you sent.
To change the picture afterwards, send a new prompt, or call `edit_image` with the image link when the user wants the same picture altered. To choose a model, call `list_models` with `modality` set to `image`.
Referenced files: 1 — file references are metadata, not package contents.
ai-music-generator932 Bytes
View saved version →
---
name: ai-music-generator
description: Create music, a jingle, ambience or a sound effect from a description. Use when the user asks for a track, a song with lyrics, background music or a sound.
---
# Music and sound effects
1. Describe the sound in one prompt: the genre or kind of sound, the mood, the instruments, the tempo and the length.
2. Choose a model: call `list_models` with `endpoint` set to `/v1/audio/generations`, unless the user names one. Models differ in what they take, so read a model's notes with `get_model` when the request needs lyrics or an exact length.
3. Call `generate_audio` with the `model` and the `prompt`. Add `lyrics` for a song with words, and `duration` in seconds when the user gives a length.
4. If the result is still generating, call `get_job` with the job id, and again until the audio is ready. Never start the same track twice.
5. Reply with the audio link, the model and the length.
Referenced files: 1 — file references are metadata, not package contents.
ai-photo-editor829 Bytes
View saved version →
---
name: ai-photo-editor
description: Edit an existing image from a link. Use when the user supplies an image and wants something changed, added or removed, a new background or a new style.
---
# Edit an image
1. You need the image as an `https` link and an instruction that says what to change and what to keep.
2. Choose an image-edit model: call `list_models` with `endpoint` set to `/v1/images/edits`, unless the user names a model.
3. Call `edit_image` with the `model`, the instruction as `prompt` and the link as `image`.
4. If the result is still generating, call `get_job` with the job id, and again until the image is ready. Never start the same edit twice.
5. Reply with the link to the edited image and one line on what changed.
If the user has no link to the image, ask for one: the tool reads images from links.
Referenced files: 1 — file references are metadata, not package contents.
ai-video-generator960 Bytes
View saved version →
---
name: ai-video-generator
description: Create a short video from a description. Use when the user asks for a video, a clip, an animation or text-to-video.
---
# Create a video
1. Write one prompt that says what happens, the setting, the camera movement and the mood.
2. Call `generate_video` with the `prompt`. When the user names no model, follow what the `model` input's own description says to use. Set `duration` in seconds and `aspect_ratio` when the user gives them, and `generate_audio` to false when they want a silent clip.
3. A video takes minutes. The call returns a job id: call `get_job` with it, and again until the video is ready. Never start the same video twice.
4. Reply with the video link, the model, the length and the resolution.
To start from a picture instead, pass its link as `image`. To continue a finished video, pass `extend_from` with its `job_id`. To see the video models, call `list_models` with `modality` set to `video`.
Referenced files: 1 — file references are metadata, not package contents.
ai-voice-generator803 Bytes
View saved version →
---
name: ai-voice-generator
description: Turn text into natural speech. Use for voiceovers, narration, read-alouds, audio versions of an article and lines spoken in a chosen voice or language.
---
# Voiceover
1. Fix the exact text to speak. Ask only when it is missing.
2. Choose a speech model: call `list_models` with `endpoint` set to `/v1/audio/speech`, unless the user names a model.
3. Choose a voice: call `list_voices` with that `model`. Filter by `language`, written as its English name such as `Spanish`, or by `gender`, when the user asks for one. Pick a voice that fits the request.
4. Call `text_to_speech` with the `model`, the text as `input` and the `voice`.
5. Reply with the audio link, the voice and the model.
For a different voice, list the voices again and offer three by name.
Referenced files: 1 — file references are metadata, not package contents.
ask-a-model681 Bytes
View saved version →
---
name: ask-a-model
description: Send a prompt to a chosen text model and return its answer, or ask several models the same thing and compare. Use when the user names a model or wants a second opinion.
---
# Ask a model
1. Take the model from the request. To find one, call `list_models` with `category` set to `text`.
2. Call `chat` with the `model` and the question as `prompt`. Add `system` for instructions that should shape the answer.
3. For a comparison, call `chat` once for each model with the same `prompt`, then show the answers side by side under each model's name.
4. Report what each model said without rewriting it. Add a short comparison of your own when asked.
Referenced files: 1 — file references are metadata, not package contents.
audio-transcription863 Bytes
View saved version →
---
name: audio-transcription
description: Turn speech in an audio or video file into text. Use for transcripts, subtitles, meeting notes and interviews, with speaker labels when asked.
---
# Transcribe audio
1. Get the recording as an `https` link to an audio or video file.
2. Choose a model: call `list_models` with `category` set to `transcription`, unless the user names one.
3. Call `transcribe_audio` with the `model` and the link as `file_url`. Set `diarize` to true when the user wants each speaker labelled, and `smart_format` to true for punctuation, numbers and dates.
4. A long recording returns a job id: call `get_job` with it, and again until the transcript is ready.
5. Reply with the transcript. Offer a summary, action items or subtitles made from it.
If the user has a file and no link, ask for a link: the tool reads recordings from links.
Referenced files: 1 — file references are metadata, not package contents.
document-reader810 Bytes
View saved version →
---
name: document-reader
description: Read a PDF or a scanned page from a link and return its text as Markdown. Use for OCR, tables, forms, invoices and long documents.
---
# Read a document
1. Get the document as a public link to a PDF or an image.
2. Choose a document model: call `list_models` with `endpoint` set to `/v1/ocr`, unless the user names one.
3. Call `read_document` with the `model` and the link as `document`: a PDF goes in as `document_url` and an image as `image_url`. Set `pages` to read part of it. Pages count from zero, so `"0,2-4"` is the first page and the third to the fifth.
4. A long document returns a job id: call `get_job` with it, and again until the pages are ready.
5. Answer the user's question from the text, or return the Markdown when they asked for the content itself.
Referenced files: 1 — file references are metadata, not package contents.
get-started1.29 KB
View saved version →
---
name: get-started
description: Get started with EmpirioLabs AI in ChatGPT. Use right after the app is connected, or when the user asks what the app can do or how to begin.
---
# Get started with EmpirioLabs AI
EmpirioLabs AI runs image, video, speech, music, 3D, transcription, document and text models on the user's own EmpirioLabs account.
1. Say in two or three lines what the app can make: images and image edits, short videos, spoken audio in many voices, music and sound effects, 3D models from a picture, transcripts of recordings, Markdown from PDFs and scans, web search with sources, and answers from text models.
2. Offer a first thing to try and wait for the choice. Good first requests: an image from a one-line description, a short text read aloud, or a five-second video.
3. Run the request with the matching tool: `generate_image`, `text_to_speech` (choose a voice with `list_voices`), or `generate_video`.
4. When a result is still generating, call `get_job` with its job id, and again until the output is ready. Never start the same generation twice.
5. Put every output link in the reply so the user can open the file.
If the user asks which model to use, call `list_models` for that kind of output and suggest one. If a request is refused, repeat the reason the tool gave and say what to change.
Referenced files: 1 — file references are metadata, not package contents.
image-analysis541 Bytes
View saved version →
---
name: image-analysis
description: Answer a question about an image from a link. Use to describe a picture, read the text in it, compare details or check what it shows.
---
# Analyze an image
1. Get the image as an `https` link and the question to answer about it.
2. Call `analyze_image` with the link as `image_url` and the `question`. Leave `model` out unless the user names a vision model.
3. Reply with the answer. Quote any text read from the image exactly.
For a document with many pages or tables, call `read_document` instead.
Referenced files: 1 — file references are metadata, not package contents.
image-to-3d824 Bytes
View saved version →
---
name: image-to-3d
description: Create a 3D model from an image or a description. Use for game assets, product models, characters and objects to view or print in 3D.
---
# Image to 3D
1. Get the object's picture as an `https` link. One clear object on a plain background works best. Some models take a text description instead.
2. Choose a model: call `list_models` with `category` set to `3d`, unless the user names one, and read with `get_model` whether it takes an image, a text prompt or both.
3. Call `generate_3d` with the `model` and the picture as `image`, or the description as `prompt` on a model that takes text.
4. A 3D model takes minutes. Call `get_job` with the job id, and again until the file is ready. Never start the same model twice.
5. Reply with the link to the 3D file and the model that made it.
Referenced files: 1 — file references are metadata, not package contents.
image-to-video771 Bytes
View saved version →
---
name: image-to-video
description: Turn a still image into a moving video. Use when the user wants to animate a photo, a drawing, a product shot or an image the app just made.
---
# Animate an image
1. Get the image as an `https` link. An image this app generated already has one.
2. Describe the motion in one prompt: what moves, how the camera moves and what stays still.
3. Call `generate_video` with the `prompt` and the link as `image`. When the user names no model, follow what the `model` input's own description says to use.
4. Call `get_job` with the job id, and again until the video is ready. Never start the same video twice.
5. Reply with the video link and the model.
To make the picture first, call `generate_image`, then animate the link it returns.
Referenced files: 1 — file references are metadata, not package contents.
model-picker803 Bytes
View saved version →
---
name: model-picker
description: Find the right model for a task and compare models by what they can do. Use when the user asks which model to use, what is available or how two models differ.
---
# Pick a model
1. Ask what the task is only when it is unclear: the kind of output (text, image, video, audio or 3D) and what matters most, such as speed, quality or a feature.
2. Call `list_models` with `modality` or `category` set for that kind of output, or with `query` for a name or a feature.
3. Call `get_model` for the two or three closest matches and compare what the user asked about: inputs, limits, supported options and notes.
4. Recommend one model in a sentence, with the reason, and name one alternative.
To read a documentation page, call `search` and then `fetch` with the result id.
Referenced files: 1 — file references are metadata, not package contents.
story-to-video1.04 KB
View saved version →
---
name: story-to-video
description: Turn an idea into a short narrated video. Writes a script, makes a still for the opening shot, animates it and records the narration. Use for explainers, ads, stories and social posts.
---
# Story to video
1. Write a script of two to four sentences and one visual description of the opening shot. Show both and adjust them if the user asks.
2. Make the opening still: call `generate_image` with the visual description as `prompt`.
3. Animate it: call `generate_video` with the still's link as `image` and a prompt for the motion. Call `get_job` with the job id, and again until the clip is ready.
4. Record the narration: choose a speech model with `list_models` (set `endpoint` to `/v1/audio/speech`), choose a voice with `list_voices`, and call `text_to_speech` with the script as `input`.
5. Reply with the three links in order, the still, the clip and the narration, each with one line on what it is.
Run the steps one after another and never the same step twice. When a step is refused, stop and say what the tool reported.
Referenced files: 1 — file references are metadata, not package contents.
web-search570 Bytes
View saved version →
---
name: web-search
description: Search the web and answer with sources. Use when the user wants current information, links to read or a short answer with citations.
---
# Search the web
1. Choose a search model: call `list_models` with `endpoint` set to `/v1/search`, unless the user names one.
2. For a list of pages, call `web_search` with the `model` and the `query`. For one direct answer with citations, call `web_answer` with a model that serves `/v1/answer`.
3. Reply with the answer and the title and link of every source used. Say when the sources disagree.
Referenced files: 1 — file references are metadata, not package contents.