Overview

What the skill does

The Ask AI skill is a text file you upload once. It teaches Ask AI when to reach for FreshGen’s image and video tools, which model fits a given request, and the money and retry rules that keep it from double-billing you. It also adds eleven slash commands — /image, /variations, /adset, /video, /animate, /status, /credits, /models, /save, /brand, and /help — plus a BRAND block you fill in once so every generation defaults to your colors, style, and voice without you repeating yourself in every prompt.

Two ways to install

One skill (simplest)

  1. Download SKILL.md from docs/ask-ai-skill/ in the repo.
  2. Edit the BRAND block near the bottom of the file.
  3. Upload it in Ask AI’s Skills panel.

Ask AI shows one slash-menu entry for the whole skill. Pick that chip, then type the command after it — for example, /FreshGen /adset summer roofing promo.

One skill per command

  1. Upload each SKILL.md file from docs/ask-ai-skill/commands/ as its own skill — 11 files.
  2. Name each skill after its command, so the menu reads /image, /adset, /video, and so on.
  3. Edit the BRAND block in the five generating commands — image, variations, adset, video, animate. It’s the same block in each; paste the same text into all five.

Both are built from the same master file, so the rules behind them are identical either way.

Install in Ask AI

  1. Open Ask AI, then go to Skills

    Inside your GoHighLevel sub-account.

  2. Upload the file

    The single SKILL.md, or all 11 files if you chose the per-command install.

  3. Name it

    Whatever you type here is what shows up in the slash menu.

  4. Type / in the chat

    Your new skill (or commands) will be listed there.

Naming. Ask AI may auto-name an uploaded skill from its content — you might see “Image Generation Assistant” instead of gpt-image-2. Every file leads with its intended name to steer that, but if a skill still shows a generic name, open Manage Skills and rename it to the command (image, adset, gpt-image-2…). The name is what shows in the slash menu.

Quick start

Paste one of these to start

Three ready-to-use prompts. Copy one, paste it into Ask AI, and adjust the wording for your own business.

Example · /image
/image a roofing crew mid-install on a suburban home at golden hour, new architectural shingles catching warm low sunlight, wide shot with clear blue sky, photorealistic, confident and trustworthy mood, no text --ar 16:9 --model nano-banana-pro

What you’ll get: One photorealistic hero image sized for a website hero or Facebook ad, for about $0.09 on nano-banana-pro.

Example · /adset
/adset a fall roofing promo, crew on a ladder against a clear sky, warm afternoon light, photorealistic, confident mood, no text --sizes 1:1,9:16,16:9

What you’ll get: The same concept rendered at three sizes — square, vertical, widescreen — as a plain size-to-link list, about $0.12 total on the default model (three images at about $0.04 each).

Example · /video
/video slow forward dolly through a bright open-concept kitchen into a sunlit living room, hardwood floors, staged modern furniture, late-afternoon light, smooth cinematic camera movement, warm and inviting mood, no text --ar 16:9

What you’ll get: A 5-second walkthrough clip, quoted at about $0.13 before it starts on the default model, ready in 2 to 5 minutes.

Command reference

All eleven commands

Each command behaves the same whether you’re using the single combined skill or the one-skill-per-command install — only how you trigger it changes. Commands also work when phrased naturally, e.g. “make me an ad set for my new taco truck” runs the /adset procedure below.

/image

Generate one AI image from a text description.

Signature

/image <prompt> [--model id] [--ar 16:9 / 1:1 / 9:16 / 4:5] [--res 1K / 2K / 4K] [--ref <url>]

Flags

FlagWhat it doesDefault
--modelWhich image model renders itgpt-image-2
--arAspect ratio (shape) of the image1:1
--resResolution tier, on models that support tiers1K
--refA reference image URL to match (repeat up to 4 times)none

Example

/image
/image a roofing crew mid-install on a suburban home at golden hour, new architectural shingles catching warm low sunlight, wide shot with clear blue sky, photorealistic, confident and trustworthy mood, no text --ar 16:9 --model nano-banana-pro

What happens

  1. The assistant builds a full prompt from your description and turns your flags into tool parameters.
  2. It fills in sensible defaults for anything you didn’t set, then calls the image tool.
  3. It returns the image as both a picture and a plain link, with the model and cost stated alongside it.

