
Генерация картинок
@image-studio
Генерирует картинки по описанию — иконки, иллюстрации, обои, логотипы, аватары, концепт-арт, фото-стиль. Помогает составить промпт, подобрать стиль, размер и соотношение сторон, делает один вариант или серию и собирает галерею. Применяйте для «сгенерировать картинку», «нарисовать логотип/аватар/обои», «нейросеть фото». Не подходит для ретуши существующих фото — только генерация с нуля.
Кому подходит навык «Генерация картинок»
- Дизайнерам и креативщикам — быстро получить иконку, иллюстрацию или концепт-арт по описанию, без поиска стоков.
- Маркетологам и SMM — визуалы для постов и презентаций, аватары, обои, серия в одном стиле.
- Малому бизнесу — логотип-концепт, иконки для интерфейса, иллюстрации для лендинга.
- Авторам и преподавателям — персонажи, наглядные картинки для курсов и постов.
Что можно нарисовать
- Иконки и логотипы — минимализм, flat, line-art, пиксель-арт; концепт и готовое изображение.
- Иллюстрации и концепт-арт — персонажи, сцены, визуализация идеи «как это могло бы выглядеть».
- Аватары и обои — под бренд или личный профиль, в нужной ориентации экрана.
- Серию вариантов — 3–5 картинок с небольшими вариациями, собранных в галерею для выбора.
Как это работает: объект, стиль, композиция
Хороший промпт — объект + стиль + композиция + освещение + палитра + настроение. Чем конкретнее, тем точнее кадр: «минималистичный лис, силуэт, flat-иллюстрация, мягкое освещение, тёплые оранжевый и кремовый». При необходимости результат сверяется анализом и промпт корректируется.
Полезные детали
- Размеры: квадрат (~1024×1024) — иконки, аватары, посты; альбом (~1280×720) — слайды, обложки; портрет (~720×1280) — истории, постеры, обои телефона.
- Без текста на картинке: буквы модель пишет плохо — надписи добавляются отдельно (см. ИИ-дизайнер).
- Стоимость: ~0,015 $ за генерацию; для серии навык предупреждает о количестве заранее.
Связанные навыки: наложить текст поверх картинки в креатив точного размера — рекламные креативы, а полный дизайн-макет — агент ИИ-дизайнер, объединяющий веб-дизайн и фирменный стиль.
Готовы нарисовать? Опишите, что нужно, — запустите навык «Генерация картинок».
Получится ли текст на картинке?
Нет. Текстовые нейросети плохо пишут буквы, поэтому надписи в изображение не вставляются. Если нужен текст поверх картинки — его накладывают отдельно в HTML/SVG, этим занимается агент «ИИ-дизайнер».
Какие форматы и размеры поддерживаются?
Квадрат (~1024×1024) — для иконок, аватаров и постов; альбом (~1280×720) — для слайдов и обложек; портрет (~720×1280) — для историй, постеров и обоев телефона. Точные размеры подсказывает инструмент генерации.
Можно отретушировать моё фото?
Нет. Навык только генерирует изображения с нуля по описанию. Ретушь, удаление фона или изменение лица существующего снимка — отдельная задача.
Сколько это стоит?
Около 0,015 $ за генерацию. Для серии из нескольких вариантов навык предупреждает о количестве заранее, чтобы итоговая стоимость не оказалась сюрпризом.
Что я получу на выходе?
Стабильную ссылку на изображение, при серии — несколько вариантов в HTML-галерее для удобного выбора, и промпт с параметрами для повторного использования.
Генерация изображений
Создаём готовое изображение по описанию — от одной иконки до серии вариантов. Это закрывает запросы «сгенерировать картинку», «нейросеть фото», «нарисуй логотип/аватар/обои»: пользователь получает не совет, а готовую картинку (и ссылку на неё).
Когда использовать
- «сгенерируй картинку / нарисуй / сделай изображение»
- иконки, иллюстрации, обои, логотипы, аватары, открытки, постеры
- концепт-арт, персонажи, визуалы для постов и презентаций
- «покажи, как это могло бы выглядеть» — визуализация идеи
Когда НЕ использовать
- Ретушь/изменение существующей фотографии (убрать фон, изменить лицо) — здесь только генерация с нуля.
- Анализ картинки (что на ней, прочитать текст, описать) — MCP
analyze_image/ocr, без отдельного навыка. - Видео или «оживить» фото — MCP
kling_image_to_video(асинхронно; фоллбэк —agenthere_glm_generate_video); этот навык — только статические изображения.
Что на выходе
- Ссылка на изображение — стабильная, переотданная (срок жизни исходных ссылок ограничен, поэтому инструмент возвращает постоянный URL).
- Серия вариантов (по запросу) — собрана в HTML-галерею для удобного выбора.
- Промпт и параметры — что использовалось, чтобы можно было повторить или варьировать.
Инструменты
| Задача | Инструмент |
|---|---|
| Генерация | MCP kling_text_to_image (~0,028 $/изображение; фоллбэк — glm_generate_image ~0,015 $, он же лучше для текста на картинке) |
| Проверить результат («то ли это») | MCP analyze_image |
| Найти референс/стиль | MCP web_search, web_reader |
| Собрать серию в галерею | Node-хелпер scripts/build-gallery.js |
| Сохранить файлы | встроенные write |
MCP-инструменты серверные и кросс-платформенные; Node вшит в приложение. Unix-утилиты (grep/sed/awk/find) на Windows отсутствуют — для файловых операций используй встроенные read/write/glob/grep.
Рабочий процесс
Шаг 1. Уточнить замысел (по одному вопросу)
Что рисуем, зачем (иконка/пост/презентация/печать), стиль, настроение, предпочтительный цвет/палитра. Для логотипа — название и дух бренда; для персонажа — описание; для обоев — ориентация экрана.
Шаг 2. Собрать промпт
Хороший промпт = объект + стиль + композиция + освещение + палитра + настроение. Конкретнее:
- Объект: что в кадре, детально («минималистичный лис, сидящий, силуэт»).
- Стиль: flat-иллюстрация / акварель / 3D-рендер / фотореализм / line-art / пиксель-арт / оригами.
- Композиция: крупный план / по центру / вид сбоку / симметрия / негативное пространство.
- Освещение: мягкое / контровой / студийный свет / закатное.
- Палитра: 2–3 цвета («тёплые оранжевый и кремовый на тёмно-синем»).
- Настроение: спокойно / энергично / уютно / футуристично.
Без текста на картинке — текст модель пишет плохо; надписи добавляются отдельно. Добавляйте негативные ограничения, если важно («без людей», «без текста», «без рамки»).
Шаг 3. Размер и соотношение
Выбирайте под цель. kling_text_to_image принимает aspect_ratio ('1:1', '16:9', '9:16',
'3:4', '21:9') и resolution ('1k' | '2k'). У фоллбэка glm_generate_image фиксированные
размеры: 1280x1280, 1568x1056, 1056x1568, 1472x1088, 1088x1472, 1728x960, 960x1728.
- Квадрат (1:1) — иконки, аватары, логотипы, посты.
- Альбом (16:9, 4:3) — слайды, баннеры, обложки.
- Портрет (9:16) — истории, постеры, обои телефона.
Шаг 4. Сгенерировать и сверить
Вызовите kling_text_to_image (фоллбэк — glm_generate_image). При необходимости оцените результат через analyze_image («соответствует ли промпту, нет ли артефактов»). Не получилось — скорректируйте промпт (конкретизируйте стиль/композицию) и повторите.
Шаг 5. Серия и галерея (опционально)
Для «дай 3–5 вариантов» — сгенерируйте серию с небольшими вариациями промпта, затем соберите их в галерею:
- Соберите JSON:
{ "title": "...", "images": [ {"url": "...", "caption": "..."} ] }. node scripts/build-gallery.js --input gallery.json --out gallery.html.
Если scripts/build-gallery.js отсутствует — пересоздайте из исходника в конце этого файла.
Шаг 6. Доставка
Отдайте ссылку(и) на изображение, при серии — путь к gallery.html, и промпт для повторного использования. Предложите вариации (другой стиль/палитра).
Антипаттерны
- Размытый замысел («красивая картинка») → уточните объект, стиль, назначение.
- Текст в промпте («надпись Sale 50%») → текст не получится; делайте изображение, надпись — отдельно.
- Слишком много в одном кадре → разбейте на несколько картинок.
- Не сказали пропорции → подиум/слайд/телефон дают разные кадрирования; уточните назначение.
- Молчать про стоимость — каждая генерация ~0,028 $ на Kling (~0,015 $ на glm-фоллбэке); для серии предупредите пользователя о количестве.
Исходник хелпера
Полный исходник scripts/build-gallery.js. Файл уже поставляется с навыком; блок — для пересоздания при отсутствии. Держите копии синхронно.
#!/usr/bin/env node
"use strict";
// build-gallery.js — assemble a self-contained HTML gallery from JSON. No deps.
// node scripts/build-gallery.js --input gallery.json --out gallery.html
// JSON: { "title":"...", "images":[ {"url":"...","caption":"..."} ] }
const fs = require("fs");
function args(argv){const a={input:null,out:null};for(let i=2;i<argv.length;i++){if(argv[i]==="--input"||argv[i]==="-i")a.input=argv[++i];else if(argv[i]==="--out"||argv[i]==="-o")a.out=argv[++i];}return a;}
function esc(s){return String(s==null?"":s).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");}
function readIn(p){return p?fs.readFileSync(p,"utf-8"):fs.readFileSync(0,"utf-8");}
const A=args(process.argv);
let spec;try{spec=JSON.parse(readIn(A.input));}catch(e){process.stderr.write("JSON error: "+e.message+"\n");process.exit(1);}
const imgs=Array.isArray(spec.images)?spec.images:[];
const cards=imgs.map(i=>`<figure class="card"><img src="${esc(i.url)}" alt="${esc(i.caption||"")}">${i.caption?`<figcaption>${esc(i.caption)}</figcaption>`:""}</figure>`).join("\n");
const html=`<!DOCTYPE html><html lang="ru"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>${esc(spec.title||"Галерея")}</title>
<style>*{box-sizing:border-box}body{margin:0;background:#0f1115;color:#f4f6fb;font-family:-apple-system,"Segoe UI",Roboto,Arial,sans-serif}h1{padding:24px;text-align:center}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:24px}.card{margin:0;background:#16181d;border:1px solid #222633;border-radius:12px;overflow:hidden}.card img{width:100%;display:block}.card figcaption{padding:10px 14px;font-size:14px;color:#aab2c5}</style></head>
<body><h1>${esc(spec.title||"Галерея")}</h1><div class="grid">${cards}</div></body></html>`;
if(A.out){fs.writeFileSync(A.out,html,"utf-8");console.error("Готово: "+A.out);}else{process.stdout.write(html);}