СТАТТЯ

MOSS-Image (Apache-2.0, JSON layout): layout-driven self-host batch для Bubble-каталогів поруч із BIAIG

SKU-шаблон у repeating group — MOSS-Image дає явний JSON layout як контракт промпта і self-host batch leg поруч із closed API через BIAIG-router. Це архітектурна гіпотеза, не офіційна фіча MOSS.

Навіщо зараз

Після promo FLUX і перегляду pricing NB2.1 я знову дивлюся на image leg для каталогів. ComfyUI, Qwen, Diffusers і Bria вже лежать як сусідні шари в плані, але MOSS-Image (OpenMOSS, Apache-2.0 на weights/code) тягне інший тип truth source — layout-native JSON, а не caption-only text-to-image. Схожий розбір: Qwen-Image-2.1 open source: RGBA, 10.

Публічний реліз кластеризується навколо 2026-10-16 (weights/code), day-0 інтеграції (ComfyUI, SGLang, vLLM-Omni), arXiv report (2026-10-19) і окремий hosted MOSI API (2026-10-20). Для editorial self-host batch я не змішую MOSI API з повністю self-hosted Apache weights без явного розділення маршрутів.

Що саме дає MOSS (факти з Scout packet)

  • Ліцензія: Apache-2.0 на repo, weights і bundled inference code (OpenMOSS/MOSS-Image).
  • Моделі: MOSS-Image-Base і MOSS-Image-SFT (~5B DiT); у quick-start — PyTorch 2.9+, diffusers>=0.38, custom _moss_image pipeline, Qwen3.5 text encoder, FLUX.2 small VAE (окремі ліцензії third-party — перевіряйте compliance для packaged self-host image).
  • Відмінний контракт: layout JSON (часто як серіалізований prompt string) з полями на кшталт summary.caption, items[] (label, caption, optional text, bbox), bbox_format: "yxyx", bbox_coord_space: "abs_centralized" — pixel coords відносно центру canvas; width/height генерації мають збігатися (multiples of 16). Канон — USERGUIDE.md — Layout Prompts; feature позначено Experimental — я не продаю зрілість вище за документацію.

Self-host шляхи з офіційних джерел: Python/Diffusers, Gradio, ComfyUI 0.42+ (layout templates/nodes), SGLang serve з opt-in dynamic batching (--batching-max-size, --batching-delay-ms) — batched requests мають збігатися по resolution, steps, negative prompt, guidance. SGLang публікує вузькі H200 throughput/PSNR нотатки, не catalog-SKU SLA — production metrics я не вигадую; це arc production-validation.

Bubble: repeating group → layout JSON → batch worker

Це інтеграційна архітектура редакції, MOSS для Bubble/SKU так не задокументовано:

  1. Repeating group як editor truth — рядок = один items[] element: label (product/object/character), caption, optional text (ціна, SKU, promo copy), optional bbox якщо UI задає геометрію слота.
  2. Нормалізація bbox — ComfyUI node MOSS-Image Layout Prompt механічно конвертує box → centered yxyx JSON; width/height must match output size. Coords з Bubble geometry на різних aspect ratios (portrait SKU vs 1024²) — для мене відките питання fidelity.
  3. Batch leg — worker приймає масив validated layout JSON + shared generation params; для SGLang — batch compatibility; для Diffusers/ComfyUI queue — інший ops profile. Base vs SFT для exact product text і box adherence — open question, не claim.
  4. Збереження назад у Bubble — URL/file, metadata (model, checkpoint, seed, layout hash), status per SKU row. Схожий розбір: Qwen-Image-2.1 vs closed models: vendor.

BIAIG як router / failover (гіпотеза плану)

У публічних MOSS docs немає BIAIG. Якщо у вашому стеку BIAIG — closed-model router до promo/API legs, патерн виглядає так:

  • Primary: self-host MOSS batch, коли layout JSON passes schema validation і queue в межах вашого SLA.
  • Failover: closed API (BIAIG route), коли validation fail, Experimental layout ризик неприйнятний, або self-host p95 пропущено.

BIAIG як router / failover (гіпотеза плану)

Умови failover, модель fallback і cost — узгодити окремо; тут лише methodology, не verified capability.

Ризики конфігурації (чесно)

  • Prompt enhancer на layout workflows у ComfyUI може скинути bounding boxes — для automated Bubble→JSON pipelines я тримаю off (layout templates так і рекомендують).
  • SGLang batching: без quality=exact pixels можуть відрізнятися від per-sample; для SKU visual consistency фіксую params і тестую identity cross-batch.
  • Experimental layout — marketing claims на poster/composition demos без acceptance tests (text accuracy, layout adherence, latency p95, cost per SKU image) я не будую. Схожий розбір: Qwen-Image-2.1 до 28.09 UTC+8: freeze.

Практичний checklist перед prod

  • Schema validator для layout JSON перед enqueue (bbox_format, coord space, canvas size).
  • Один canonical mapping RG columns → items[] fields; version field у JSON для replan.
  • Розділення self-host Apache path vs MOSI hosted API в workflow і privacy rules Bubble.
  • Production-validation arc: Base vs SFT, enhancer on/off для коротких SKU captions, batch server choice (SGLang vs Diffusers vs ComfyUI queue) під ваш GPU VRAM — без вигаданих throughput цифр.

Практичний checklist перед prod

Checklist item What it is for What to define / verify
Schema validator Layout JSON before enqueue bbox_format, coord space, canvas size
Canonical mapping RG columns → items[] fields Single mapping; version field in JSON for replan
Path separation Bubble workflow and privacy rules Self-host Apache path vs MOSI hosted API
Production-validation arc Pre-prod model and batch setup Base vs SFT; enhancer on/off for short SKU captions; batch server choice (SGLang vs Diffusers vs ComfyUI queue) under your GPU VRAM — without invented throughput numbers

Джерела (межі статті)

GitHub/HF/openmoss.ai, ComfyUI MOSS tutorial, SGLang cookbook, arXiv technical report — див. Scout packet. Порівняння з ComfyUI 0.40 + Qwen, Diffusers 0.41, Bria Fibo — adjacent, не дублікат: MOSS додає layout JSON як prompt truth, решта — UI, pipeline або інший self-host leg.

Leftovers: вибір Base/SFT, failover contract для BIAIG, packaged image compliance — на вас + production-validation arc.

← Усі статті