Перейти к основному контенту

Из одного фото товара — три статичных рекламных макета

Превратите пакшот в объявления 1:1, 4:5 и 9:16: сохраните этикетку ровно как на фото, сгенерируйте только фон и проверьте каждый формат.

Автор
Lydia
Опубликовано
Время чтения
11 мин чтения
Обновлено
Женщина в коричневом блейзере подпирает подбородок рукой за студийным столом с кремовым пакетом кофе с медной складкой и графитовой этикеткой, керамической чашкой, цветными образцами и френч-прессом

Чтобы получить три рекламных формата из одного фото товара, оставьте реальный товар вырезанным и сгенерируйте только окружение вокруг него. Сделайте отдельный фон для каждого формата, положите сверху исходный пакет и наберите заголовок в редакторе. Модель, которая перерисовывает пакет, может изогнуть букву на этикетке; композитинг сохраняет сфотографированные пиксели. По нашим проверкам действующего каталога и цен от октября 2026 года генерация всего набора стоит около $0.21.

Пример — кремовый пакет кофе с графитовой этикеткой, сложенной медной верхушкой и надписью «RIVER NOTES / WHOLE BEAN / 250 g», который сдаётся в 1:1 (1080 × 1080), 4:5 (1440 × 1800) и 9:16 (1080 × 1920).

Выберите маршрут по тому, что должно остаться точным

Что должно остаться точнымМаршрутСтоимость всех трёх форматов
Этикетка, форма и каждое напечатанное словоСгенерировать фон с GPT Image 2 и скомпоновать исходный пакет$0.2021, плюс $0.0048 за вырезание
То же самое, и свет с тенью должны идти за пакетомПоложить пакет на холст, дать GPT Image 2 Edit обрисовать его через маску, затем положить исходник сверху$0.2316, плюс $0.0048 за вырезание (по одному исходному изображению на формат)
Пакет можно переосветить или перерисоватьNano Banana Pro Edit с фото на входе$0.2004 ($0.0668 за изображение; не более $0.3242 при переходе на официальный маршрут)

Все цифры указаны для 2K, среднего качества, одного вывода на формат, без повторов. Для самого простого пути берите 2K: квадрат 1K рендерится в 1024 px, то есть ниже холста 1080. 1K стоит примерно вдвое дешевле ($0.101 за набор), но тогда каждому файлу понадобится увеличение до 2K ($0.012 за файл), и именно в этом дополнительном шаге появляется мягкость. По цене 1K и 2K у Nano Banana Pro одинаковые.

Если вам нужен только новый формат и устраивают перерисованные края, руководство по outpainting описывает маршрут в один вызов по $0.024 за изображение; его результат ограничен 1536 px по длинной стороне, поэтому форматы 4:5 и 9:16 пришлось бы увеличивать.

Настройте три холста

ХолстПакетЗона текстаПочему
1080 × 1080По центру x=760, основание y=940, высота около 640 pxЛевая колонка x=80–480, заголовок ближе к y=250Рекомендуемый минимум Meta для 1:1 — 1080 × 1080
1440 × 1800По центру x=720, основание y=1600, высота около 930 pxВерхняя полоса y=140–500Минимум Meta для 4:5 в Facebook Feed — 1440 × 1800 (в Instagram Feed указана ширина 1080); 1080 × 1350 ниже порога
1080 × 1920По центру x=540, основание y=1230, высота около 680 pxЗаголовок y=300–470Держит пакет и текст между y≈270 и y≈1250

Для объявлений 1:1 и 4:5 в Instagram Feed Meta просит держать нижний и боковые края свободными от ключевых элементов; около 100 px — безопасный запас. Для 9:16 Meta просит оставить свободными верх, низ и боковые стороны, а её наложение безопасной зоны в Ads Manager рисует точную рамку. Руководства, которые это измеряют, дают отступы примерно 14 % сверху, 35 % снизу и 6 % по бокам, то есть около 270, 670 и 65 px при 1080 × 1920. Вот почему пакет в формате сторис стоит выше, чем вы поставили бы его сначала. Другие платформы используют другие наложения, поэтому перед экспортом проверьте превью каждой площадки.

Квадрат разносит текст влево и вправо от товара, портрет складывает текст поверх товара, а вертикальный формат держит всё в средней полосе. Масштабируйте пакет равномерно: растягивание под холст меняет пропорции упаковки. Сохраняйте ракурс съёмки во всех трёх: фронтальный снимок не покажет заднюю панель или боковой шов, а сгенерированный бок — это макет, а не ваша упаковка.

Три карточки в пропорциях квадрата, портрета 4:5 и вертикали 9:16, на каждой кремовый пакет кофе с медной верхушкой на каменной поверхности

Иллюстрация трёх пропорций, созданная ИИ, с пакетом кофе в каждой; реальные макеты следуют таблице координат выше.

Попробуйте в Playground

