Files
civitai__civitai/docs
briant 6bec49c2d8 feat(generation): add ControlNet support for MiniMax H3
H3 comfy gains video ControlNet via the orchestrator's controlVideo
operation, backed by the H3 Fun ControlNet Union checkpoint. The picker
offers the five preprocessors PreprocessVideoInput implements — canny,
depth-anything-v2, dwpose, hed, mlsd — which is exactly the Union's
Canny/Depth/HED/MLSD/Pose set.

Auto mode emits a preprocessVideo step and $refs its blob into the gen
step; preprocessed mode passes a user-supplied control map straight
through. Wired in both the data-graph and form-graph lanes.

txt2vid only, and comfy only. ComfyMiniMaxH3ControlVideoInput inherits
neither firstFrame/lastFrame nor images, so the three H3 operations are
mutually exclusive — offering control on an image workflow would discard
the user's frames at submit time. Both the graph and the handler enforce
this; the handler re-checks because a stale value reaching it would fail
as lost input rather than as an error.

Also adds vid2vid:preprocess, the standalone control-preprocessor
workflow for video, mirroring img2img:preprocess. Its control map is the
deliverable, so unlike the in-generation step its output is not
suppressed. Both surfaces show before/after previews, labelled as stills
since no video samples exist.

Control types come from @civitai/orchestration-client: the pinned
@civitai/client predates preprocessVideo and has no equivalent type.

Notes:
- normalizeStepOutput and StepData.mediaType both defaulted an unknown
  step type to "no output" and "image" respectively, so a submitted
  preprocessVideo step rendered nothing. Both now handle it, with tests
  that fail on a revert.
- kindParams spread last in both preprocess handlers, letting a caller
  override the validated kind and the clamped resolution. Now spread
  first; the image handler had the same ordering.
- Extracts PreprocessKindParamsInput, shared by both preprocessor forms.
- Fixes stale comments claiming ControlNets are disabled everywhere and
  that PreprocessorExamples is used by the ControlNets input.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 15:49:40 -06:00
..
2025-11-19 13:39:55 -07:00
2026-04-21 17:28:15 -06:00
2025-08-25 12:23:45 -06:00
2026-03-27 11:25:47 -04:00
2026-03-13 17:31:05 -04:00
2026-04-24 15:34:42 -06:00
2026-06-11 10:33:01 -06:00
2026-06-11 10:33:01 -06:00
2026-01-27 14:25:06 -04:00
2026-03-23 19:49:29 -06:00
2026-01-27 14:25:06 -04:00