Skip to content

Give VIP draws a third picture from MOSS-Image - #266

Merged
iamwavecut merged 1 commit into
mainfrom
feat/moss-vip-slot
Oct 19, 2026
Merged

iamwavecut merged 1 commit into
mainfrom
feat/moss-vip-slot

Conversation

@iamwavecut

@iamwavecut iamwavecut commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • VIP draws run FLUX.3, Krea 2 and MOSS-Image SFT side by side: ParallelImageGenerator(ParallelImageGenerator(flux, krea), moss). The MOSS slot is workflow image_generation_moss on draw-api moss_generate (iamwavecut/aifarm-draw#36, GPU1).
  • ImageModel::Moss (prompt target moss, display name "MOSS-Image", 4000-character limit) with its own optimizer rules and example: one cohesive English prose paragraph of 100-300 words that opens with the medium and composition, uses spatial words, quotes visible text exactly with its layout, and carries no tag lists or quality tags. This follows the MOSS-Image USERGUIDE and its prompt-enhancer skill.
  • Nested parallel generators hand each child its own slice of the optimized prompt variants (image_generation_request_for_prompt_slots), so the third slot gets the third variant.
  • Migration 209: workflow image_generation_moss (image, full routing, 3 hops, retry wall 120 s, lane priority 1), model moss-image-sft-heretic in pool aifarm-gpu1-media (prompt_target: moss), primary MOSS and fallback FLUX.3 assignments. Rows are created only when the aifarm-draw provider, the pool and the FLUX.3 model exist; each carries created_by_moss_image_slot_v1, and the down migration removes exactly those rows.

Timing

A MOSS draw takes 40 s at 30 steps on the GPU1 RTX 4060 Ti; the first one after a worker load also builds the fused caches. The retry wall is 120 s so the FLUX.3 fallback can still start after a late MOSS failure.

Checks

  • cargo fmt --all -- --check, cargo clippy --workspace --all-targets -- -D warnings: clean.
  • cargo test -p openplotva-media -p openplotva-app: 1419 + 48 passed, including moss_slots_get_their_own_rules_and_example and nested_parallel_generators_hand_each_slot_its_own_prompt.
  • Migration 209 on Postgres 17 (pgvector) after migrations 1-208: workflow only without the provider; with provider, pool and FLUX.3 model the expected rows; a second run is a no-op; down removes them.

Compatibility

  • Migration 209 is additive: applying it up creates one workflow, one model and two assignments, each guarded by ON CONFLICT or NOT EXISTS, so a second apply is a no-op. The down migration removes only the rows carrying created_by_moss_image_slot_v1, then the model and the workflow if nothing else references them; rollback leaves operator-made rows in place.
  • Older binaries ignore the new workflow, so the migration can run before or after the image switch.

Prompt shape

prompts/image/optimizer.prompt gains one {{#if moss}} block after the Krea rules; the role markers, the existing slot blocks and the output contract are unchanged, and the template renders without the block when the VIP slots do not include MOSS.

VIP draws now run FLUX.3, Krea 2 and MOSS-Image SFT (draw-api
moss_generate on the AI Farm GPU1 worker) side by side. MOSS reads a
Qwen3.5 encoder trained on its recaptioner's long captions, so its slot
gets its own optimizer rules and example: one cohesive English prose
paragraph of 100-300 words that opens with the medium and the
composition, places things with spatial words and quotes visible text
exactly with its layout, without tag lists or quality tags.

Nested parallel generators now hand each child its own slice of the
optimized prompts, so the third slot gets the third variant instead of
the first.

Migration 209 adds the user-facing workflow image_generation_moss (lane
priority 1, retry wall 120 s, because a MOSS draw takes 40 s and the
first after a worker load about 90 s), the model moss-image-sft-heretic
in the GPU1 media pool and FLUX.3 as its fallback. Rows are created only
when the aifarm-draw provider, the pool and the FLUX.3 model exist, and
carry a marker that the down migration removes.
@github-actions

Copy link
Copy Markdown
Warnings
⚠️ Migration changes should explain forward/down compatibility, rollback/no-op behavior, or why rollback is impossible.
⚠️ Prompt files are cache-sensitive contracts; confirm prompt shape and role markers were preserved intentionally.
Messages
📖 Danger checked 6 changed file(s).

Generated by 🚫 dangerJS against 5d58969

@iamwavecut
iamwavecut merged commit 4aef8a6 into main Oct 19, 2026
12 checks passed
@iamwavecut
iamwavecut deleted the feat/moss-vip-slot branch October 19, 2026 22:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant