Skip to content

Route FLUX.3 work and a third VIP picture to Fibo 2.0 - #278

Merged
iamwavecut merged 1 commit into
mainfrom
feat/fibo2-models
Oct 23, 2026
Merged

iamwavecut merged 1 commit into
mainfrom
feat/fibo2-models

Conversation

@iamwavecut

Copy link
Copy Markdown
Owner

Fibo 2.0 replaces FLUX.3 on aifarm-draw (iamwavecut/aifarm-draw#41, iamwavecut/aifarm-gpu-butler#15).

Routing (migration 212)

  • Fibo 2.0 Edit Turbo (fibo_edit) takes every FLUX.3 edit assignment; Fibo 2.0 Dev (fibo_generate) takes every FLUX.3 text-to-image assignment, including the fallbacks of the Krea 2 and MOSS-Image slots. FLUX.3 is disabled.
  • VIP draws get a third picture from the new image_generation_fibo workflow: Fibo 2.0 Dev primary, Krea 2 fallback, retry wall 240 s (a 50-step Fibo 2.0 Dev draw takes 100–120 s on GPU1).
  • Every switched row records its previous model and every created row carries a marker, so the down migration restores the previous routing exactly. The migration does nothing unless the aifarm-draw provider, the GPU1 media pool, FLUX.3 and Krea 2 exist. Checked on a copy of the prod routing tables: up, a rerun stopped by the marker guard, and down back to the original rows.

Prompts

  • New prompt target fibo (ImageModel::Fibo, 1600-char summary or instruction). When a slot targets Fibo 2.0, the generation and edit optimizers also return fibo_caption: a VGL caption (objects, background, lighting, aesthetics, photographic characteristics, style, text) whose short_description is the slot's prompt. The schema puts fibo_caption before outputs, so grammar-constrained JSON drafts the caption first.
  • Only the Fibo 2.0 endpoints receive the caption; MOSS-Image keeps its layout, and a hop to another model sends the prose prompt alone. An edit sends the caption of the result, and draw-api adds the instruction as edit_instruction.
  • Both optimizer prompts follow the Fibo 2.0 VGL guide; the edit optimizer names references as <image_1>, <image_2>, … the way Fibo 2.0 Edit reads them.
  • One edit takes at most 4 references (was 10), in the draw tool, the dialog prompt and the reference selection.

Checks

  • cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings
  • cargo test -p openplotva-app -p openplotva-core -p openplotva-dialog -p openplotva-llm -p openplotva-media -p openplotva-storage: all pass.
  • Fibo 2.0 worker smoke on a 4060 Ti: text-to-image at 1 MP in 96–121 s (50 steps), edits in 14–15 s with one reference, 21.5 s with two, 62 s with four.

Fibo 2.0 Edit Turbo takes every FLUX.3 edit assignment and Fibo 2.0 Dev every FLUX.3 text-to-image assignment; VIP draws get a third picture from image_generation_fibo (Fibo 2.0 Dev, Krea 2 fallback). The optimizers write a VGL caption for Fibo 2.0 slots, which only the Fibo 2.0 endpoints receive, and one edit takes at most four references.
@github-actions

Copy link
Copy Markdown
Warnings
⚠️ Prompt files are cache-sensitive contracts; confirm prompt shape and role markers were preserved intentionally.
⚠️ Large PR (1302 changed lines). Consider splitting unless this is generated/mechanical.
Messages
📖 Danger checked 15 changed file(s).

Generated by 🚫 dangerJS against 902542b

@iamwavecut

Copy link
Copy Markdown
Owner Author

Danger warnings:

  • Prompt files: the shape is kept on purpose. No partials or role markers changed. The optimizer templates replace the flux3 flag with fibo, and with fibo set they ask for one more JSON field, fibo_caption, which the schema in openplotva-media declares. The dialog system prompt changes only the reference limit (10 → 4).
  • Size: the routing migration, the prompt target, the optimizer schema and prompts and the edit reference limit must land together. The migration points workflows at the Fibo 2.0 endpoints, and those endpoints need the caption contract that the rest of the change adds.

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