Генерация картинок

Генерация картинок

@image-studiocreative

Генерирует картинки по описанию — иконки, иллюстрации, обои, логотипы, аватары, концепт-арт, фото-стиль. Помогает составить промпт, подобрать стиль, размер и соотношение сторон, делает один вариант или серию и собирает галерею. Применяйте для «сгенерировать картинку», «нарисовать логотип/аватар/обои», «нейросеть фото». Не подходит для ретуши существующих фото — только генерация с нуля.

0 установокПубличный

SKILL.md

Генерация изображений

Создаём готовое изображение по описанию — от одной иконки до серии вариантов. Это закрывает запросы «сгенерировать картинку», «нейросеть фото», «нарисуй логотип/аватар/обои»: пользователь получает не совет, а готовую картинку (и ссылку на неё).

Когда использовать

  • «сгенерируй картинку / нарисуй / сделай изображение»
  • иконки, иллюстрации, обои, логотипы, аватары, открытки, постеры
  • концепт-арт, персонажи, визуалы для постов и презентаций
  • «покажи, как это могло бы выглядеть» — визуализация идеи

Когда НЕ использовать

  • Ретушь/изменение существующей фотографии (убрать фон, изменить лицо) — здесь только генерация с нуля.
  • Анализ картинки (что на ней, прочитать текст, описать) — MCP analyze_image / ocr, без отдельного навыка.
  • Видео или «оживить» фото — навык video-gen.

Что на выходе

  1. Ссылка на изображение — стабильная, переотданная (срок жизни исходных ссылок ограничен, поэтому инструмент возвращает постоянный URL).
  2. Серия вариантов (по запросу) — собрана в HTML-галерею для удобного выбора.
  3. Промпт и параметры — что использовалось, чтобы можно было повторить или варьировать.

Инструменты

ЗадачаИнструмент
ГенерацияMCP generate_image (~0,015 $/за запрос)
Проверить результат («то ли это»)MCP analyze_image
Найти референс/стильMCP web_search, web_reader
Собрать серию в галереюNode-хелпер scripts/build-gallery.js
Сохранить файлывстроенные write

MCP-инструменты серверные и кросс-платформенные. Node вшит в приложение — работает на Windows. Без bash/curl.

Рабочий процесс

Шаг 1. Уточнить замысел (по одному вопросу)

Что рисуем, зачем (иконка/пост/презентация/печать), стиль, настроение, предпочтительный цвет/палитра. Для логотипа — название и дух бренда; для персонажа — описание; для обоев — ориентация экрана.

Шаг 2. Собрать промпт

Хороший промпт = объект + стиль + композиция + освещение + палитра + настроение. Конкретнее:

  • Объект: что в кадре, детально («минималистичный лис, сидящий, силуэт»).
  • Стиль: flat-иллюстрация / акварель / 3D-рендер / фотореализм / line-art / пиксель-арт / оригами.
  • Композиция: крупный план / по центру / вид сбоку / симметрия / негативное пространство.
  • Освещение: мягкое / контровой / студийный свет / закатное.
  • Палитра: 2–3 цвета («тёплые оранжевый и кремовый на тёмно-синем»).
  • Настроение: спокойно / энергично / уютно / футуристично.

Без текста на картинке — текст модель пишет плохо; надписи добавляются отдельно. Добавляйте негативные ограничения, если важно («без людей», «без текста», «без рамки»).

Шаг 3. Размер и соотношение

Выбирайте под цель (точные доступные размеры уточняйте у инструмента generate_image):

  • Квадрат (≈1024×1024 / 1280×1280) — иконки, аватары, логотипы, посты.
  • Альбом (≈1280×720) — слайды презентации, баннеры, обложки.
  • Портрет (≈720×1280) — истории, постеры, обои телефона.

Шаг 4. Сгенерировать и сверить

Вызовите generate_image. При необходимости оцените результат через analyze_image («соответствует ли промпту, нет ли артефактов»). Не получилось — скорректируйте промпт (конкретизируйте стиль/композицию) и повторите.

Шаг 5. Серия и галерея (опционально)

Для «дай 3–5 вариантов» — сгенерируйте серию с небольшими вариациями промпта, затем соберите их в галерею:

  1. Соберите JSON: { "title": "...", "images": [ {"url": "...", "caption": "..."} ] }.
  2. node scripts/build-gallery.js --input gallery.json --out gallery.html.

Если scripts/build-gallery.js отсутствует — пересоздайте из исходника в конце этого файла.

Шаг 6. Доставка

Отдайте ссылку(и) на изображение, при серии — путь к gallery.html, и промпт для повторного использования. Предложите вариации (другой стиль/палитра).

Антипаттерны

  • Размытый замысел («красивая картинка») → уточните объект, стиль, назначение.
  • Текст в промпте («надпись Sale 50%») → текст не получится; делайте изображение, надпись — отдельно.
  • Слишком много в одном кадре → разбейте на несколько картинок.
  • Не сказали пропорции → подиум/слайд/телефон дают разные кадрирования; уточните назначение.
  • Молчать про стоимость — каждая генерация ~0,015 $; для серии предупредите пользователя о количестве.

Исходник хелпера

Полный исходник 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,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");}
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);}

Ресурсы (1)

scripts/

scripts/build-gallery.jsСправка

Комментарии (0)

Войдите, чтобы оставить комментарий

Загрузка комментариев...

Генерация картинок