[bugfix] Classify new config/sampling fields in schema parity inventory - #1446
Conversation
Adds latents, max_sequence_length, scheduler_step_in_fp32, flux2_text_encoder_type, text_encoder_out_layers.
There was a problem hiding this comment.
Code Review
This pull request updates the inference_schema_parity_inventory.yaml design document to include several new configuration options and internal-only parameters, such as scheduler_step_in_fp32, latents, max_sequence_length, and Flux2-specific text encoder settings. There are no review comments to evaluate, and I have no additional feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Merge ProtectionsYour pull request matches the following merge protections and will not be merged until they are valid. 🟠 PR merge requirementsWaiting for
Waiting checks:
|
SolitaryThinker
left a comment
There was a problem hiding this comment.
Hi @Godmook — automated review from Gob, one of @SolitaryThinker's AI reviewers. Findings aren't all human-verified; ping @SolitaryThinker if anything looks off.
Verdict: APPROVE
Clean docs-only fix. Verified all 5 classifications against the dataclasses at head 96778743 and statically re-ran the parity test's set-equality logic — all three surfaces reach exact parity (matching your before→after table):
pipeline_config_base/internal_only←scheduler_step_in_fp32: real basePipelineConfigfield (configs/pipelines/base.py, added by #1349) → 26 == 26.sampling_param_base/internal_only←latents,max_sequence_length: real baseSamplingParamfields (api/sampling_param.py:34,:71); neither is exposed on the public serving request schema or as a CLI flag, sointernal_onlyis the right conservative bucket → 75 == 75.pipeline_config_extensions/preset_owned←flux2_text_encoder_type,text_encoder_out_layers: both owned by exactlyFlux2PipelineConfig+Flux2KleinPipelineConfig(configs/pipelines/flux_2.py), matching the listedsources:→ 87 == 87.
Also confirmed: each field lands in exactly one bucket, no duplicate YAML keys, and the two new sources:-only preset_owned entries carry no target: so they're correctly skipped by test_inventory_targets_exist_in_typed_schema (same as the existing conditioning_strategy sibling) — matching your stated rationale.
Minor (non-blocking)
- Heads up that the green
fastcheckon this PR does not actually re-run the parity test: the fastcheck Unit-Tests job (which runspytest ./fastvideo/tests/api/) is path-filtered tofastvideo/** / .buildkite/** / .github/** / pyproject.toml / docker/Dockerfile.python3.12in.buildkite/pipeline.yml— notdocs/**— so a docs-only diff won't trigger it. The fix is correct (verified offline), but if you want live CI confirmation,/testthe unit suite. Not a blocker.
— Gob (@SolitaryThinker's AI reviewer).
Purpose
Some CIis currently red onfastvideo/tests/api/test_schema_parity_inventory.py. PR #1349 (Flux2 Klein Port) added new fields toSamplingParam,PipelineConfig,and the Flux2 pipeline configs but did not classify them indocs/design/inference_schema_parity_inventory.yaml. (I saw this issue at while doing CI at PR #1245 )The parity tests assert that every dataclass field is accounted for in the inventory, so the unclassified fields make three tests fail:
test_sampling_param_base_fields_are_classifiedtest_pipeline_config_base_fields_are_classifiedtest_pipeline_config_extension_fields_are_classifiedThis PR only updates the inventory to re-establish parity; no runtime behavior changes.
Fixes #
Changes
Classify the five unclassified fields in
inference_schema_parity_inventory.yaml:sampling_param_baseinternal_onlylatents,max_sequence_lengthpipeline_config_baseinternal_onlyscheduler_step_in_fp32pipeline_config_extensionspreset_owned(sources: Flux2 configs)flux2_text_encoder_type,text_encoder_out_layerslatents/max_sequence_length/scheduler_step_in_fp32are runtime/debugplumbing, so they go under
internal_only(note-only, not part of the publictyped inference API).
flux2_text_encoder_type/text_encoder_out_layersare model-specific config,so they go under
preset_ownedwithsourcespointing toFlux2PipelineConfig/Flux2KleinPipelineConfig, matching the existingtext_encoder_classpattern.validation in
test_inventory_targets_exist_in_typed_schema; maintainers canre-bucket to a public status later if any of these should be user-facing.
Test Plan
Verified that, for every affected surface, the set of dataclass fields exactly
matches the set of inventory-classified fields (the assertion these tests make).
Test Results
Field-set parity (before → after)
YAML parses cleanly;
pre-commit run --files docs/design/inference_schema_parity_inventory.yamlpasses (codespell/yaml/format).Checklist
pre-commit run --all-filesand fixed all issuesFor model/pipeline changes, also check: