4.6 KiB
4.6 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.
Fan-out and choice
The two Asset UI fan-out presets, fleet images → choose → video and
expand → fleet images → choose → video, are fleet-images-choose-video and
expanded-fleet-images-choose-video:
Map{type many body over bind concurrency}runs the job itsbodywire names (body: image.image()) once per element ofover, withbind(@seed) set to the element, at mostconcurrencyat once, and returnsitemsin element order. A body withon_fail: @skipdrops the elements it fails on; otherwise one failure fails the Map. The body runs only inside its Map (the run reports it skipped, "runs inside Map").Choose{type many from pick question timeout}parks the run withNodeWaiting(options: the candidate indices) until the caller sets itspickinput to an index; apickgiven in the source or for the run chooses without asking. An answer is that run's choice and is not kept for later runs.
The creator spreads its candidates over distinct fleet boxes. A flow asks
for one job per seed and lets the fleet router place them; with
concurrency at the number of boxes the jobs normally land on different
boxes, but the router, not the flow, decides.
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.