Выполните эти шаги в Playground; код и маршрут через Agent — ниже.

  1. Откройте Background Remover, останьтесь на вкладке Playground в режиме Form (чтобы запустить, войдите с пополненным счётом), добавьте фото пакета в Input image и запустите. Сохраните прозрачный PNG.
  2. Откройте GPT Image 2 text to image с уже подставленным промптом 1:1. Задайте Aspect ratio как 1:1, Resolution как 2k, Quality как medium (low, пока вы настраиваете) и Output format как png, проверьте оценку цены и запустите.
  3. Повторите с 4:5 и 9:16, подставив фразы размещения из промптов ниже, затем скомпонуйте исходный пакет в редакторе.

Вырежьте пакет один раз

Отправьте лучшее фото, где виден весь пакет и читается этикетка, в Background Remover: один URL изображения на входе, прозрачный PNG исходного размера на выходе, $0.0048. Руководство по удалению фона описывает проверки края. Посмотрите на край при 200 % на тёмной и на светлой заливке и сохраните медную складку и маленькие тени в складках, вместо того чтобы расплющить пакет в прямоугольник.

Держите исходный файл отдельно от вырезанного. Если в оригинале есть жёсткая контактная тень, смягчите или уберите её до того, как класть пакет на новую поверхность, иначе в композиции окажутся две конфликтующие тени. Если фото слишком маленькое для запланированного размера пакета, уменьшите пакет в макете или возьмите фото побольше. Более резкая сгенерированная этикетка — это не печатная этикетка.

Сгенерируйте фоны

Откройте GPT Image 2 text to image с настройками из шагов Playground выше и выберите соотношение сторон для каждого формата. Пишите в каждый промпт направление света вашей фотографии; в примере пакет освещён сверху слева, как в промптах ниже. Для 1:1 используйте:

Photographic still-life advertising background, empty warm stone tabletop in the lower third, softly lit charcoal wall, gentle window light from upper left, subtle warm copper accents far in the background. Leave the right half of the tabletop clear for a coffee bag to be composited later. Leave the left half of the wall quiet and low-detail for editable copy. No product, no lettering, no logo, no cup in the reserved product area.

Для 4:5 замените фразы размещения на:

Leave the lower centre clear for a coffee bag to be composited later; keep the upper third as a simple charcoal wall for editable copy.

Для 9:16 используйте:

Vertical photographic background with a broad clear tabletop below the centre. Reserve the central lower-middle area for a coffee bag, with quiet charcoal wall above and uncluttered space below. No lettering, no product, no foreground props.

Не добавляйте пакет в фон, чтобы ни одна синтетическая упаковка не конкурировала с оригиналом. Кофейные зёрна можно добавить позже отдельным элементом, подальше от этикетки и от края контакта пакета. Чтобы сэкономить во время настройки промпта, сначала запустите его с Quality на low (около $0.024 на все три в 2K) и переключитесь на medium, когда пустые зоны лягут туда, где их ждёт макет. Сверьте полученный размер в пикселях с холстом; если он меньше, увеличьте его уровнем 2K в Image Upscaler ($0.012, см. руководство по увеличению), а не растягивайте в редакторе.

Скомпонуйте пакет и наберите текст

Поставьте вырезанное изображение по координатам выше. Добавьте прямо под основанием мягкую контактную тень (размытый тёмный эллипс в режиме multiply примерно на 30–40 %) и более слабую широкую тень, уходящую от света. Если пакет освещён справа, а фон слева, перегенерируйте фон со светом справа вместо того, чтобы рисовать конфликтующие блики поверх печатной упаковки. Бледный контур вокруг пакета — это проблема края вырезания: уменьшите его выделение на пиксель-два, ничего не перегенерируя.

Наберите заголовок и призыв к действию в редакторе. Оставьте факты о товаре вроде «250 g» такими, как они даны, и не добавляйте ничем не подтверждённых утверждений.

Тот же шаг в Pillow, для холста 1080 × 1080 (пакет ставится по основанию, как в таблице):

python
from PIL import Image, ImageFilter

bg = Image.open("bg-1x1.png").convert("RGBA").resize((1080, 1080))
bag = Image.open("bag-cutout.png").convert("RGBA")
h = 640
bag = bag.resize((round(bag.width * h / bag.height), h), Image.LANCZOS)
x, base_y = 760 - bag.width // 2, 940

shadow = Image.new("L", bg.size, 0)
shadow.paste(90, (x + 20, base_y - 12, x + bag.width - 20, base_y + 12))
shadow = shadow.filter(ImageFilter.GaussianBlur(14))
dark = Image.new("RGBA", bg.size, (20, 12, 8, 255))
bg = Image.composite(dark, bg, shadow)

bg.alpha_composite(bag, (x, base_y - h))
bg.convert("RGB").save("ad-1x1.png")

Сохраните многослойный мастер с отдельными слоями фона, товара, тени и текста и экспортируйте из него каждый формат. Тогда новая цена или новый заголовок не требуют новой генерации и не могут изменить этикетку.

Пусть модель обрисует всё вокруг пакета

