Руководство по использованию
Flux-2-Klein-4b: редактирование фотографий продуктов для электронной коммерции на основе изображения
Практический рабочий процесс редактирования существующих фотографий продуктов с помощью flux-2-klein-4b/image-to-image в API hiapi — с реальными подсказками, реальными результатами и пакетным кодом.
Почему стоит редактировать фотографии продуктов, а не переснимать их
Одно главное изображение продукта редко покрывает всё необходимое для карточки товара. Сетка маркетплейса требует чистого изображения на белом фоне. Пост в блоге или реклама требуют, чтобы тот же продукт был помещён в жизненную сцену. Сезонная кампания требует варианта цвета или материала, которого может ещё не существовать. Пересъёмка каждого варианта — это медленно и дорого, к тому же в большинстве случаев геометрия продукта (форма, расположение логотипа, пропорции) вообще не должна меняться — меняется только фон или какой-то один материал.
Именно для этой задачи хорошо подходит flux-2-klein-4b/image-to-image в API hiapi: он принимает существующую фотографию продукта и инструкцию по редактированию и создаёт новое изображение, в котором всё, что вы не просили менять, остаётся как было. Это быстрый и экономически выгодный уровень серии FLUX.2 [klein] — не тот выбор, когда вы генерируете продукт с нуля, но отличный вариант, когда у вас уже есть хорошая базовая фотография.
Ниже приведены две реальные правки одной и той же исходной фотографии с точными использованными подсказками, а также пакетный скрипт для запуска этого процесса по всему каталогу продуктов.
Исходная фотография

Это базовое изображение, на котором основана каждая правка ниже: матово-чёрные накладные наушники, снятые на однотонном сером студийном фоне — типичная фотография «до» для карточки товара, которой нужны дополнительные варианты.
Правка 1: поместить продукт в жизненную сцену

Использованная подсказка:
Оставьте наушники полностью неизменными (форма, матово-чёрная отделка, логотип и пропорции не меняются). Замените однотонный серый студийный фон на тёплую жизненную сцену: наушники лежат на светлом дубовом деревянном столе, рядом закрытый MacBook, небольшое зелёное растение и керамическая кофейная чашка, мягкий естественный свет из окна падает слева, малая глубина резкости, уютная домашняя офисная редакционная фотография продукта.
Ключевой приём — первое предложение: прежде чем описывать новый фон, явно скажите модели, какие части должны остаться абсолютно идентичными (форма, отделка, логотип, пропорции). Без этого якоря модель image-to-image иногда меняет пропорции или отделку продукта вместе со сценой. С ним наушники сохраняются как есть, а меняется только окружающая обстановка.
Правка 2: заменить материал, не меняя форму