Cost: About $0.04 per image on the default model, gpt-image-2 — up to about $0.09 on nano-banana-pro, as low as about $0.02 on nano-banana.

/variations

Get several genuinely different takes on one concept in a single request.

Signature

/variations <prompt> [--n 3]

Flags

FlagWhat it doesDefault
--nHow many variations to generate (asks first past 4)3

Example

/variations
/variations a cold brew coffee can on crushed ice, studio lighting, no text --n 3

What happens

  1. The assistant generates one image per variation, keeping the model, aspect ratio, and resolution the same across all of them.
  2. It reworks the wording of your prompt slightly before every single call — it never resends your exact prompt.
  3. Each variation comes back with its own cost.

Why you might see the same image twice

An identical prompt, model, aspect ratio, resolution, and reference images sent again within about 90 seconds is treated as a repeat request and silently returns the same image instead of billing you again. That’s deliberate — it protects your account from being double-charged if a request gets sent twice by accident. It also means resending the same wording is the one thing guaranteed to never get you a different result, which is why the assistant changes the wording of each variation on its own instead of just repeating your prompt.

Cost: Same per-image pricing as /image, charged once per variation — three variations on the default model runs about $0.12 total.

/adset

Render one concept across multiple ad and social sizes, so the set matches.

Signature

/adset <concept> [--sizes 1:1,9:16,16:9]

Flags

FlagWhat it doesDefault
--sizesComma-separated aspect ratios to generate (asks first past 4)1:1,9:16,16:9

Example

/adset
/adset a fall roofing promo, crew on a ladder against a clear sky, warm afternoon light, photorealistic, no text --sizes 1:1,9:16,16:9

What happens

  1. The assistant generates one image per size listed in --sizes, reusing your same subject, lighting, and style wording every time.
  2. Only the framing changes between sizes — never the subject or style — so the set reads as one campaign.
  3. Requesting more than 4 sizes in one go needs your OK first.
  4. It returns a plain size-to-link list once every size is done.

Cost: Same per-image pricing as /image, charged once per size — the default three sizes on gpt-image-2 runs about $0.12 total.

/video

Start a short AI video render from a text description.

Signature

/video <prompt> [--from <imageUrl>] [--model id] [--sec 5 / 10] [--ar 16:9 / 9:16 / 1:1]

Flags

FlagWhat it doesDefault
--fromA starting image URL to animate, instead of an auto-generated framenone
--modelWhich video model renders the clipkling-2-1-std
--secClip length in seconds5
--arAspect ratio16:9

Example

/video
/video slow forward dolly through a bright open-concept kitchen into a sunlit living room, hardwood floors, staged modern furniture, late-afternoon light, smooth cinematic camera movement, warm and inviting mood, no text --ar 16:9

What happens

  1. The assistant states the estimated cost before calling anything.
  2. It starts the render — this only kicks off the job, not the finished clip.
  3. Video takes 2 to 5 minutes. Ask again later and the assistant will check once.
  4. Finished clips auto-save to Media Storage when your deployment has that connection configured.

Cost: Quoted before it starts; from about $0.13 for a 5-second clip on the default model, kling-2-1-std.

/animate

Turn an existing image into a short video by describing the motion.

Signature

/animate <imageUrl> <motion description>

Example

/animate
/animate https://example.com/storefront-photo.jpg slow push-in, gentle camera drift left to right, soft afternoon light

What happens

  1. The assistant uses your exact image as the starting frame — it does not generate a new one.
  2. It states the estimated cost before starting, the same as /video.
  3. Video takes 2 to 5 minutes, and finished clips auto-save to Media Storage when configured.

Cost: Quoted before it starts; from about $0.13 for a 5-second clip on the default model, the same pricing as /video.

/status

Check whether a generation has finished.

Signature

/status <taskId>

Example

/status
/status 8f3a2c91-4b7e-4a10-9c2d-7e6f5a1b0d33

What happens

  1. The assistant checks the task ID once.
  2. If it’s finished, you get the media link and the cost.
  3. If it’s still rendering, the assistant tells you to ask again in a minute rather than checking again itself.

Cost: Free — checking status doesn’t generate anything.

/credits

Check your Kie.ai balance.

Signature

/credits

Example

/credits
/credits

What happens

  1. The assistant checks your Kie.ai balance.
  2. It reports the number in both credits and dollars.
  3. If the balance looks thin for what’s likely next (roughly under $1 for an image, under $2 for a video), it says so and points you to kie.ai to top up.