Если композиция выглядит приклеенной, дайте GPT Image 2 Edit нарисовать окружение. Прозрачные области маски указывают, где редактировать, но не гарантируют неизменность пикселей вне их; наложение исходного товара на шаге 4 сохраняет сфотографированную этикетку нетронутой.

  1. Поместите вырезанное изображение на плоский нейтральный холст с тем же соотношением сторон, что и результат, и выгрузите его как исходное изображение. В 2K модель возвращает 2048 px по длинной стороне квадрата, поэтому собирайте холст в этом размере (для 1:1 это 2048 × 2048, а пакет масштабируется с тем же коэффициентом, что и в таблице холстов), либо уменьшите результат до размера холста перед финальным наложением.
  2. Выгрузите только слой товара: пакет непрозрачный, всё остальное прозрачное, в том же размере в пикселях, что и источник.
  3. Откройте GPT Image 2 Edit в Playground. Добавьте холст в Images, откройте Advanced parameters и добавьте слой товара в Mask (прозрачные пиксели перерисовываются, непрозрачные сохраняются). Задайте Aspect ratio по холсту, Resolution как 2k и Input Fidelity как high, затем используйте промпт вроде: «Paint a warm stone tabletop and charcoal wall around the existing coffee bag. Keep the bag unchanged. Soft window light from the left with a natural contact shadow under the bag. Leave the upper third as quiet wall for copy.»
  4. Наложите исходный вырез на результат — по тем же пикселям, вокруг которых рисовала модель, — до добавления текста, чтобы этикеткой осталась сфотографированная, что бы ни случилось по краю.

Модель видит пакет, пока рисует, поэтому свет и тень могут идти за ним. Исходное изображение добавляет $0.0098 за запрос: $0.0959 (1:1), $0.0778 (4:5) и $0.0579 (9:16) в 2K medium.

Когда сам пакет может измениться

Выбирайте Nano Banana Pro Edit, если хотите переосветить пакет в новой сцене и готовы проверить изменения в его складках, этикетке и силуэте. Добавьте фото товара в Images, задайте Resolution как 2k, выберите Aspect ratio и используйте:

Place the coffee bag from the supplied photograph on a warm stone tabletop against a charcoal wall. Preserve its cream package, copper folded top, charcoal label and overall proportions. Soft window light from the left. Leave clear space above for copy. Do not add claims, extra logos or extra products.

Если вы прикладываете утверждённую графику этикетки вторым изображением, укажите, какое изображение — пакет, а какое — этикетка. Просьба сохранить ничего не гарантирует. Если «250 g» превратится в другое количество, замените этикетку утверждённой графикой в финальной композиции или вернитесь к маршруту только с фоном.

Вызовите из кода

Тот же вызов фона для формата 9:16 (установите через pip install spicyapi и задайте SPICY_API_KEY); затем шаг с Pillow выше ставит пакет. Около $0.048 за изображение.

python
import uuid

from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

task = client.create_task(
    model="openai/gpt-image-2/text-to-image",
    input_data={
        "prompt": "Vertical photographic background with a broad clear tabletop below the centre. Reserve the central lower-middle area for a coffee bag, with quiet charcoal wall above and uncluttered space below. No lettering, no product, no foreground props.",
        "aspect_ratio": "9:16",
        "resolution": "2k",
        "quality": "medium",
        "output_format": "png",
    },
    idempotency_key=str(uuid.uuid4()),  # new key per new request; reuse only to retry the same one
)

print("Resume task:", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
assets = output_assets(final)
if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
    raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before a new run")
print(assets[0]["url"])

Остальное описывает справочник по Python SDK.

Или поручите Agent

Сохраните поля input в файл input.json, затем выполните npx @spicyapi/cli tasks create --model openai/gpt-image-2/text-to-image --input-file input.json --wait (CLI). С MCP-сервером ваш ассистент вызывает spicyapi_task_create, который показывает цену для подтверждения, а затем spicyapi_task_wait. Или установите Agent Skill командой npx skills add spicyapi-ai/spicy-skill.

Исправьте типичные проблемы

ПроблемаИсправление
Этикетка выглядит мягкой в итоговом размереУменьшите пакет или возьмите фото с более высоким разрешением; сохраните исходные пиксели этикетки.
Пакет кажется висящим в воздухеПеренесите контактную тень на настоящее основание и закройте зазор.
Свет товара и фона расходитсяУкажите направление света с фото в промпте фона или используйте редактирование по маске.
Текст налезает на медную складкуПеренесите текст в отведённую зону; не сжимайте пакет.
Вертикальная версия теряет основание или попадает в интерфейсную полосуПересоберите её из слоёв по координатам 9:16; не кадрируйте квадрат.
Сгенерированная сцена меняет текст упаковкиВернитесь к композитингу только с фоном или восстановите этикетку из утверждённой графики.

Перед сдачей сравните этикетку каждого экспортированного файла в полном увеличении с исходной фотографией.

Для большинства задач генерируйте только фон и компонуйте исходный пакет. Переходите к редактированию по маске, когда композиция выглядит приклеенной.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski