justinchuby commited on
Commit
dd7ecd9
·
verified ·
1 Parent(s): 2d30ae2

Add annotated inference metadata companion

Browse files

Add a comment-rich inference_metadata.annotated.yaml that parses to the same metadata object as the canonical file, and link it from the model card. The canonical inference_metadata.yaml is unchanged. When provenance hashes README.md, refresh that hash and add the annotated-file hash without changing producer/source identity.

Files changed (2) hide show
  1. README.md +7 -1
  2. inference_metadata.annotated.yaml +1071 -0
README.md CHANGED
@@ -253,4 +253,10 @@ The intended use of this model is with the [Safety Checker](https://github.com/h
253
  }
254
  ```
255
 
256
- *This model card was written by Bo-Kyeong Kim and is based on the [Stable Diffusion v1 model card]( https://huggingface.co/CompVis/stable-diffusion-v1-4).*
 
 
 
 
 
 
 
253
  }
254
  ```
255
 
256
+ *This model card was written by Bo-Kyeong Kim and is based on the [Stable Diffusion v1 model card]( https://huggingface.co/CompVis/stable-diffusion-v1-4).*
257
+
258
+ <!-- inference-metadata-annotation:start -->
259
+ ## Annotated inference metadata
260
+
261
+ Review [`inference_metadata.annotated.yaml`](./inference_metadata.annotated.yaml) for inline explanations of this package's workflow, tensor/state/cache contracts, and fail-closed omissions. [`inference_metadata.yaml`](./inference_metadata.yaml) remains the canonical machine-authored contract; automated validation confirms both files parse to the same metadata object.
262
+ <!-- inference-metadata-annotation:end -->
inference_metadata.annotated.yaml ADDED
@@ -0,0 +1,1071 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Annotated review companion for justinchuby/onnx-genai-stable-diffusion-bk-sdm-small.
2
+ # Model form: Stable Diffusion image generation.
3
+ # Canonical authority: inference_metadata.yaml at revision 2d30ae2ebfacf5c071693836d70ebd14d8fd84d3.
4
+ # Comments explain authored semantics, derived structure, and fail-closed omissions.
5
+ # After YAML parsing this file is mechanically equal to the canonical metadata; comments do not create a second contract.
6
+ # Backend implementation, recorded execution, and performance evidence remain separate from this portable metadata.
7
+ # Schema spelling `v1` normalizes under the current reader; versioning gates unknown fields before typed parsing. No component authors batch_capacity, so independent requests must execute per item at every component.
8
+ schema_version: v1
9
+ # The pipeline contains executable package semantics. Deployment/QoS policy and backend-derived execution plans live outside this portable contract.
10
+ pipeline:
11
+ # This typed SSA workflow is the authoritative execution contract for the package.
12
+ workflow:
13
+ # Manifest vocabulary declares interpreter/adapter ABI requirements. It is not ORT/native readiness or performance evidence.
14
+ manifest:
15
+ # Current v1 capability strings mirror typed workflow structure; the structure remains the semantic source of truth.
16
+ capabilities:
17
+ - workflow_ssa
18
+ - linear_effects
19
+ - nested_control_flow
20
+ - loop_induction_values
21
+ - typed_emit
22
+ # Workflow inputs are the complete typed boundary. Roles and sources are authored; absent required values must fail before execution.
23
+ inputs:
24
+ # Input `request.max_iterations` is optional; omission uses semantic default 10, provided by the request through a typed runtime role, and carries runtime role max_iterations@1.0. Unsupported required roles must fail closed.
25
+ request.max_iterations:
26
+ # Authored tensor ABI: dtype int64, rank 1, shape [1]. No grouping permission is implied by this shape.
27
+ contract:
28
+ dtype: int64
29
+ rank: 1
30
+ shape:
31
+ - 1
32
+ # Role identifies runtime semantics without relying on a model-family name.
33
+ role:
34
+ kind: runtime
35
+ version: '1.0'
36
+ role: max_iterations
37
+ # Source states who must provide this value; the runtime must not invent application data.
38
+ source:
39
+ kind: request
40
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
41
+ required: false
42
+ # This is a semantic tensor default used only when the optional input is omitted.
43
+ default: 10
44
+ # Input `package.false` is optional; omission uses semantic default False, a package-authored literal/default, and carries opaque. Unsupported required roles must fail closed.
45
+ package.false:
46
+ # Authored tensor ABI: dtype bool, rank 1, shape [component.unet.batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
47
+ contract:
48
+ dtype: bool
49
+ rank: 1
50
+ shape:
51
+ - component.unet.batch
52
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
53
+ batch_layout:
54
+ kind: request_aligned
55
+ axis: 0
56
+ # Role identifies runtime semantics without relying on a model-family name.
57
+ role:
58
+ kind: opaque
59
+ # Source states who must provide this value; the runtime must not invent application data.
60
+ source:
61
+ kind: literal
62
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
63
+ required: false
64
+ # This is a semantic tensor default used only when the optional input is omitted.
65
+ default: false
66
+ # Input `request.seed` is optional; omission uses semantic default 0, provided by the request through a typed runtime role, and carries runtime role seed@1.0. Unsupported required roles must fail closed.
67
+ request.seed:
68
+ # Authored tensor ABI: dtype int64, rank 1, shape [component.unet.batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
69
+ contract:
70
+ dtype: int64
71
+ rank: 1
72
+ shape:
73
+ - component.unet.batch
74
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
75
+ batch_layout:
76
+ kind: request_aligned
77
+ axis: 0
78
+ # Role identifies runtime semantics without relying on a model-family name.
79
+ role:
80
+ kind: runtime
81
+ version: '1.0'
82
+ role: seed
83
+ # Source states who must provide this value; the runtime must not invent application data.
84
+ source:
85
+ kind: request
86
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
87
+ required: false
88
+ # This is a semantic tensor default used only when the optional input is omitted.
89
+ default: 0
90
+ # The caller may supply this exact tensor instead of asking the workflow to derive it.
91
+ externally_suppliable: true
92
+ # Input `package.rng_offset` is optional; omission uses semantic default 0, a package-authored literal/default, and carries opaque. Unsupported required roles must fail closed.
93
+ package.rng_offset:
94
+ # Authored tensor ABI: dtype int64, rank 1, shape [component.unet.batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
95
+ contract:
96
+ dtype: int64
97
+ rank: 1
98
+ shape:
99
+ - component.unet.batch
100
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
101
+ batch_layout:
102
+ kind: request_aligned
103
+ axis: 0
104
+ # Role identifies runtime semantics without relying on a model-family name.
105
+ role:
106
+ kind: opaque
107
+ # Source states who must provide this value; the runtime must not invent application data.
108
+ source:
109
+ kind: literal
110
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
111
+ required: false
112
+ # This is a semantic tensor default used only when the optional input is omitted.
113
+ default: 0
114
+ # Input `request.input_ids` is required, provided by the request through a typed runtime role, and carries runtime role prompt_tokens@1.0. Unsupported required roles must fail closed.
115
+ request.input_ids:
116
+ # Authored tensor ABI: dtype int64, rank 2, shape [component.text_encoder.batch, component.text_encoder.sequence_len]. No grouping permission is implied by this shape.
117
+ contract:
118
+ dtype: int64
119
+ rank: 2
120
+ shape:
121
+ - component.text_encoder.batch
122
+ - component.text_encoder.sequence_len
123
+ # Role identifies runtime semantics without relying on a model-family name.
124
+ role:
125
+ kind: runtime
126
+ version: '1.0'
127
+ role: prompt_tokens
128
+ # Source states who must provide this value; the runtime must not invent application data.
129
+ source:
130
+ kind: request
131
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
132
+ required: true
133
+ # The caller may supply this exact tensor instead of asking the workflow to derive it.
134
+ externally_suppliable: true
135
+ # Input `request.negative_input_ids` is required, provided by the request through a typed runtime role, and carries runtime role negative_prompt_tokens@1.0. Unsupported required roles must fail closed.
136
+ request.negative_input_ids:
137
+ # Authored tensor ABI: dtype int64, rank 2, shape [component.text_encoder.batch, component.text_encoder.sequence_len]. No grouping permission is implied by this shape.
138
+ contract:
139
+ dtype: int64
140
+ rank: 2
141
+ shape:
142
+ - component.text_encoder.batch
143
+ - component.text_encoder.sequence_len
144
+ # Role identifies runtime semantics without relying on a model-family name.
145
+ role:
146
+ kind: runtime
147
+ version: '1.0'
148
+ role: negative_prompt_tokens
149
+ # Source states who must provide this value; the runtime must not invent application data.
150
+ source:
151
+ kind: request
152
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
153
+ required: true
154
+ # The caller may supply this exact tensor instead of asking the workflow to derive it.
155
+ externally_suppliable: true
156
+ # Input `request.guidance_scale` is optional; omission uses semantic default 7.5, provided by the request through a typed runtime role, and carries runtime role guidance_scale@1.0. Unsupported required roles must fail closed.
157
+ request.guidance_scale:
158
+ # Authored tensor ABI: dtype float32, rank 1, shape [component.unet.batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
159
+ contract:
160
+ dtype: float32
161
+ rank: 1
162
+ shape:
163
+ - component.unet.batch
164
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
165
+ batch_layout:
166
+ kind: request_aligned
167
+ axis: 0
168
+ # Role identifies runtime semantics without relying on a model-family name.
169
+ role:
170
+ kind: runtime
171
+ version: '1.0'
172
+ role: guidance_scale
173
+ # Source states who must provide this value; the runtime must not invent application data.
174
+ source:
175
+ kind: request
176
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
177
+ required: false
178
+ # This is a semantic tensor default used only when the optional input is omitted.
179
+ default: 7.5
180
+ # Input `package.loop_0_active` is optional; omission uses semantic default True, a package-authored literal/default, and carries opaque. Unsupported required roles must fail closed.
181
+ package.loop_0_active:
182
+ # Authored tensor ABI: dtype bool, rank 1, shape [1]. No grouping permission is implied by this shape.
183
+ contract:
184
+ dtype: bool
185
+ rank: 1
186
+ shape:
187
+ - 1
188
+ # Role identifies runtime semantics without relying on a model-family name.
189
+ role:
190
+ kind: opaque
191
+ # Source states who must provide this value; the runtime must not invent application data.
192
+ source:
193
+ kind: literal
194
+ # Required values fail closed when absent; optional values may use only their authored default/presence rule.
195
+ required: false
196
+ # This is a semantic tensor default used only when the optional input is omitted.
197
+ default: true
198
+ # Workflow outputs are the complete public result boundary and retain explicit tensor contracts.
199
+ outputs:
200
+ # Output `image` publishes the authored image result at the pre_adapter stage; it is not backend-readiness evidence.
201
+ image:
202
+ # Authored tensor ABI: dtype float32, rank 4, shape [component.vae_decoder.batch, 3, component.vae_decoder.image_height, component.vae_decoder.image_width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
203
+ contract:
204
+ dtype: float32
205
+ rank: 4
206
+ shape:
207
+ - component.vae_decoder.batch
208
+ - 3
209
+ - component.vae_decoder.image_height
210
+ - component.vae_decoder.image_width
211
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
212
+ batch_layout:
213
+ kind: request_aligned
214
+ axis: 0
215
+ role: image
216
+ # The numeric range is part of the output interpretation contract.
217
+ value_range: negative_one_to_one
218
+ # Stage records whether adapters/postprocessing have run before this value is exposed.
219
+ stage: pre_adapter
220
+ # Output `latent` publishes the authored tensor result at the pre_adapter stage; it is not backend-readiness evidence.
221
+ latent:
222
+ # Authored tensor ABI: dtype float32, rank 4, shape [component.unet.batch, 4, component.unet.height, component.unet.width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
223
+ contract:
224
+ dtype: float32
225
+ rank: 4
226
+ shape:
227
+ - component.unet.batch
228
+ - 4
229
+ - component.unet.height
230
+ - component.unet.width
231
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
232
+ batch_layout:
233
+ kind: request_aligned
234
+ axis: 0
235
+ role: tensor
236
+ # Stage records whether adapters/postprocessing have run before this value is exposed.
237
+ stage: pre_adapter
238
+ # Output `noise_estimate` publishes the authored tensor result at the pre_adapter stage; it is not backend-readiness evidence.
239
+ noise_estimate:
240
+ # Authored tensor ABI: dtype float32, rank 4, shape [component.unet.batch, 4, component.unet.height, noise_estimate_width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
241
+ contract:
242
+ dtype: float32
243
+ rank: 4
244
+ shape:
245
+ - component.unet.batch
246
+ - 4
247
+ - component.unet.height
248
+ - noise_estimate_width
249
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
250
+ batch_layout:
251
+ kind: request_aligned
252
+ axis: 0
253
+ role: tensor
254
+ # Stage records whether adapters/postprocessing have run before this value is exposed.
255
+ stage: pre_adapter
256
+ # Output `latent_trajectory` publishes the authored tensor result at the pre_adapter stage; it is not backend-readiness evidence.
257
+ latent_trajectory:
258
+ # Authored tensor ABI: dtype float32, rank 4, shape [component.unet.batch, 4, component.unet.height, trajectory_width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
259
+ contract:
260
+ dtype: float32
261
+ rank: 4
262
+ shape:
263
+ - component.unet.batch
264
+ - 4
265
+ - component.unet.height
266
+ - trajectory_width
267
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
268
+ batch_layout:
269
+ kind: request_aligned
270
+ axis: 0
271
+ role: tensor
272
+ # Stage records whether adapters/postprocessing have run before this value is exposed.
273
+ stage: pre_adapter
274
+ # Output `rng_offset` publishes the authored tensor result at the pre_adapter stage; it is not backend-readiness evidence.
275
+ rng_offset:
276
+ # Authored tensor ABI: dtype int64, rank 1, shape [component.unet.batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
277
+ contract:
278
+ dtype: int64
279
+ rank: 1
280
+ shape:
281
+ - component.unet.batch
282
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
283
+ batch_layout:
284
+ kind: request_aligned
285
+ axis: 0
286
+ role: tensor
287
+ # Stage records whether adapters/postprocessing have run before this value is exposed.
288
+ stage: pre_adapter
289
+ # Components are the executable artifacts and semantic policy programs. Their presence does not prove ORT/native readiness or performance.
290
+ components:
291
+ # Component `text_encoder` is an encoder compute graph using onnx from `text_encoder/model.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
292
+ text_encoder:
293
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
294
+ implementation:
295
+ kind: onnx
296
+ artifact: text_encoder/model.onnx
297
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
298
+ ports:
299
+ # Semantic port roles identify tokens, logits, positions, masks, caches, or media without architecture-name conditionals.
300
+ roles:
301
+ input_ids: token_ids
302
+ last_hidden_state: hidden_states
303
+ # Component `unet` is a denoising compute graph using onnx from `unet/model.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
304
+ unet:
305
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
306
+ implementation:
307
+ kind: onnx
308
+ artifact: unet/model.onnx
309
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
310
+ ports:
311
+ # Semantic port roles identify tokens, logits, positions, masks, caches, or media without architecture-name conditionals.
312
+ roles:
313
+ encoder_hidden_states: encoder_hidden_states
314
+ # Component `vae_decoder` is a primary model compute graph using onnx from `vae_decoder/model.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
315
+ vae_decoder:
316
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
317
+ implementation:
318
+ kind: onnx
319
+ artifact: vae_decoder/model.onnx
320
+ # Component `solver_step` is an executable semantic policy component implementing `onnx-genai.solver-step` using onnx from `policies/solver_step.onnx`. Policy graphs compute tensors and semantics; they are not deployment/QoS knobs or backend readiness claims. No batch_capacity is authored, so the runtime must not group independent requests at this component.
321
+ solver_step:
322
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
323
+ implementation:
324
+ kind: onnx
325
+ artifact: policies/solver_step.onnx
326
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
327
+ ports:
328
+ # Exact graph inputs; each tensor shape/dtype is authored.
329
+ inputs:
330
+ # Port `sample`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
331
+ sample:
332
+ dtype: float32
333
+ rank: 4
334
+ shape:
335
+ - batch
336
+ - channels
337
+ - height
338
+ - width
339
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
340
+ batch_layout:
341
+ kind: request_aligned
342
+ axis: 0
343
+ # Port `derivative`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
344
+ derivative:
345
+ dtype: float32
346
+ rank: 4
347
+ shape:
348
+ - batch
349
+ - channels
350
+ - height
351
+ - width
352
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
353
+ batch_layout:
354
+ kind: request_aligned
355
+ axis: 0
356
+ # Port `step`: Authored tensor ABI: dtype int64, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
357
+ step:
358
+ dtype: int64
359
+ rank: 1
360
+ shape:
361
+ - batch
362
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
363
+ batch_layout:
364
+ kind: request_aligned
365
+ axis: 0
366
+ # Port `schedule`: Authored tensor ABI: dtype float32, rank 1, shape [schedule_length]. No grouping permission is implied by this shape.
367
+ schedule:
368
+ dtype: float32
369
+ rank: 1
370
+ shape:
371
+ - schedule_length
372
+ # Exact graph outputs; each tensor shape/dtype is authored.
373
+ outputs:
374
+ # Port `next_state`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
375
+ next_state:
376
+ dtype: float32
377
+ rank: 4
378
+ shape:
379
+ - batch
380
+ - channels
381
+ - height
382
+ - width
383
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
384
+ batch_layout:
385
+ kind: request_aligned
386
+ axis: 0
387
+ # Semantic component ABI `onnx-genai.solver-step`; its bindings/parameters affect output correctness.
388
+ contract:
389
+ id: onnx-genai.solver-step
390
+ version: '1'
391
+ bindings:
392
+ state: sample
393
+ estimate: derivative
394
+ step: step
395
+ schedule: schedule
396
+ next_state: next_state
397
+ # Component `continue_predicate` is an authored workflow compute component using onnx from `policies/continue_predicate.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
398
+ continue_predicate:
399
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
400
+ implementation:
401
+ kind: onnx
402
+ artifact: policies/continue_predicate.onnx
403
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
404
+ ports:
405
+ # Exact graph inputs; each tensor shape/dtype is authored.
406
+ inputs:
407
+ # Port `done`: Authored tensor ABI: dtype bool, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
408
+ done:
409
+ dtype: bool
410
+ rank: 1
411
+ shape:
412
+ - batch
413
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
414
+ batch_layout:
415
+ kind: request_aligned
416
+ axis: 0
417
+ # Exact graph outputs; each tensor shape/dtype is authored.
418
+ outputs:
419
+ # Port `continue`: Authored tensor ABI: dtype bool, rank 1, shape [1]. No grouping permission is implied by this shape.
420
+ continue:
421
+ dtype: bool
422
+ rank: 1
423
+ shape:
424
+ - 1
425
+ # Component `diffusion_schedule` is a diffusion/flow solver policy graph using onnx from `policies/diffusion_schedule.onnx`. Policy graphs compute tensors and semantics; they are not deployment/QoS knobs or backend readiness claims. No batch_capacity is authored, so the runtime must not group independent requests at this component.
426
+ diffusion_schedule:
427
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
428
+ implementation:
429
+ kind: onnx
430
+ artifact: policies/diffusion_schedule.onnx
431
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
432
+ ports:
433
+ # Exact graph inputs; each tensor shape/dtype is authored.
434
+ inputs: {}
435
+ # Exact graph outputs; each tensor shape/dtype is authored.
436
+ outputs:
437
+ # Port `schedule`: Authored tensor ABI: dtype float32, rank 1, shape [11]. No grouping permission is implied by this shape.
438
+ schedule:
439
+ dtype: float32
440
+ rank: 1
441
+ shape:
442
+ - 11
443
+ # Component `diffusion_timesteps` is an authored workflow compute component using onnx from `policies/diffusion_timesteps.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
444
+ diffusion_timesteps:
445
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
446
+ implementation:
447
+ kind: onnx
448
+ artifact: policies/diffusion_timesteps.onnx
449
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
450
+ ports:
451
+ # Exact graph inputs; each tensor shape/dtype is authored.
452
+ inputs: {}
453
+ # Exact graph outputs; each tensor shape/dtype is authored.
454
+ outputs:
455
+ # Port `schedule`: Authored tensor ABI: dtype float32, rank 1, shape [10]. No grouping permission is implied by this shape.
456
+ schedule:
457
+ dtype: float32
458
+ rank: 1
459
+ shape:
460
+ - 10
461
+ # Component `schedule_lookup` is a diffusion/flow solver policy graph using onnx from `policies/schedule_lookup.onnx`. Policy graphs compute tensors and semantics; they are not deployment/QoS knobs or backend readiness claims. No batch_capacity is authored, so the runtime must not group independent requests at this component.
462
+ schedule_lookup:
463
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
464
+ implementation:
465
+ kind: onnx
466
+ artifact: policies/schedule_lookup.onnx
467
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
468
+ ports:
469
+ # Exact graph inputs; each tensor shape/dtype is authored.
470
+ inputs:
471
+ # Port `schedule`: Authored tensor ABI: dtype float32, rank 1, shape [schedule_length]. No grouping permission is implied by this shape.
472
+ schedule:
473
+ dtype: float32
474
+ rank: 1
475
+ shape:
476
+ - schedule_length
477
+ # Port `step`: Authored tensor ABI: dtype int64, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
478
+ step:
479
+ dtype: int64
480
+ rank: 1
481
+ shape:
482
+ - batch
483
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
484
+ batch_layout:
485
+ kind: request_aligned
486
+ axis: 0
487
+ # Exact graph outputs; each tensor shape/dtype is authored.
488
+ outputs:
489
+ # Port `timestep`: Authored tensor ABI: dtype float32, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
490
+ timestep:
491
+ dtype: float32
492
+ rank: 1
493
+ shape:
494
+ - batch
495
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
496
+ batch_layout:
497
+ kind: request_aligned
498
+ axis: 0
499
+ # Component `tensor_scale` is an authored workflow compute component using onnx from `policies/tensor_scale.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
500
+ tensor_scale:
501
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
502
+ implementation:
503
+ kind: onnx
504
+ artifact: policies/tensor_scale.onnx
505
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
506
+ ports:
507
+ # Exact graph inputs; each tensor shape/dtype is authored.
508
+ inputs:
509
+ # Port `tensor`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
510
+ tensor:
511
+ dtype: float32
512
+ rank: 4
513
+ shape:
514
+ - batch
515
+ - channels
516
+ - height
517
+ - width
518
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
519
+ batch_layout:
520
+ kind: request_aligned
521
+ axis: 0
522
+ # Port `scale`: Authored tensor ABI: dtype float32, rank 1, shape [1]. No grouping permission is implied by this shape.
523
+ scale:
524
+ dtype: float32
525
+ rank: 1
526
+ shape:
527
+ - 1
528
+ # Exact graph outputs; each tensor shape/dtype is authored.
529
+ outputs:
530
+ # Port `scaled`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
531
+ scaled:
532
+ dtype: float32
533
+ rank: 4
534
+ shape:
535
+ - batch
536
+ - channels
537
+ - height
538
+ - width
539
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
540
+ batch_layout:
541
+ kind: request_aligned
542
+ axis: 0
543
+ # Component `decoder_input_scale` is a primary model compute graph using onnx from `policies/decoder_input_scale.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
544
+ decoder_input_scale:
545
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
546
+ implementation:
547
+ kind: onnx
548
+ artifact: policies/decoder_input_scale.onnx
549
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
550
+ ports:
551
+ # Exact graph inputs; each tensor shape/dtype is authored.
552
+ inputs: {}
553
+ # Exact graph outputs; each tensor shape/dtype is authored.
554
+ outputs:
555
+ # Port `value`: Authored tensor ABI: dtype float32, rank 1, shape [1]. No grouping permission is implied by this shape.
556
+ value:
557
+ dtype: float32
558
+ rank: 1
559
+ shape:
560
+ - 1
561
+ # Component `guidance_combine` is an executable semantic policy component implementing `onnx-genai.guidance-combine` using onnx from `policies/guidance_combine.onnx`. Policy graphs compute tensors and semantics; they are not deployment/QoS knobs or backend readiness claims. No batch_capacity is authored, so the runtime must not group independent requests at this component.
562
+ guidance_combine:
563
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
564
+ implementation:
565
+ kind: onnx
566
+ artifact: policies/guidance_combine.onnx
567
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
568
+ ports:
569
+ # Exact graph inputs; each tensor shape/dtype is authored.
570
+ inputs:
571
+ # Port `unconditional`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
572
+ unconditional:
573
+ dtype: float32
574
+ rank: 4
575
+ shape:
576
+ - batch
577
+ - channels
578
+ - height
579
+ - width
580
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
581
+ batch_layout:
582
+ kind: request_aligned
583
+ axis: 0
584
+ # Port `conditional`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
585
+ conditional:
586
+ dtype: float32
587
+ rank: 4
588
+ shape:
589
+ - batch
590
+ - channels
591
+ - height
592
+ - width
593
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
594
+ batch_layout:
595
+ kind: request_aligned
596
+ axis: 0
597
+ # Port `scale`: Authored tensor ABI: dtype float32, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
598
+ scale:
599
+ dtype: float32
600
+ rank: 1
601
+ shape:
602
+ - batch
603
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
604
+ batch_layout:
605
+ kind: request_aligned
606
+ axis: 0
607
+ # Exact graph outputs; each tensor shape/dtype is authored.
608
+ outputs:
609
+ # Port `estimate`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
610
+ estimate:
611
+ dtype: float32
612
+ rank: 4
613
+ shape:
614
+ - batch
615
+ - channels
616
+ - height
617
+ - width
618
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
619
+ batch_layout:
620
+ kind: request_aligned
621
+ axis: 0
622
+ # Semantic component ABI `onnx-genai.guidance-combine`; its bindings/parameters affect output correctness.
623
+ contract:
624
+ id: onnx-genai.guidance-combine
625
+ version: '1'
626
+ bindings:
627
+ unconditional: unconditional
628
+ conditional: conditional
629
+ scale: scale
630
+ estimate: estimate
631
+ # Component `image_output_clamp` is an authored workflow compute component using onnx from `policies/image_output_clamp.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
632
+ image_output_clamp:
633
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
634
+ implementation:
635
+ kind: onnx
636
+ artifact: policies/image_output_clamp.onnx
637
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
638
+ ports:
639
+ # Exact graph inputs; each tensor shape/dtype is authored.
640
+ inputs:
641
+ # Port `tensor`: Authored tensor ABI: dtype float32, rank 4, shape [batch, axis_1, axis_2, axis_3]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
642
+ tensor:
643
+ dtype: float32
644
+ rank: 4
645
+ shape:
646
+ - batch
647
+ - axis_1
648
+ - axis_2
649
+ - axis_3
650
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
651
+ batch_layout:
652
+ kind: request_aligned
653
+ axis: 0
654
+ # Exact graph outputs; each tensor shape/dtype is authored.
655
+ outputs:
656
+ # Port `clamped`: Authored tensor ABI: dtype float32, rank 4, shape [batch, axis_1, axis_2, axis_3]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
657
+ clamped:
658
+ dtype: float32
659
+ rank: 4
660
+ shape:
661
+ - batch
662
+ - axis_1
663
+ - axis_2
664
+ - axis_3
665
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
666
+ batch_layout:
667
+ kind: request_aligned
668
+ axis: 0
669
+ # Component `conditioning_cast` is an authored workflow compute component using onnx from `policies/conditioning_cast.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
670
+ conditioning_cast:
671
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
672
+ implementation:
673
+ kind: onnx
674
+ artifact: policies/conditioning_cast.onnx
675
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
676
+ ports:
677
+ # Exact graph inputs; each tensor shape/dtype is authored.
678
+ inputs:
679
+ # Port `tensor`: Authored tensor ABI: dtype float16, rank 3, shape [batch, axis_1, axis_2]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
680
+ tensor:
681
+ dtype: float16
682
+ rank: 3
683
+ shape:
684
+ - batch
685
+ - axis_1
686
+ - axis_2
687
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
688
+ batch_layout:
689
+ kind: request_aligned
690
+ axis: 0
691
+ # Exact graph outputs; each tensor shape/dtype is authored.
692
+ outputs:
693
+ # Port `cast`: Authored tensor ABI: dtype float32, rank 3, shape [batch, axis_1, axis_2]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
694
+ # This explicit cast aligns dtype at an authored boundary; the runtime must not guess a different precision.
695
+ cast:
696
+ dtype: float32
697
+ rank: 3
698
+ shape:
699
+ - batch
700
+ - axis_1
701
+ - axis_2
702
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
703
+ batch_layout:
704
+ kind: request_aligned
705
+ axis: 0
706
+ # Component `latent_row_shape` is an authored workflow compute component using onnx from `policies/latent_row_shape.onnx`. No batch_capacity is authored, so the runtime must not group independent requests at this component.
707
+ latent_row_shape:
708
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
709
+ implementation:
710
+ kind: onnx
711
+ artifact: policies/latent_row_shape.onnx
712
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
713
+ ports:
714
+ # Exact graph inputs; each tensor shape/dtype is authored.
715
+ inputs: {}
716
+ # Exact graph outputs; each tensor shape/dtype is authored.
717
+ outputs:
718
+ # Port `shape`: Authored tensor ABI: dtype int64, rank 1, shape [3]. No grouping permission is implied by this shape.
719
+ shape:
720
+ dtype: int64
721
+ rank: 1
722
+ shape:
723
+ - 3
724
+ # Component `latent_noise` is an executable semantic policy component implementing `onnx-genai.counter-rng` using onnx from `policies/latent_noise.onnx`. Policy graphs compute tensors and semantics; they are not deployment/QoS knobs or backend readiness claims. No batch_capacity is authored, so the runtime must not group independent requests at this component.
725
+ latent_noise:
726
+ # Selects a packaged implementation/artifact only; provider/backend readiness requires separate recorded evidence.
727
+ implementation:
728
+ kind: onnx
729
+ artifact: policies/latent_noise.onnx
730
+ # Ports bind workflow names to the artifact's exact graph ABI; model-family inference is forbidden.
731
+ ports:
732
+ # Exact graph inputs; each tensor shape/dtype is authored.
733
+ inputs:
734
+ # Port `seed`: Authored tensor ABI: dtype int64, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
735
+ seed:
736
+ dtype: int64
737
+ rank: 1
738
+ shape:
739
+ - batch
740
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
741
+ batch_layout:
742
+ kind: request_aligned
743
+ axis: 0
744
+ # Port `offset`: Authored tensor ABI: dtype int64, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
745
+ offset:
746
+ dtype: int64
747
+ rank: 1
748
+ shape:
749
+ - batch
750
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
751
+ batch_layout:
752
+ kind: request_aligned
753
+ axis: 0
754
+ # Port `row_shape`: Authored tensor ABI: dtype int64, rank 1, shape [row_rank]. No grouping permission is implied by this shape.
755
+ row_shape:
756
+ dtype: int64
757
+ rank: 1
758
+ shape:
759
+ - row_rank
760
+ # Exact graph outputs; each tensor shape/dtype is authored.
761
+ outputs:
762
+ # Port `noise`: Authored tensor ABI: dtype float32, rank 4, shape [batch, channels, height, width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
763
+ noise:
764
+ dtype: float32
765
+ rank: 4
766
+ shape:
767
+ - batch
768
+ - channels
769
+ - height
770
+ - width
771
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
772
+ batch_layout:
773
+ kind: request_aligned
774
+ axis: 0
775
+ # Port `next_offset`: Authored tensor ABI: dtype int64, rank 1, shape [batch]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
776
+ next_offset:
777
+ dtype: int64
778
+ rank: 1
779
+ shape:
780
+ - batch
781
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
782
+ batch_layout:
783
+ kind: request_aligned
784
+ axis: 0
785
+ # Semantic component ABI `onnx-genai.counter-rng`; its bindings/parameters affect output correctness.
786
+ contract:
787
+ id: onnx-genai.counter-rng
788
+ version: '1'
789
+ bindings:
790
+ seed: seed
791
+ offset: offset
792
+ row_shape: row_shape
793
+ noise: noise
794
+ next_offset: next_offset
795
+ # State cells make recurrence, cache mutation, lifetime, and ownership explicit. Physical paging/tiering/placement are not encoded by tensor names.
796
+ state:
797
+ # State `latent_state` is semantic tensor carry between workflow steps. Scope=invocation, recurrence=invariant. The authored recurrence determines how it evolves.
798
+ latent_state:
799
+ # Authored tensor ABI: dtype float32, rank 4, shape [component.unet.batch, 4, component.unet.height, component.unet.width]. Request rows stay aligned on axis 0; this preserves identity but does not by itself authorize grouping independent requests.
800
+ contract:
801
+ dtype: float32
802
+ rank: 4
803
+ shape:
804
+ - component.unet.batch
805
+ - 4
806
+ - component.unet.height
807
+ - component.unet.width
808
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
809
+ batch_layout:
810
+ kind: request_aligned
811
+ axis: 0
812
+ # `invocation` defines the semantic lifetime boundary; it is not a worker-placement policy.
813
+ scope: invocation
814
+ # Initializer names the exact first SSA value for this state cell.
815
+ initializer: diffusion.noise
816
+ # Recurrence defines the next-value rule: {kind=invariant}.
817
+ recurrence:
818
+ kind: invariant
819
+ # State `loop_0_active` is loop/scheduler control state. Scope=invocation, recurrence=invariant. The values affect correctness, not merely performance.
820
+ loop_0_active:
821
+ # Authored tensor ABI: dtype bool, rank 1, shape [1]. No grouping permission is implied by this shape.
822
+ contract:
823
+ dtype: bool
824
+ rank: 1
825
+ shape:
826
+ - 1
827
+ # `invocation` defines the semantic lifetime boundary; it is not a worker-placement policy.
828
+ scope: invocation
829
+ # Initializer names the exact first SSA value for this state cell.
830
+ initializer: package.loop_0_active
831
+ # Recurrence defines the next-value rule: {kind=invariant}.
832
+ recurrence:
833
+ kind: invariant
834
+ # The ordered SSA program defines actual execution and dataflow; capability strings are not a substitute for these steps.
835
+ steps:
836
+ # Run a bounded semantic loop (request.max_iterations); carried state and termination values make progress explicit and fail closed if unsupported.
837
+ - kind: loop
838
+ setup:
839
+ # Invoke component `diffusion_schedule` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
840
+ - kind: invoke
841
+ component: diffusion_schedule
842
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
843
+ inputs: {}
844
+ # SSA output names become the only values subsequent steps may consume.
845
+ outputs:
846
+ schedule: diffusion.schedule
847
+ # Invoke component `diffusion_timesteps` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
848
+ - kind: invoke
849
+ component: diffusion_timesteps
850
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
851
+ inputs: {}
852
+ # SSA output names become the only values subsequent steps may consume.
853
+ outputs:
854
+ schedule: diffusion.timesteps
855
+ # Invoke component `decoder_input_scale` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
856
+ - kind: invoke
857
+ component: decoder_input_scale
858
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
859
+ inputs: {}
860
+ # SSA output names become the only values subsequent steps may consume.
861
+ outputs:
862
+ value: diffusion.decoder_scale
863
+ # Invoke component `latent_row_shape` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
864
+ - kind: invoke
865
+ component: latent_row_shape
866
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
867
+ inputs: {}
868
+ # SSA output names become the only values subsequent steps may consume.
869
+ outputs:
870
+ shape: diffusion.latent_row_shape
871
+ # Invoke component `latent_noise` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
872
+ - kind: invoke
873
+ component: latent_noise
874
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
875
+ inputs:
876
+ seed: request.seed
877
+ offset: package.rng_offset
878
+ row_shape: diffusion.latent_row_shape
879
+ # SSA output names become the only values subsequent steps may consume.
880
+ outputs:
881
+ noise: diffusion.noise
882
+ next_offset: diffusion.rng_offset
883
+ # Invoke component `text_encoder` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
884
+ - kind: invoke
885
+ component: text_encoder
886
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
887
+ inputs:
888
+ input_ids: request.input_ids
889
+ # SSA output names become the only values subsequent steps may consume.
890
+ outputs:
891
+ last_hidden_state: conditioning.hidden_states_raw
892
+ # Invoke component `conditioning_cast` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
893
+ - kind: invoke
894
+ component: conditioning_cast
895
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
896
+ inputs:
897
+ tensor: conditioning.hidden_states_raw
898
+ # SSA output names become the only values subsequent steps may consume.
899
+ outputs:
900
+ # This explicit cast aligns dtype at an authored boundary; the runtime must not guess a different precision.
901
+ cast: conditioning.hidden_states
902
+ # Invoke component `text_encoder` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
903
+ - kind: invoke
904
+ component: text_encoder
905
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
906
+ inputs:
907
+ input_ids: request.negative_input_ids
908
+ # SSA output names become the only values subsequent steps may consume.
909
+ outputs:
910
+ last_hidden_state: conditioning.unconditional_raw
911
+ # Invoke component `conditioning_cast` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
912
+ - kind: invoke
913
+ component: conditioning_cast
914
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
915
+ inputs:
916
+ tensor: conditioning.unconditional_raw
917
+ # SSA output names become the only values subsequent steps may consume.
918
+ outputs:
919
+ # This explicit cast aligns dtype at an authored boundary; the runtime must not guess a different precision.
920
+ cast: conditioning.unconditional
921
+ # Invoke component `continue_predicate` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
922
+ - kind: invoke
923
+ component: continue_predicate
924
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
925
+ inputs:
926
+ done: package.false
927
+ # SSA output names become the only values subsequent steps may consume.
928
+ outputs:
929
+ continue: setup.continue
930
+ # Nested steps remain part of the typed executable workflow.
931
+ steps:
932
+ # Invoke component `schedule_lookup` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
933
+ - kind: invoke
934
+ component: schedule_lookup
935
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
936
+ inputs:
937
+ schedule: diffusion.timesteps
938
+ step: loop.iteration
939
+ # SSA output names become the only values subsequent steps may consume.
940
+ outputs:
941
+ timestep: diffusion.timestep
942
+ # Invoke component `unet` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
943
+ - kind: invoke
944
+ component: unet
945
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
946
+ inputs:
947
+ sample: latent_state
948
+ timestep: diffusion.timestep
949
+ encoder_hidden_states: conditioning.unconditional
950
+ # SSA output names become the only values subsequent steps may consume.
951
+ outputs:
952
+ noise_pred: denoiser.unconditional
953
+ # Invoke component `unet` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
954
+ - kind: invoke
955
+ component: unet
956
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
957
+ inputs:
958
+ sample: latent_state
959
+ timestep: diffusion.timestep
960
+ encoder_hidden_states: conditioning.hidden_states
961
+ # SSA output names become the only values subsequent steps may consume.
962
+ outputs:
963
+ noise_pred: denoiser.conditional
964
+ # Invoke component `guidance_combine` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
965
+ - kind: invoke
966
+ component: guidance_combine
967
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
968
+ inputs:
969
+ unconditional: denoiser.unconditional
970
+ conditional: denoiser.conditional
971
+ scale: request.guidance_scale
972
+ # SSA output names become the only values subsequent steps may consume.
973
+ outputs:
974
+ estimate: denoiser.estimate
975
+ # Invoke component `solver_step` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
976
+ - kind: invoke
977
+ component: solver_step
978
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
979
+ inputs:
980
+ sample: latent_state
981
+ step: loop.iteration
982
+ schedule: diffusion.schedule
983
+ derivative: denoiser.estimate
984
+ # SSA output names become the only values subsequent steps may consume.
985
+ outputs:
986
+ next_state: latent.body
987
+ # Publish `denoiser.estimate` as output `noise_estimate` using append semantics.
988
+ - kind: emit
989
+ value: denoiser.estimate
990
+ output: noise_estimate
991
+ # Emit/update mode is semantic replacement/append behavior, not a buffering optimization.
992
+ mode: append
993
+ # Publish `latent.body` as output `latent_trajectory` using append semantics.
994
+ - kind: emit
995
+ value: latent.body
996
+ output: latent_trajectory
997
+ # Emit/update mode is semantic replacement/append behavior, not a buffering optimization.
998
+ mode: append
999
+ # Invoke component `continue_predicate` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
1000
+ - kind: invoke
1001
+ component: continue_predicate
1002
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
1003
+ inputs:
1004
+ done: package.false
1005
+ # SSA output names become the only values subsequent steps may consume.
1006
+ outputs:
1007
+ continue: loop.continue
1008
+ continue_when: loop_0_active
1009
+ max_iterations: request.max_iterations
1010
+ carried:
1011
+ - cell: latent_state
1012
+ next: latent.body
1013
+ - cell: loop_0_active
1014
+ next: loop.continue
1015
+ iteration:
1016
+ value: loop.iteration
1017
+ contract:
1018
+ dtype: int64
1019
+ rank: 1
1020
+ shape:
1021
+ - component.unet.batch
1022
+ # Tensor row layout is structural. Only component batch_capacity can authorize grouping independent requests.
1023
+ batch_layout:
1024
+ kind: request_aligned
1025
+ axis: 0
1026
+ # Invoke component `tensor_scale` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
1027
+ - kind: invoke
1028
+ component: tensor_scale
1029
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
1030
+ inputs:
1031
+ tensor: latent_state
1032
+ scale: diffusion.decoder_scale
1033
+ # SSA output names become the only values subsequent steps may consume.
1034
+ outputs:
1035
+ scaled: diffusion.decoder_input
1036
+ # Invoke component `vae_decoder` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
1037
+ - kind: invoke
1038
+ component: vae_decoder
1039
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
1040
+ inputs:
1041
+ latent_sample: diffusion.decoder_input
1042
+ # SSA output names become the only values subsequent steps may consume.
1043
+ outputs:
1044
+ sample: vae.raw_image
1045
+ # Invoke component `image_output_clamp` with explicit SSA input/output bindings; this is executable tensor computation, not a host-side capability flag.
1046
+ - kind: invoke
1047
+ component: image_output_clamp
1048
+ # SSA bindings supply exact values to this step; no implicit tensor discovery occurs.
1049
+ inputs:
1050
+ tensor: vae.raw_image
1051
+ # SSA output names become the only values subsequent steps may consume.
1052
+ outputs:
1053
+ clamped: vae.image
1054
+ # Publish `latent_state` as output `latent` using replace semantics.
1055
+ - kind: emit
1056
+ value: latent_state
1057
+ output: latent
1058
+ # Emit/update mode is semantic replacement/append behavior, not a buffering optimization.
1059
+ mode: replace
1060
+ # Publish `vae.image` as output `image` using replace semantics.
1061
+ - kind: emit
1062
+ value: vae.image
1063
+ output: image
1064
+ # Emit/update mode is semantic replacement/append behavior, not a buffering optimization.
1065
+ mode: replace
1066
+ # Publish `diffusion.rng_offset` as output `rng_offset` using replace semantics.
1067
+ - kind: emit
1068
+ value: diffusion.rng_offset
1069
+ output: rng_offset
1070
+ # Emit/update mode is semantic replacement/append behavior, not a buffering optimization.
1071
+ mode: replace