Картинка-референс — чтобы модель отталкивалась от твоего изображения (изменить его, дорисовать, совместить несколько), шли запрос на /v1/images/edits. Это multipart/form-data, как в OpenAI Images API: картинка идёт файлом в поле image — не ссылкой и не base64 внутри JSON.
curl https://vibecode.moe/v1/images/edits \
-H "Authorization: Bearer vk-YOUR-KEY" \
-F model=gpt-image-2.5 \
-F prompt="put a red scarf on the fox" \
-F image=@fox.png
from openai import OpenAI
client = OpenAI(base_url="https://vibecode.moe/v1", api_key="vk-YOUR-KEY")
result = client.images.edit(
model="gpt-image-2.5",
image=open("fox.png", "rb"),
prompt="put a red scarf on the fox",
)
print(result.data[0].url)
Обязательны model, prompt и хотя бы один файл image. Файлов может быть до четырёх (повтори поле image), формат — PNG, JPEG или WebP, весь запрос — до 32 МБ. Остальные поля (size, quality, response_format…) — те же, что при генерации. Файл mask принимается, но модели пока его не учитывают — правится вся картинка по описанию; n на правке даёт одну картинку. Запрос без файла или с не-картинкой вернёт ошибку 400 сразу, без списания. Правка идёт дольше генерации — до 2–3 минут, ставь таймаут клиента не меньше 4 минут.
Ответ, временная ссылка и цена — как у генерации: одна картинка в ответе — одно списание по цене модели.