Cost: Free.

/models

See which models are available and what they cost.

Signature

/models

Example

/models
/models

What happens

  1. The assistant pulls the live, current model list.
  2. It summarizes it using the pricing tables further down this page, rather than dumping raw output at you.

Cost: Free.

/save

Save a URL into your GHL Media Library.

Signature

/save <url> [name]

Example

/save
/save https://example.com/your-generated-image.png roofing-hero-final

What happens

  1. The assistant calls the save tool with your URL, and the name you gave it, if any.
  2. The file is copied into your GHL Media Library.

Finished FreshGen generations already auto-save when your deployment has a GHL Media Library connection configured — /save is for URLs FreshGen didn’t generate, or to force a specific filename.

Cost: Free to save. (The media itself may have already cost money to generate.)

/brand

Show the BRAND block currently in effect.

Signature

/brand

Example

/brand
/brand

What happens

  1. The assistant prints the BRAND block from the skill file, word for word, so you can see exactly what style is being applied to your prompts.

To change what it prints: edit the block in your SKILL.md file — see “The BRAND block” below — then re-upload the file in Ask AI’s Skills panel under the same name. The new upload replaces the old one.

Cost: Free.

/help

List all eleven commands.

Signature

/help

Example

/help
/help

What happens

  1. The assistant prints the full command table.

Cost: Free.

Optional

One skill per model

If your team likes to pick the model themselves, there is also a skill for each of the twelve models. Upload the ones you want from docs/ask-ai-skill/models/ and name each after its model id, so the slash menu reads /gpt-image-2, /kling-3-0, and so on. Each one locks the model, exposes only the flags that model actually supports, and carries prompting tips written for that model — plus the same brand block and money rules as everything else.

CommandBest forFlagsApprox. cost
/gpt-image-2Text, logos, typography, signs, menus--ar --res --ref~$0.04
/nano-banana-proPhotorealism, people, likeness, product shots--ar --res --ref~$0.09
/nano-bananaCheap drafts and quick concepts--ar --ref~$0.02
/nano-banana-2Fast all-round, low price--ar~$0.04
/seedream-4Stylized art, illustration, bold color--ar --res --ref~$0.03
/imagen-4Clean commercial photo look--ar~$0.03
/kling-2-1-stdFast, cheap clips (the default)--from --sec --ar~$0.13 / 5s
/kling-3-0Flagship quality, up to 4K--from --sec --res --ar~$0.42–0.56 / 5s
/kling-2-6Clips with native audio--from --sec --ar~$0.50 / 5s
/seedance-2Cinematic motion--from --sec --res --ar~$1.20 / 5s
/wan-2-6HD on a budget--from --sec --res --ar~$0.50–0.75 / 5s
/grok-imagineLonger cheap clips (6–10s)--from --sec --res --ar~$0.30 / 6s

Example: /gpt-image-2 a chalkboard menu that reads "Tacos $3 · Horchata $2", warm café light --ar 4:5. Video model skills quote the cost before they start, exactly like /video.

Pricing

Which model, what it costs

/models always pulls the live, current list — ask any time you’re unsure. The tables below are for reference.

Image models

ModelBest forApprox. cost
gpt-image-2 (default)Text, logos, typography, signs, menus~$0.04 (1K)
nano-banana-proPhotorealism, people, likeness, product shots with a reference~$0.09 (1K)
nano-bananaCheap drafts and quick concepts~$0.02
nano-banana-2Fast, good all-round default, low price~$0.04 (1K)
seedream-4Stylized art, illustration, bold color~$0.03
imagen-4Clean commercial photo look, no reference images~$0.03

Rules of thumb: text, logos, or typography → gpt-image-2. Photorealism, people, or likeness → nano-banana-pro. Cheap throwaway drafts → nano-banana. Stylized or illustration → seedream-4. Clean commercial shot with no reference image → imagen-4. Don’t want to think about it → nano-banana-2.

gpt-image-2, nano-banana-pro, and seedream-4 support --res 1K/2K/4K; the other three render at a fixed resolution. gpt-image-2 has one quirk: no 4K at 1:1, and 4:5/5:4 are currently capped at 1K — the tool corrects this automatically rather than failing, so it’s fine to ask for more and let it clamp down. Reference images (up to 4) work on gpt-image-2, nano-banana-pro, nano-banana, and seedream-4 — not on imagen-4 or nano-banana-2. An unrecognized model id doesn’t error; the tool falls back to the default and says which one it used.