Использованная подсказка:
Оставьте форму, пропорции, логотип и угол съёмки наушников полностью неизменными. Измените только материал и цвет амбушюр и подушечки оголовья с матово-чёрного на коричневую кожу с видимыми швами, а корпус/дужки оголовья оставьте матово-чёрными. Сохраните однотонный серый студийный фон и освещение, фотография продукта для каталога электронной коммерции.
Эта правка более узкая, чем правка жизненной сцены: тот же фон, то же освещение, тот же угол съёмки — только материал амбушюр и подушечки оголовья меняется с матово-чёрного на коричневую кожу. Именно такая точная формулировка инструкции (указание конкретных деталей и конкретного материала) — причина того, что остальная часть продукта — корпус, логотип, контур — остаётся неизменной.
Почему эти правки надёжны
- Указывайте, что остаётся неизменным, а не только что меняется. Фраза «оставьте форму, логотип и пропорции неизменными» перед инструкцией по редактированию работает лучше, чем любые подробные описания нового фона или нового материала.
- Будьте буквальны в отношении цели. «Коричневая кожа с видимыми швами» оставляет модели меньше пространства для интерпретации, чем «сделай это премиальным на вид».
- Одна правка на подсказку. Замена фона и замена материала по отдельности работают хорошо; нагромождение нескольких несвязанных изменений в одной подсказке часто размывает якорь и сдвигает нежелательные детали.
- Используйте одну и ту же базовую фотографию для всех вариантов. Каждое изображение в этом руководстве начинается с одной и той же исходной фотографии — именно поэтому они могут использоваться вместе в одной карточке товара или кампании.
Пакетное редактирование каталога продуктов
Обе правки выше используют одну и ту же структуру запроса: существующий URL изображения плюс подсказка для редактирования, отправленные в асинхронную конечную точку задач hiapi. Приведённый ниже фрагмент кода зацикливает этот процесс по списку кортежей (base_image_url, prompt, output_name) — это тот же шаблон, который вы бы использовали для пакетной обработки всего каталога в набор фоновых или материальных вариантов.
import os
import time
import requests
API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_API_KEY"]
MODEL = "flux-2-klein-4b/image-to-image"
def submit_edit(base_image_url: str, prompt: str) -> str:
resp = requests.post(
API_BASE,
headers={"Authorization": f"Bearer {TOKEN}"},
json={
"model": MODEL,
"input": {
"prompt": prompt,
"image_urls": [base_image_url],
"resolution": "1 MP",
},
},
timeout=60,
)
resp.raise_for_status()
return resp.json()["data"]["taskId"]
def wait_and_download(task_id: str, out_path: str, poll_s: int = 5, timeout_s: int = 300) -> None:
deadline = time.time() + timeout_s
while time.time() < deadline:
r = requests.get(
f"{API_BASE}/{task_id}",
headers={"Authorization": f"Bearer {TOKEN}"},
timeout=30,
)
task = r.json().get("data", {})
if task.get("status") == "success":
url = task["output"][0]["url"]
img = requests.get(url, timeout=120)
with open(out_path, "wb") as f:
f.write(img.content)
return
if task.get("status") == "fail":
raise RuntimeError(task.get("error"))
time.sleep(poll_s)
raise TimeoutError(f"task {task_id} did not finish in {timeout_s}s")
# Одна запись на каждый продукт / вариант, который вам нужен.
batch = [
("https://cdn.example.com/products/headphones-black.jpg",
"Keep the product exactly as-is (shape, finish, logo, proportions). "
"Replace the background with a warm lifestyle desk scene, soft natural "
"light from the left.",
"headphones-lifestyle.jpg"),
("https://cdn.example.com/products/headphones-black.jpg",
"Keep the shape, proportions, logo, and camera angle exactly as they "
"are. Change only the ear cushion and headband padding material to tan "
"brown leather with visible stitching; background and lighting stay "
"the same.",
"headphones-tan-leather.jpg"),
]
for base_url, prompt, out_name in batch:
task_id = submit_edit(base_url, prompt)
wait_and_download(task_id, out_name)
print(f"saved {out_name}")
Каждый вызов независим, поэтому для больших каталогов вы обычно запускаете небольшую группу таких задач параллельно (нескольких воркеров обычно достаточно — узким местом является сам API задач, а не ваш клиент), а не строго одну за другой в цикле.
Цены
flux-2-klein-4b/image-to-image оплачивается за изображение, и стоимость растёт с увеличением разрешения вывода. По состоянию на 2026-08 уровень 1MP, использованный в двух правках этого руководства, стоит $0.00715 за изображение; ознакомьтесь со страницей цен, чтобы узнать полный спектр уровней разрешения (от 0.25MP до 4MP) и текущие тарифы других моделей, поскольку цены могут меняться.
Часто задаваемые вопросы
Изменит ли image-to-image форму или логотип продукта? Если вы явно попросите его не делать этого, то нет. Явное указание в начале подсказки того, что должно остаться фиксированным (форма, пропорции, логотип), — именно то, что удерживает эти элементы стабильными; отсутствие явного указания — самая частая причина нежелательных сдвигов.
Какое разрешение использовать для редактирования каталога? 1MP достаточно для большинства веб-карточек и жизненных сцен и позволяет контролировать затраты; переходите на 2MP или 4MP только для изображений, которые будут сильно обрезаться или печататься, поскольку каждый уровень стоит дороже.
Могу ли я запустить этот процесс для всего каталога сразу?
Да — пакетный скрипт выше и есть этот шаблон: цикл по кортежам (image, prompt, output name), отправляющий каждый элемент как отдельную задачу. Запускайте несколько запросов параллельно, а не один огромный последовательный цикл.
Чем это отличается от генерации продукта с нуля с помощью text-to-image? Text-to-image начинает с нуля, поэтому не может гарантировать, что результат будет соответствовать точной геометрии существующего продукта. Image-to-image начинается с вашей реальной фотографии, поэтому форма, логотип и пропорции, которые вы не просили изменить, сохраняются по построению — именно это и нужно каталогу продуктов.
Попробуйте сами
Когда подсказки точно ограничены, каждая из двух правок выше требует всего одного вызова API. Если у вас уже есть фотографии продуктов и вы хотите создать жизненные сцены или варианты материалов без пересъёмки, краткое руководство по hiapi проведёт вас через аутентификацию и первый запрос за несколько минут.
Похожие статьи
Все статьи →-
Руководство по использованию
Руководство по началу работы с seedream-5.0-pro/image-to-image: возможности, цены и ключевые моменты интеграции
Границы возможностей модели редактирования изображений ByteDance, принципы тарификации и практика инженерной интеграции
-
Руководство по использованию
Руководство по использованию seedream-5.0-pro text-to-image: границы возможностей, интеграция API и контроль затрат
Практический взгляд для разработчиков: от ключевых параметров до оценки стоимости $0.05 за изображение
-
Руководство по использованию
Руководство по началу работы с Hailuo 2.3 Fast для генерации видео из изображений: границы возможностей, цены и практика интеграции
Ключевые моменты выбора и интеграции модели MiniMax для генерации видео из изображений для разработчиков