Summary
templates/minimax/dialogue-short can be driven from an existing cast — a shot entry's
references take from_file: "asset:…" for the subject pictures just as they do for voices, and
it works — but the two draw_character_a / draw_character_b Z-Image steps run unconditionally
and their portraits are then thrown away. For the recurring-cast case the template's own
description is built around ("character consistency across cuts comes from referencing the same
portraits in every shot"), an episode pays for two portraits it does not use, and — more to the
point — nothing in the consumer surface says the substitution is possible at all.
Tool / endpoint
run_workflow / validate_workflow with workflow_path: templates/minimax/dialogue-short;
list_workflows / get_workflow for the discoverability half.
Repro
Workspace qa-ep7, server 0.4.0-beta.3 on lem. Job 48000580aec1, succeeded in 894.1 s
against a 16.8 min derived quote. Two shots, match_levels: "rms", and a shots list in which
every reference is a file, no from_previous_result anywhere:
{"name": "ledger", "num_frames": 124, "references": [
{"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3ImageReference",
"from_file": "asset:qa-cast/priya-portrait.jpg"},
{"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3ImageReference",
"from_file": "asset:qa-cast/hal-portrait.jpg"},
{"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3AudioReference",
"from_file": "asset:qa-cast/priya-voice.wav"},
{"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3AudioReference",
"from_file": "asset:qa-cast/hal-voice.wav"}], "prompt": "…"}
validate_workflow → valid: true, plan.steps: 5, list_entries.shots: 2,
estimate 16.8 min basis derived. The run's manifest then carries all five steps, including:
draw_character_a → …/intermediate/…draw_character_a.0-0.0.jpg
draw_character_b → …/intermediate/…draw_character_b.1-0.0.jpg
— two portraits nothing in the run references. The first H3 step began ~55 s into the job, so the
two discarded draws cost roughly that.
Expected
The template supports a cast that already exists, and says so. Concretely, in rough order of value:
- A step that nothing references does not run. If the
for_each shots list contains no
from_previous_result naming draw_character_a/_b, skip that step. This is a general engine
property, not a template one — and a nice one — but it is also the biggest ask here, so treat it
as the option to argue with rather than the one to implement first.
- Cheaper and template-local: make the portraits variables —
character_a_portrait: null / character_b_portrait: null, an asset reference when given,
with the shots' default entries referencing whichever applies. The voices already work exactly
this way (character_a_voice: null, from_file: "variable:character_a_voice"), so this is the
same idiom applied to the picture side, and it is what a reader of the variable list would
expect to find there.
- At minimum, documentation. Nothing in
list_workflows, get_workflow's description, or
the dw:minimax-h3 skill says a shot reference can be a file instead of a previous result. I
found it by reading the default shots list and noticing the voice entries used from_file,
then guessing that the image entries would take it too. A recurring cast across episodes is the
headline use case for this template; reaching it should not require inferring the mechanism.
plan.estimate should also drop the skipped/removed portrait work, if (1) or (2) lands.
Actual
Both Z-Image steps always run; their output is discarded whenever the shots reference files; and
the capability is undocumented.
Notes
Found while running TESTER_TASK.md — this is episode 7 of the QA series and the first one to put
both recurring characters in the same scene, which is precisely the reuse case the exercise exists
to exercise. The episode itself came out fine (asset:qa-cast/ep7-episode.mp4, 248 frames /
10.35 s / 24 fps / stereo / rms-matched to -20.3 dBFS), so this is friction and cost, not a
correctness bug.
Filed by the tester agent, model opus via provider anthropic.
Summary
templates/minimax/dialogue-shortcan be driven from an existing cast — a shot entry'sreferencestakefrom_file: "asset:…"for the subject pictures just as they do for voices, andit works — but the two
draw_character_a/draw_character_bZ-Image steps run unconditionallyand their portraits are then thrown away. For the recurring-cast case the template's own
description is built around ("character consistency across cuts comes from referencing the same
portraits in every shot"), an episode pays for two portraits it does not use, and — more to the
point — nothing in the consumer surface says the substitution is possible at all.
Tool / endpoint
run_workflow/validate_workflowwithworkflow_path: templates/minimax/dialogue-short;list_workflows/get_workflowfor the discoverability half.Repro
Workspace
qa-ep7, server0.4.0-beta.3onlem. Job48000580aec1, succeeded in 894.1 sagainst a 16.8 min
derivedquote. Two shots,match_levels: "rms", and ashotslist in whichevery reference is a file, no
from_previous_resultanywhere:{"name": "ledger", "num_frames": 124, "references": [ {"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3ImageReference", "from_file": "asset:qa-cast/priya-portrait.jpg"}, {"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3ImageReference", "from_file": "asset:qa-cast/hal-portrait.jpg"}, {"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3AudioReference", "from_file": "asset:qa-cast/priya-voice.wav"}, {"reference_type": "diffusers.modular_pipelines.minimax_h3.MiniMaxH3AudioReference", "from_file": "asset:qa-cast/hal-voice.wav"}], "prompt": "…"}validate_workflow→valid: true,plan.steps: 5,list_entries.shots: 2,estimate 16.8 min basis derived. The run's manifest then carries all five steps, including:— two portraits nothing in the run references. The first H3 step began ~55 s into the job, so the
two discarded draws cost roughly that.
Expected
The template supports a cast that already exists, and says so. Concretely, in rough order of value:
for_eachshots list contains nofrom_previous_resultnamingdraw_character_a/_b, skip that step. This is a general engineproperty, not a template one — and a nice one — but it is also the biggest ask here, so treat it
as the option to argue with rather than the one to implement first.
character_a_portrait: null/character_b_portrait: null, an asset reference when given,with the shots' default entries referencing whichever applies. The voices already work exactly
this way (
character_a_voice: null,from_file: "variable:character_a_voice"), so this is thesame idiom applied to the picture side, and it is what a reader of the variable list would
expect to find there.
list_workflows,get_workflow's description, orthe
dw:minimax-h3skill says a shot reference can be a file instead of a previous result. Ifound it by reading the default
shotslist and noticing the voice entries usedfrom_file,then guessing that the image entries would take it too. A recurring cast across episodes is the
headline use case for this template; reaching it should not require inferring the mechanism.
plan.estimateshould also drop the skipped/removed portrait work, if (1) or (2) lands.Actual
Both Z-Image steps always run; their output is discarded whenever the shots reference files; and
the capability is undocumented.
Notes
Found while running
TESTER_TASK.md— this is episode 7 of the QA series and the first one to putboth recurring characters in the same scene, which is precisely the reuse case the exercise exists
to exercise. The episode itself came out fine (
asset:qa-cast/ep7-episode.mp4, 248 frames /10.35 s / 24 fps / stereo / rms-matched to -20.3 dBFS), so this is friction and cost, not a
correctness bug.
Filed by the tester agent, model
opusvia provideranthropic.