Video models

ModelBest forApprox. cost
kling-2-1-std (default)Fast, cheapest~$0.13 / 5s
kling-3-0Flagship quality, up to 4K, supports an end frame~$0.42 (720p) – $0.56 (1080p) / 5s
kling-2-6Native audio in the clip~$0.50 / 5s
seedance-2Cinematic motion, start+end frame~$1.20 / 5s at 720p
wan-2-6HD on a budget~$0.50–0.75 / 5s
grok-imagineLonger clips (6–10s), cheap~$0.30 / 6s

Rules of thumb: the default, kling-2-1-std, covers most requests — it’s the fastest and the cheapest per second. Reach for kling-3-0 when you explicitly want top-tier quality or need an end frame. Ask for kling-2-6 when the clip needs its own audio. Ask for seedance-2 for a deliberately cinematic look — it’s the most expensive option, and the assistant will say so before starting it.

Only the aspect ratios, resolutions, and durations shown on this page are used. If genuinely unsure, 1:1, 16:9, 9:16, and 1K are always safe.

Sizing

Which size for which platform

Use caseAspect ratioSuggested resolution
Instagram / Facebook feed (square)1:11K (2K if the model supports it and it’s a hero asset)
Instagram / Facebook feed (portrait)4:51K
Stories, Reels, TikTok, YouTube Shorts9:161K
YouTube thumbnail, website hero, display/FB ad16:91K2K

For video versions of any of these, match the same aspect ratio and expect a 5-second clip by default unless you ask for longer.

Prompts

Writing better prompts

A weak prompt gets a generic result. Build every prompt from six pieces: subject (what or who, specifically), setting, style or medium (photo, illustration, 3D render…), lighting, composition or camera, and mood. Add “no text” unless you actually want words rendered in the image.

Never invent a brand name, logo, or a real person’s likeness that wasn’t given to the assistant. Anything sexual, violent, or defamatory gets refused outright, not softened and reattempted. If a prompt gets blocked, the assistant rewrites it to remove the likely trigger rather than resending it unchanged — resending would just fail again, and within 90 seconds it would dedupe to the same failed attempt anyway.

Roofing company hero image

Before

“roofing company image.”

After

“A roofing crew mid-install on a suburban home at golden hour, new architectural shingles catching warm low sunlight, wide shot with clear blue sky and a ladder against the eave, photorealistic, confident and trustworthy mood, no text.”

Suggested: nano-banana-pro, --ar 16:9

Restaurant Instagram post

Before

“food picture for instagram.”

After

“Overhead flat-lay of a wood-fired pizza fresh from the oven, melted mozzarella and torn basil, dark slate board, linen napkin and a glass of red wine at the edge of frame, soft window light from the left, shallow depth of field, warm inviting mood, no text.”

Suggested: nano-banana-pro or seedream-4, --ar 1:1 or --ar 4:5

Real-estate listing video

Before

“video of a house.”

After

“Slow forward dolly through a bright open-concept kitchen into a sunlit living room, hardwood floors, staged modern furniture, late-afternoon light through large windows, smooth cinematic camera movement, warm and inviting mood, no text.”

Suggested: /video, default model, --ar 16:9

When you want text in the image, put the exact words in quotes and use gpt-image-2 — it’s the model tuned for legible typography. Example: “A hand-painted wooden sandwich board outside a café that reads ‘OPEN TIL 9’ in white lettering, warm daylight, no other text.”gpt-image-2.

Your brand

The BRAND block

Section 6 of the single skill file — and the same block repeated in the five generating command files (image, variations, adset, video, animate) — holds your brand details. Prepend your colors, visual style words, and typography feel to every prompt, and every generation defaults to your look without you repeating it in every request.

