| name | img |
| description | Генерирует изображения через kie.ai API. Все модели GEN Studio — Nano Banana, Flux, Seedream, Ideogram, GPT-4o, Z-Image, Grok. Вызывай когда пользователь просит создать/нарисовать изображение, или сам предлагай при работе над визуальным контентом. |
Изобразика — генерация изображений через kie.ai
Конфигурация
Замени плейсхолдеры перед первым использованием:
| Плейсхолдер | Пример | Описание |
|---|
{{KIE_API_KEY_FILE}} | ~/.claude/.env.kie | Файл с KIE_API_KEY=kie_... |
{{OUTPUT_DIR}} | ~/images | Папка для сохранения изображений |
Триггеры
- «изобразика», «/изобразика»
- «создай изображение», «нарисуй», «инфографика», «иллюстрация», «баннер»
- При работе над сайтом/презентацией — предлагай генерацию сам
Доступные модели
| ID | Название | Цена | Когда использовать |
|---|
nano-banana | Nano Banana (Gemini 2.5) | ~$0.02 | По умолчанию. Дёшево, быстро, хорошее качество |
nano-banana-pro | Nano Banana Pro (Gemini 3.0) | $0.09-0.12 | Максимальное качество фото |
nano-banana-2 | Nano Banana 2 (Gemini 3.1) | $0.04-0.09 | Мульти-референс (до 14 фото) |
flux-kontext | Flux Kontext (Pro/Max) | $0.04-0.08 | Редактирование, стиль-трансфер |
flux-2 | Flux 2 Pro | ~$0.05 | Качественные иллюстрации |
seedream | Seedream (ByteDance) | $0.0175 | Самый дешёвый + быстрый (<2 сек) |
ideogram-v3 | Ideogram V3 | $0.0175-0.05 | Лучший для текста на изображении |
gpt4o-image | 4o Image (GPT-4o) | ~$0.03 | Отличный текст, мульти-референс |
z-image | Z-Image (Tongyi) | ~$0.004 | Супер-дешёвый черновик |
grok-imagine | Grok Imagine (xAI) | ~$0.05 | Быстрая генерация |
Правило выбора:
- По умолчанию ->
nano-banana
- Нужен текст на картинке ->
ideogram-v3 или gpt4o-image
- Максимальное качество ->
nano-banana-pro
- Быстрый черновик ->
seedream или z-image
- Редактирование фото ->
flux-kontext
API
API-ключ: {{KIE_API_KEY_FILE}}
Формат: KIE_API_KEY=kie_...
API Base: https://api.kie.ai
Поллинг: каждые 3 сек, таймаут 120 сек
Алгоритм
Шаг 1: Определи задачу
- Что генерировать
- Формат:
16:9, 1:1, 4:3
- Нужен ли текст на картинке
- Модель: спроси или используй
nano-banana по умолчанию
Шаг 2: Составь промпт
На английском. Включи: тип изображения, сцену, стиль, цветовую палитру. Если нужен текст — укажи его явно с нужным языком. Пример: Text on image in Russian: "Воображение".
Шаг 3: Генерация
Запиши в /tmp/gen_kie.py и запусти python3 /tmp/gen_kie.py:
import json, os, time, urllib.request, urllib.error
KEY = open(os.path.expanduser("{{KIE_API_KEY_FILE}}")).read().strip().split("=",1)[1]
OUTDIR = "{{OUTPUT_DIR}}"
os.makedirs(OUTDIR, exist_ok=True)
MODEL_ID = "nano-banana"
PROMPT = "..."
ASPECT = "16:9"
RESOLUTION = "1K"
FILENAME = "2026-03-02_description.png"
MODELS = {
"nano-banana": {
"create": "/api/v1/jobs/createTask",
"status": "/api/v1/jobs/recordInfo",
"payload": lambda p: {"model": "google/nano-banana", "input": {
"prompt": p["prompt"], "image_size": p["aspect"], "resolution": p["res"]}}
},
"nano-banana-pro": {
"create": "/api/v1/jobs/createTask",
"status": "/api/v1/jobs/recordInfo",
"payload": lambda p: {"model": "nano-banana-pro", "input": {
"prompt": p["prompt"], "aspect_ratio": p["aspect"], "resolution": p["res"]}}
},
"nano-banana-2": {
"create": ,
: ,
: p: {: , : {
: p[], : p[], : p[]}}
},
: {
: ,
: ,
: p: {: p[], : , : p[]}
},
: {
: ,
: ,
: p: {: , : {
: p[], : p[], : p[]}}
},
: {
: ,
: ,
: p: {: , : {
: p[],
: {:,:,:,:,:}.get(p[],),
: p[]}}
},
: {
: ,
: ,
: p: {: , : {
: p[],
: {:,:,:,:,:}.get(p[],),
: , : }}
},
: {
: ,
: ,
: p: {: p[], : p[]}
},
: {
: ,
: ,
: p: {: , : {: p[], : p[]}}
},
: {
: ,
: ,
: p: {: , : {
: p[], : p[]}}
},
}
m = MODELS[MODEL_ID]
payload = m[]({: PROMPT, : ASPECT, : RESOLUTION})
url =
req = urllib.request.Request(url, json.dumps(payload).encode(),
{: , : })
:
urllib.request.urlopen(req, timeout=) r:
resp = json.loads(r.read().decode())
urllib.error.HTTPError e:
(); exit()
resp.get() != :
(); exit()
task_id = resp[][]
()
status_url =
i ():
time.sleep()
urllib.request.urlopen(urllib.request.Request(status_url,
headers={: }), timeout=) r:
sd = json.loads(r.read().decode())
d = sd.get(, {})
sf = d.get()
state = {:,:,:,:}.get(sf, d.get(, d.get(,))) sf d.get(, d.get(,))
state == :
();
state == :
(); exit()
state == :
rj = d.get()
r2 = json.loads(rj) (rj, ) rj (rj d.get() {})
urls = r2.get(, []) (r2, ) []
img_url = (urls[] urls ) r2.get() r2.get() d.get(, {}).get() d.get()
img_url:
(); exit()
()
OUT = os.path.join(OUTDIR, FILENAME)
dl_req = urllib.request.Request(img_url, headers={
: ,
:
})
urllib.request.urlopen(dl_req, timeout=) r:
img_bytes = r.read()
img_bytes[:] == :
real_ext =
img_bytes[:] == :
real_ext =
:
real_ext = os.path.splitext(FILENAME)[]
requested_ext = os.path.splitext(FILENAME)[]
real_ext != requested_ext:
OUT = os.path.splitext(OUT)[] + real_ext
()
(OUT, ) f:
f.write(img_bytes)
()
exit()
()
(); exit()
Шаг 4: Показ результата
Read файла — Claude показывает изображение прямо в чате.
Типичные ошибки
| Ошибка | Решение |
|---|
| HTTP 401/403 | Невалидный KIE_API_KEY |
| HTTP 429 | Rate limit, подожди 10 сек |
| code != 200 | Неверный payload для модели |
| Timeout | Смени на seedream или z-image |
| Текст кривой | Используй ideogram-v3 или gpt4o-image |
| gpt4o-image — нет 16:9 | Только 1:1, 3:2, 2:3 |