4 KiB
Recipe mapping gaps
Lane F18 closes the creator-template and advertised-domain gaps that can be
expressed as a finite flow graph. The shipped registry now contains every
linear/looped Asset UI pipeline shape and at least one template for every
domain advertised by libs/ai/hub/registry.json.
Filled in F18
- Structure-guided image generation is represented by
image-control.splash(DA3 depth → FLUX depth control) andimage-control-canny.splash(a supplied image → FLUX Canny control). - Video post-processing has separate intent-level templates:
video-enhance.splashuses the creator defaults (upscale=2,interpolate=2,flow_map=true), whilevideo-tween.splashasks only for interpolation (upscale=1,interpolate=2,flow_map=false). Both route through the realenhancedomain; no fictitious tween domain was added. - The creator's direct, expanded, keyframed, looped, edit, sprite, mesh, PBR, splat, world, and playable-character pipeline variants now have templates. Image stages use 512×512 and model-default steps, video stages use 640×352/39 frames/30 steps, music uses 180 seconds, and the quality-model pins match the preset definitions.
- The previously uncovered advertised domains now have typed prototypes and
templates:
body(body-pose),segment(segmentandprompt-to-segment),stt(speech-to-text),beats(audio-beats),stems(audio-stems), andnotes(audio-notes). - Completed values use
Publishwhenever the asset-library type supports them. Companion opaque values such as MIDI and a stem bundle remain typedOutputvalues becausePublishdeliberately does not acceptbytes.
Remaining language gap
The two Asset UI fan-out presets—fleet images → choose → video and
expand → fleet images → choose → video—remain the sole creator pipeline
shape without an exact template. They require a language-level Map/fan-out
operator plus a run-time choice gate over the generated candidates. A linear
template would hide the selection step and would not be parity, so the
closest reusable pieces remain prompt-to-video-keyframe.splash and
expanded-prompt-to-video.splash after a candidate has been selected.
Intentional semantic adaptations
- There is no
image.enhancekind. The creator's sprite-enhance pipeline is aneditrequest pinned toflux2-dev, sosprite-enhance.splashusesImageEditrather than inventing a routing domain. - OCR is an advertised hub domain but not an Asset UI generation kind.
ocr.splashtherefore keeps the inlineGen{domain: "ocr"}idiom and carries the backend's HTML result as typedtext. text.expandis a queued hub domain, while authored recipes intentionally useLlmso the system instruction is visible and editable. This does not expose the creator job'starget_domain,identity_anchor,style, andvariantsfields as a dedicated node.annotate.assetmutates an existing asset annotation record rather than publishing a normal artifact.annotate.splashperforms the value-producing portion (vision plus strict JSON parsing); the store mutation remains an application operation, not a hidden graph side effect.
Parameter and post-processing boundaries
- The base
Imageprototype remains 1024×1024/8 steps for language compatibility. Creator-parity templates explicitly select 512×512 and omitsteps, preserving the creator's model-default setting. Upscale.factor=4is translated to the hub request'supscalefield, andImage.negativeis translated tonegative_promptby the executor.- Paired image dimensions and video
(frames, steps)choices are coupled UI presets. A generic inspector must not turn them into a Cartesian product. - Resize, thumbnail derivation, GLB inspection, media probing, catalog dressing, provenance, and rights processing remain importer/store work. Templates make generation and publication explicit without pretending those application steps are hub domains.