Как правильно составлять JSON-промпты для генерации изображений и видео
JSON-промпт — это структурированное описание сцены, создаваемое в формате JSON (JavaScript Object Notation), которое передаётся генеративным моделям изображений или видео (например, Stable Diffusion, Midjourney API, Runway, Pika, OpenAI, Kling, Krea и др.).
Его цель — сделать описание формализованным, чтобы алгоритм мог точно понять контекст, стиль и цели автора.
Базовая структура JSON-промпта
Пример универсальной структуры:
{
"type": "image",
"title": "Cyberpunk city at night",
"description": "A futuristic city with neon lights and flying cars",
"style": {
"genre": "cyberpunk",
"lighting": "neon, high contrast",
"color_palette": ["purple", "blue", "pink"],
"camera": {
"angle": "wide",
"lens": "35mm",
"focus": "depth of field"
},
"mood": "energetic, mysterious"
},
"characters": [
{
"name": "main character",
"gender": "female",
"clothing": "leather jacket",
"pose": "standing confidently",
"expression": "focused"
}
],
"commands": {
"resolution": "1920x1080",
"aspect_ratio": "16:9",
"quality": "high",
"iterations": 30,
"seed": 42
}
}
Основные поля JSON-промта
| Поле | Назначение |
|---|---|
| type | Указывает тип генерации: "image", "video", "animation", "3d" |
| title | Краткое описание сцены (для контекста) |
| description | Основной текстовый промт (то, что видит модель) |
| style | Объект с деталями художественного стиля, света, настроения, цвета и камеры |
| characters | Массив с описанием персонажей (если применимо) |
| commands | Технические параметры вывода — размер, качество, seed, итерации и др. |
Дополнительные поля для видео
{
"type": "video",
"duration": 10,
"fps": 24,
"camera_motion": "slow pan left",
"transitions": "fade in/out",
"audio": {
"include": false,
"music_style": "ambient"
}
}
Пояснения:
duration— длительность видео в секундах.fps— количество кадров в секунду.camera_motion— тип движения камеры (например,"zoom in","dolly out","pan left").transitions— переходы между сценами.audio— параметры для саундтрека (если применимо).
Перечень часто используемых команд
| Команда | Значение |
|---|---|
resolution | Размер изображения (например, "1024x1024") |
aspect_ratio | Соотношение сторон (например, "16:9") |
quality | Качество генерации (low, medium, high, ultra) |
seed | Фиксированное значение для воспроизводимости результата |
iterations | Количество итераций/шагов генерации |
guidance_scale | Насколько сильно модель следует промту |
scheduler | Тип диффузионного алгоритма (ddim, pndm, euler, dpm++) |
output_format | Формат вывода (png, mp4, gif) |
negative_prompt | Описание того, чего не должно быть на изображении (например, "blurry, distorted, lowres") |
Рекомендации по составлению JSON-промтов
- Используйте чёткую иерархию.
Разделяйте художественное описание и технические параметры — это улучшает управляемость генерации. - Делайте промт максимально конкретным.
Указывайте стиль, освещение, настроение, композицию, точку съёмки. - Работайте с
negative_prompt.
Это мощный инструмент контроля — помогает избежать артефактов, искажений или нежелательных деталей. - Для видео — определяйте движение и длительность.
Безcamera_motionиdurationмодель может сгенерировать статичный или рваный результат. - Не перегружайте описания.
Оптимум — 50–150 слов вdescription. Слишком длинные промты дают шумные результаты. - Фиксируйте seed при отладке.
Чтобы получать воспроизводимые результаты при тестах. - Добавляйте метаданные.
Например,"author","date_created","version", если планируется работа в команде.
Пример полного JSON-промта для видео
{
"type": "video",
"title": "Sunrise over a futuristic desert city",
"description": "A cinematic shot of a vast futuristic desert city with solar towers and flying drones under a golden sunrise",
"style": {
"genre": "sci-fi",
"lighting": "warm morning glow",
"color_palette": ["orange", "gold", "blue"],
"camera": {
"motion": "slow aerial pan",
"focus": "city skyline"
},
"mood": "hopeful, majestic"
},
"commands": {
"duration": 12,
"fps": 30,
"resolution": "1920x1080",
"quality": "ultra",
"guidance_scale": 8.5,
"seed": 1234,
"output_format": "mp4"
},
"negative_prompt": "foggy, low detail, dark, overexposed"
}
Пример JSON-промта с комментариями
{
«_comment»: «Шаблон JSON-промта для генерации изображений или видео»,
«type»: «image»,
«title»: «Название сцены»,
«description»: «Краткое описание того, что нужно сгенерировать»,
«style»: {
«_comment»: «Художественные параметры сцены»,
«genre»: «sci-fi, fantasy, portrait, landscape и т.д.»,
«lighting»: «natural, neon, cinematic»,
«color_palette»: [
«blue»,
«orange»,
«white»
],
«camera»: {
«angle»: «wide, close-up, top-down»,
«lens»: «35mm, 85mm»,
«focus»: «depth of field, background blur»
},
«mood»: «calm, dramatic, energetic»
},
«characters»: [
{
«_comment»: «Описание персонажей, если применимо»,
«name»: «main character»,
«gender»: «male/female/other»,
«clothing»: «describe outfit»,
«pose»: «describe pose»,
«expression»: «happy, serious, focused»
}
],
«commands»: {
«_comment»: «Технические параметры генерации»,
«resolution»: «1920×1080»,
«aspect_ratio»: «16:9»,
«quality»: «high»,
«iterations»: 30,
«guidance_scale»: 7.5,
«seed»: 42,
«scheduler»: «ddim»,
«output_format»: «png»
},
«video_params»: {
«_comment»: «Дополнительные поля для видео»,
«duration»: 10,
«fps»: 24,
«camera_motion»: «slow pan left»,
«transitions»: «fade in/out»,
«audio»: {
«include»: false,
«music_style»: «ambient»
}
},
«negative_prompt»: «blurry, distorted, lowres, bad anatomy»
}
Заключение
JSON-промт — это не просто текстовое описание, а структурированный сценарий для нейросети.
Хорошо оформленный JSON помогает моделям точнее понимать задумку, а создателю — воспроизводить и дорабатывать сцены в профессиональном формате.