- **Brand name:** BRAND NAME
- **Colors:** #HEXCODE1 (PRIMARY), #HEXCODE2 (SECONDARY), #HEXCODE3 (ACCENT)
- **Visual style words:** STYLE WORD ONE, STYLE WORD TWO, STYLE WORD THREE
- **Typography feel:** TYPOGRAPHY FEEL
- **Always:** ALWAYS-DO ITEM ONE, ALWAYS-DO ITEM TWO
- **Never:** NEVER-DO ITEM ONE, NEVER-DO ITEM TWO
- **Default aspect ratio:** DEFAULT ASPECT RATIO (e.g. `1:1`)
- **Default model:** DEFAULT MODEL ID (e.g. `gpt-image-2`)
Brand name
Identifies which brand this skill belongs to — useful mainly if you run more than one brand’s skill in the same Ask AI account.
Colors
Three hex colors, prepended to every prompt so generations lean toward your palette.
Visual style words
Three words describing your visual style, also prepended to every prompt.
Typography feel
How type should feel in anything with text, also prepended to every prompt.
Always
Things every generation should do by default.
Never
Things every generation should avoid. If your request conflicts with a Never rule, the assistant follows the Never rule and tells you why.
Default aspect ratio
The shape the assistant leans on when you don’t specify one yourself.
Default model
The model the assistant leans on when you don’t specify one yourself.

To change it: replace every ALL-CAPS placeholder with your real brand details, then re-upload the file in Ask AI’s Skills panel under the same name — the new upload replaces the old one. If you’re on the one-skill-per-command install, edit and re-upload all five generating commands, since the block is duplicated in each.

Money and safety

How the assistant protects your wallet

Rewritten in plain terms from the rules built into the skill file.

Money rules

  • Every image and video generation is real money, charged straight to the connected Kie.ai account. The assistant will not imply a generation is free or reversible.
  • The assistant will state the model and the cost with every result — that line comes straight from the tool, and it gets passed through, not dropped.
  • For video, the assistant will quote the estimated cost before starting the render, not after.
  • The assistant will confirm with you before generating more than 4 images or more than 2 videos in one request.
  • If your Kie.ai balance looks low, the assistant will warn you and point you to kie.ai to top up before continuing.
  • If a result says the deployment is not activated, that means the server owner’s license key isn’t set correctly in Vercel. The assistant will tell you that and stop there — it will not keep retrying, since the call will keep failing until the key is fixed.

Retry and status rules

  • The image tool sometimes returns the finished image right away, and sometimes only a task ID to check later. Both are normal — the assistant reads the result to see which one it got.
  • If a result already includes a media link, the job is done. The assistant will not check its status again.
  • The video tool never returns the finished clip immediately — it only starts the render and hands back a task ID. The assistant waits at least 2 to 3 minutes before the first status check.
  • If a status check comes back still processing, the assistant waits at least another minute (1 to 2 more for video) before checking again. It will not check back-to-back or in a loop, because checking more often does not make a render finish any faster.
  • If a call fails on a parameter or model name, the assistant retries once using the defaults — never with the exact same parameters that just failed.
  • A parameter or model failure is not a connection problem, so the assistant will not tell you to reconnect anything over it. Only an insufficient-credits error means topping up at kie.ai.

FAQ

Frequently asked

Do I need the skill at all?

No. The six tools work without it — you can ask in plain language and they run. The skill makes results more consistent, since it knows your brand and picks sensible models, and it adds the slash commands as a shortcut.

Which install should I choose?

Most people should start with the single skill — one file, one upload, and you trigger commands by picking the FreshGen chip and typing the command after it. Switch to one-skill-per-command later if you want /image, /adset, and the rest to show up as their own entries in the slash menu.

Can I rename the commands?

Yes. Whatever you name the skill when you upload it is what shows up in Ask AI’s menu — rename the file’s skill name and the command name changes with it.

Does the skill cost anything?

No. Uploading and using the skill is free. The generations it triggers are not — every image and video call bills your connected Kie.ai account.

Where do my images and videos go?

Every result comes back as a Kie.ai URL that lasts about 14 days. If your deployment has a GHL Media Library connection configured, finished generations are also copied there automatically as a permanent backup — that’s the one to hold onto past 14 days.

Why did I get the same image twice?

An identical prompt, model, aspect ratio, resolution, and reference images sent again within about 90 seconds is treated as a repeat and returns the same image instead of billing you again. It exists to stop a network hiccup from double-charging you. Change the wording, even slightly, to get a genuinely new result.

Can my team use it?

Yes. Anyone in the same GHL sub-account with access to Ask AI can use the skill and its commands once it’s uploaded.

How do I update it?

Edit the SKILL.md file and re-upload it in Ask AI’s Skills panel under the same name — it replaces the previous version.