Введение
MOSS-Image Текст в изображение создаёт одно изображение по текстовому промпту на MOSS-Image — открытом диффузионном трансформере OpenMOSS на 5 миллиардов параметров под Apache-2.0. Модель создана для картинок с большим количеством точного текста: постеров, обложек журналов, рекламы и вывесок. В наших тестах она также дочитывала очень длинные промпты до конца, а NSFW-промпты возвращались как написаны на каждом уровне от «Мягкий» до «Максимальный». Платформа не добавляет фильтр контента. Для собственных LoRA-файлов используйте MOSS-Image LoRA.
Выберите модель по задаче
| Что вам нужно | Модель |
|---|---|
| точный текст, длинные промпты и JSON-макет в базовой модели | MOSS-Image Текст в изображение (вы здесь) |
| та же модель плюс до трёх собственных LoRA | MOSS-Image LoRA Текст в изображение |
Ключевые возможности и особенности
Текст, который выходит как написан
Киноафиша с именами актёров и режиссёра, обложка журнала с тремя заголовками и строкой цены, название парфюма и неоновая вывеска мотеля в наших тестах были написаны правильно. OpenMOSS сообщает о такой же точности для английского и китайского текста.
Промпты, которые дочитываются до конца
Промпт принимает до 12000 символов. Красный зонт, упомянутый только в последнем предложении 13000-символьного промпта, был нарисован в левом нижнем углу.
JSON-макет
Передайте JSON-макет как промпт, и каждый текстовый блок или объект получит свою рамку. Афиша клуба с заголовком, курсивной подписью, составом и танцовщицей разместила каждый элемент там, где была рамка. OpenMOSS помечает формат как экспериментальный.
Пятнадцать форм, три уровня
От 1:3 до 3:1 в 1k, 1.5k или 2k. Изображение 16:9 в 1.5k вернулось размером 2048 x 1152, а 9:16 в 2k — 1536 x 2720.
Без цензуры
В наших тестах ничего не было отказано и не смягчено ни на одном уровне от «Мягкий» до «Максимальный». Ничего не фильтруется ни на входе, ни на выходе.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
prompt | Да | Каждую строку текста заключайте в кавычки и укажите, где она стоит. До 12000 символов; английский работает хорошо. Не менее 1 символов · Не более 12000 символов |
aspect_ratio | Нет | 15 форм от 1:3 до 3:1; по умолчанию 1:1. В 1k 4:3 — это 1168 x 880, а 16:9 — 1360 x 768. |
resolution | Нет | 1k (около 1 мегапикселя, по умолчанию), 1.5k или 2k. Уровень задаёт цену; широкий кадр в 1.5k вернулся размером 2048 x 1152. |
output_format | Нет | По умолчанию JPEG, при необходимости PNG или WebP. Формат на цену не влияет. |
seed | Нет | Помогает сравнивать изображения, пока вы меняете одно предложение за раз. Не гарантирует одинаковые пиксели. |
Стоимость
Оплата за изображение по уровню разрешения (1k, 1.5k или 2k). Соотношение сторон и формат вывода на цену не влияют. Неудачные запросы не оплачиваются.
| Спецификация | Стоимость |
|---|---|
| $0.024 / изображение |
| $0.048 / изображение |
| $0.096 / изображение |
Сценарии использования
Постеры, обложки и реклама
Название, слоган, имена актёров и дата в одном изображении или шапка с заголовками обложки и строкой цены. Заключайте каждую строку в кавычки и задавайте её место.
Вывески, баннеры и листовки
Неоновые вывески, афиши мероприятий и широкие баннеры, где слова и есть суть картинки. JSON-макет нужен, когда нужна рамка для каждого блока.
Длинные брифы в одном запросе
Вставляйте полный бриф, со сценой, нарядом, светом, объективом и каждой строкой текста, а не сокращайте его до нескольких предложений.
Руководство по промптам и практические советы
Сначала текст в кавычках, потом место
Напишите «LAST CALL AT THE MERIDIAN» в кавычках, затем укажите, где он стоит и как выглядит: золотые заглавные с засечками по нижней трети. Переносы строк внутри кавычек ставьте там, где строка должна разрываться.
Как написать JSON-макет
Промпт — это JSON-объект с summary (caption для всей картинки) и списком items. У каждого элемента есть label (text или object), caption, необязательный text и bbox. Задайте bbox_format как yxyx, а bbox_coord_space как abs_centralized: рамки задаются как [верх, лево, низ, право] в пикселях от центра холста, x растёт вправо, y растёт вниз.
Считайте по реальному размеру
Изображение 4:3 в 1k имеет размер 1168 x 880, поэтому x идёт от -584 до 584, а y от -440 до 440. Рамка [-400, -560, -140, 40] — это зона заголовка в левом верхнем углу. Перед расстановкой рамок узнайте размер результата для вашего соотношения и уровня.
Держите запасной seed
Буквы иногда слипаются: в одном запуске с парфюмом вместо NOIR вышло NOIIR. Смените seed и запустите снова. Seed делает запуски сопоставимыми, но не гарантирует одинаковые пиксели.
Добавляйте нужное предложениями
Негативного промпта и guidance нет. Описывайте героя, наряд, место, свет и объектив предложениями, а строки текста делайте достаточно короткими, чтобы их было легко прочесть в выбранном размере.
Быстрый старт API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "openmoss/moss-image/text-to-image",
"input": {
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette",
"resolution": "1k",
"aspect_ratio": "1:1",
"output_format": "jpeg"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.




