MULTIPLE ANGLES — one plate, three virtual cameras

Can a single locked-off clip be re-photographed from cameras that were never on set? We inferred a 3D proxy of the room from one frame, placed three virtual cameras in it, and asked MiniMax H3 to render the same performance from each. This page is the honest result of run 1 — including the parts that failed, because that is what decides whether this is showable to a producer.
Everything below is measured: H3 open weights (int8) on a rented L40S, 1344×768, 90 frames @24 fps, 20 steps, one seed per arm, ~13 min per arm, total GPU spend ≈ $1.35.

1 · The plate, and what we inferred from it

The 3.75 s window used (12.00–15.75 s), 24 fps, 1344×768. Three people, paper-covered desk, window wall left, locked-off camera.
The inferred proxy (red) over the plate: room shell, window bank, desk, three figure masses placed from their measured screen positions. It is a plausible set, not a survey — that limitation is the root of what fails below.

2 · The virtual cameras

SOURCE — the inferred original camera
WIDE — same axis, 2.4 m back, 68° field
SIDE — 45° around to the window side
TOP — 3.6 m above the desk, plan view

3 · Three ways of asking H3 for the camera change

A · prompt + line-art controlGrey blocking sketch of the target camera into MiniMaxH3FunControlNetApply at strength 1.0, plate on the reference-video channel.
B · photometric guideSame, but the control is the plate's own pixels warped to the target camera (2.5D re-projection), strength 2.5.
C · new angle as the referenceThe warped 90-frame clip is fed as H3's reference video; the prompt asks it to clean the re-projection at exactly that camera.
The approach-B/C guide for the SIDE camera: the plate's own pixels re-projected 2.5D to the new camera. Smeared and holey on purpose — it is a geometry brief, not a picture.
The approach-A guide for the TOP camera: line-art plan. H3 turned this into a vertical board facing the lens.

1_wide

approach A partial NCC vs plate 0.845
same axis, 2.4 m back, 68° lens 1344×768 · 3.75 s · 90 f · 1.3 MB Pleasant, but still the original frontal angle. Prompt and line-art control did not move the camera.

2_side

approach A failed NCC vs plate 0.611
45° around to the window side 1344×768 · 3.75 s · 90 f · 1.4 MB Still frontal. The requested 45° relocation is not there.

3_top

approach A failed NCC vs plate 0.524
straight overhead, plan view 1344×768 · 3.75 s · 90 f · 1.6 MB Not overhead at all — the desk became a vertical board facing camera. The model re-interpreted the sketch semantically.

4_wide_nocontrol

approach A (no sketch) failed NCC vs plate 0.796
same as 1_wide 1344×768 · 3.75 s · 90 f · 1.2 MB Prompt alone, no sketch. Compares at 0.855 with 1_wide: the line-art control changed almost nothing.

5_wide_v2

approach B failed NCC vs plate 0.625
same axis, 2.4 m back 1344×768 · 3.75 s · 90 f · 1.5 MB ControlNet at 2.5 with a photometric guide: conditioning collapse. Green smear, no scene.

6_side_v2

approach B failed NCC vs plate 0.400
45° side 1344×768 · 3.75 s · 90 f · 1.7 MB Same collapse. Technical appendix only.

8_side_v3

approach C partial NCC vs plate 0.490
45° side 1344×768 · 3.75 s · 90 f · 1.4 MB Clean, legible, temporally stable — but the camera came back FRONTAL/three-quarter. Diagnostic, not coverage.

9_wide_v3

approach C moved NCC vs plate 0.453
same axis, 2.4 m back, wide lens 1344×768 · 3.75 s · 90 f · 1.5 MB Genuinely wider: whole table, chairs, more room. Faces and props are visibly softened. Previz grade, not coverage.
What the numbers say. Approaches A and B never moved the camera: A ignored the control (wide: 0.845 vs plate; no-control control: 0.796), B destroyed the image. C is the only route where the framing changed — the wide pull-back is real and visible — and that is exactly where the model's dominant channel is the one carrying the new angle.

4 · Measurements

armapproachtarget cameraNCC vs plateread
1_wideAsame axis, 2.4 m back, 68° lens0.845Pleasant, but still the original frontal angle. Prompt and line-art control did not move the camera.
2_sideA45° around to the window side0.611Still frontal. The requested 45° relocation is not there.
3_topAstraight overhead, plan view0.524Not overhead at all — the desk became a vertical board facing camera. The model re-interpreted the sketch semantically.
4_wide_nocontrolA (no sketch)same as 1_wide0.796Prompt alone, no sketch. Compares at 0.855 with 1_wide: the line-art control changed almost nothing.
5_wide_v2Bsame axis, 2.4 m back0.625ControlNet at 2.5 with a photometric guide: conditioning collapse. Green smear, no scene.
6_side_v2B45° side0.400Same collapse. Technical appendix only.
8_side_v3C45° side0.490Clean, legible, temporally stable — but the camera came back FRONTAL/three-quarter. Diagnostic, not coverage.
9_wide_v3Csame axis, 2.4 m back, wide lens0.453Genuinely wider: whole table, chairs, more room. Faces and props are visibly softened. Previz grade, not coverage.
Measurement note (worth reading before the table). Three of the eight arms first arrived as the input clip rather than the render — 2_side, 3_top, 4_wide_nocontrol all came back at exactly 2,070,907 B, the source window's size, and briefly read as "the model copied the plate perfectly". Cause: LoadVideo publishes the file it opened in the prompt's outputs as a UI preview, so a fetch that scans every node can pick up the input. Every number on this page is from files pulled off ComfyUI's output/ directory and size-checked. Approach C's side arm (0.490) is a real render, and a real render can still return to the frontal angle — that is the finding, not the bug.
NCC = normalised correlation of a 320×184 grey frame against the plate at the same timecode. 0.845 means "still visually the same framing"; it detects "it stayed frontal", it is not a success metric for a real camera move (a genuine side view would score low, as 8_side_v3 does while still being frontal). Temporal check: measured frame-to-frame shift is 0.0 px on the plate and on every arm — none of the renders invented camera drift. Grade: luma p10/p50/p99 12/109/219 against the plate's 16/115/228.

5 · Why it failed, and what it costs to make it work

The core problem: H3 is an appearance-preserving video model, not a camera-conditioned renderer. Its reference-video channel wins over prompt and control, so the output protects the view it was given. Raise the control hard enough to fight that and the image collapses (arms 5 and 6). The one lever that worked was putting the target view into the reference — and then the render inherits the guide's softness.
The corollary: a re-projection sharp enough to be a good reference is the real prize. Our proxy came from a single frame with no depth estimation, so the side view is guesswork. A proper depth pass (or a camera-conditioned model) is the next experiment, not another prompt.
next stepwhat it fixescost estimate
Depth-accurate re-projection guide (Video Depth Anything + proxy fit) the guide's disocclusion holes and softness — the reason C's wide is blurry and C's side is guesswork ~$0.5 and one arm to test
ReCamMaster (ICCV'25, trajectory-conditioned re-shoot of a single video) the capability itself: it is trained to render an input video from an explicit target camera path, so the angle is an input, not a request ~$3–4 for one setup + 3 arms (Wan 2.1 14B staging, 48 GB card)
Camera-control IC-LoRAs (LTX 2.5 "cameraman" / crossview-warp) moves within the same family; separate model family, separate benchmark ~$2

6 · Prompts and graph, verbatim

A/B prompt — WIDE
In Video 1, re-shoot the same continuous live-action moment from a different camera position: the same office, the same three people, the same performance, seen from a camera that is 1.6 metres further back on the same side of the desk, with a wider 24 mm lens.

integrated_multimodal_description:
[Shot 1] Live-action, cinematic, naturalistic office drama. A wide medium shot from the same side of the paper-covered desk as Video 1, but the camera now stands 1.6 metres further back with a wider 24 mm lens, so the whole work table and all three adults are visible from mid-thigh upward, with the office around them. The grey-haired woman in the dark navy blazer leans over the desk with both hands among the papers in the centre of frame; the curly-haired woman in the loose beige blouse stands to her left in three-quarter profile; the tall Black man in the open grey overshirt stands behind them to frame right with his hands at his hips. They continue the exact performance of Video 1: every glance, head turn, hand movement, paper movement, eyeline, pause and timing is identical, only the camera has moved. Soft daylight comes from the window wall on the left of the room and falls across the desk exactly as in Video 1. The room keeps the same rows of office desks, black chairs, hanging rectangular ceiling lights, white columns and window mullions. Static Shot, no camera movement. Preserve the same people, faces, hair, clothing, colours, ages, the same papers and desk objects, the same background geometry, the same lighting direction, intensity and softness, the same exposure and colour grade, and the same motion and timing. Do not add, remove, replace, move, duplicate or invent any person, prop, lamp, window, chair, paper, door or background detail. Do not change the story action. No cut, no shot change, one continuous shot.

overall_soundscape:
The same room tone and the same dialogue performance as Video 1, with the same timing: quiet office air, distant movement in the open-plan room, papers shifting on the desk.

non_diegetic_music:
None.
A/B prompt — SIDE
In Video 1, re-shoot the same continuous live-action moment from a different camera position: the same office, the same three people, the same performance, now seen from the window side of the room, roughly 45 degrees around the group from where Video 1 was shot, looking back across the desk toward the inside of the office.

integrated_multimodal_description:
[Shot 1] Live-action, cinematic, naturalistic office drama. A medium-wide shot from the window side of the room, 45 degrees around from the camera position of Video 1, with a 40 mm lens looking across the paper-covered desk toward the interior of the office. The grey-haired woman in the dark navy blazer, who is nearest the desk, is now seen from her far side in three-quarter profile; the curly-haired woman in the loose beige blouse is farther away in the middle of frame; the tall Black man in the open grey overshirt is to frame right behind them. Soft daylight now comes from behind and beside the camera, from the same window wall as in Video 1, so the light falls on the faces and the desk from the side that the windows actually are, with the same softness and the same exposure. They continue the exact performance of Video 1: every glance, head turn, hand movement, paper movement, eyeline, pause and timing is identical, only the camera has moved. The room keeps the same rows of office desks, black chairs, hanging rectangular ceiling lights, white columns, window mullions and shelving. Static Shot, no camera movement. Preserve the same people, faces, hair, clothing, colours, ages, the same papers and desk objects, the same background geometry, the same lighting direction, intensity and softness, the same exposure and colour grade, and the same motion and timing. Do not add, remove, replace, move, duplicate or invent any person, prop, lamp, window, chair, paper, door or background detail. Do not change the story action. No cut, no shot change, one continuous shot.

overall_soundscape:
The same room tone and the same dialogue performance as Video 1, with the same timing: quiet office air, distant movement in the open-plan room, papers shifting on the desk.

non_diegetic_music:
None.
A/B prompt — TOP
In Video 1, re-shoot the same continuous live-action moment from a different camera position: the same office, the same three people, the same performance, now seen from directly above the desk, looking straight down.

integrated_multimodal_description:
[Shot 1] Live-action, cinematic, naturalistic office drama. A high-angle overhead shot with the camera 3.5 metres above the paper-covered work table, looking vertically downward, a 28 mm lens, so the desk and the tops of the three adults fill the frame. This is a plan view: the edges of the long work table run almost parallel to the frame, thick with files, folders, loose papers and glossy photographs. The grey-haired woman in the dark navy blazer stands at the near long edge with both hands spread among the papers; the curly-haired woman in the loose beige blouse stands at the left end of the table; the tall Black man in the open grey overshirt stands at the far long edge on the right. Only their heads, shoulders, arms, hands and clothing are visible from above, in their true positions around the table. Soft daylight from the window wall comes in from one side of frame and falls across the desk and the floor with the same softness and the same exposure as Video 1. They continue the exact performance of Video 1: every hand movement, paper movement, head turn, pause and timing is identical, only the camera has moved. The room keeps the same rows of office desks, black chairs, hanging rectangular ceiling lights, white columns, window mullions and shelving. Static Shot, no camera movement. Preserve the same people, faces, hair, clothing, colours, ages, the same papers and desk objects, the same background geometry, the same lighting direction, intensity and softness, the same exposure and colour grade, and the same motion and timing. Do not add, remove, replace, move, duplicate or invent any person, prop, lamp, window, chair, paper, door or background detail. Do not change the story action. No cut, no shot change, one continuous shot.

overall_soundscape:
The same room tone and the same dialogue performance as Video 1, with the same timing: quiet office air, distant movement in the open-plan room, papers shifting on the desk.

non_diegetic_music:
None.
C prompt — clean up the re-projection (SIDE)
In Video 1, restore and finish the shot. Video 1 is a rough re-projection of the moment at a new camera angle: the geometry and framing are correct, but the image is smeared, has seams and blank patches. Render the same moment cleanly at exactly that camera: the same office, the same three people, the same performance, at the same camera height and position, with the same lens.

integrated_multimodal_description:
[Shot 1] Live-action, cinematic, naturalistic office drama, medium-wide shot from the window side of a paper-covered work desk, looking across the desk toward the interior of the office at roughly 45 degrees to the original angle. The grey-haired woman in the dark navy blazer stands at the desk with her hands among the papers; the curly-haired woman in the loose beige blouse stands to one side in three-quarter profile; the tall Black man in the open grey overshirt stands behind them on the other side. Their positions, faces and body orientations match Video 1 exactly, but rendered cleanly and sharply, with correct perspective, correct occlusion between them, and no tearing, smearing, duplication or ghosting. Soft daylight comes from the window wall on the original camera's left, which is now behind and to one side of the camera; it falls across the desk and the faces with the same softness, colour and exposure as Video 1. The room keeps the same rows of office desks, black chairs, hanging rectangular ceiling lights, white columns, window mullions and shelving seen in Video 1. They continue the exact performance and timing of Video 1: every glance, head turn, hand movement, paper movement, eyeline, pause and timing is identical. Static Shot, no camera movement. Preserve the same people, faces, hair, clothing, colours, ages, the same papers and desk objects, the same background geometry and furniture, the same lighting direction, intensity and softness, the same exposure and colour grade, and the same motion and timing. Repair the image only: do not add, remove, replace, move, duplicate or invent any person, prop, lamp, window, chair, paper, door or background detail, and do not fill blank areas with new objects. No cut, no shot change, one continuous shot.

overall_soundscape:
The same room tone and the same dialogue performance as Video 1, with the same timing: quiet office air, distant movement in the open-plan room, papers shifting on the desk.

non_diegetic_music:
None.
Graph (what is wired where)
LoadVideo(plate) -> GetVideoComponents -> MiniMaxH3ReferenceToVideo.ref_videos.ref_video_0
                                    -> .ref_video_audios.ref_video_audio_0
LoadVideo(guide) -> GetVideoComponents -> MiniMaxH3FunControlNetApply.control_video   [approaches A and B]
ModelPatchLoader(controlnet_union_2.0_pruned_int8) -> .model_patch
UNETLoader -> MiniMaxH3FunControlNetApply -> BasicGuider.model AND BasicScheduler.model
MiniMaxH3ReferenceToVideo -> CONDITIONING -> BasicGuider ; -> LATENT -> SamplerCustomAdvanced
RandomNoise(seed) / KSamplerSelect(euler) / BasicScheduler(simple, 20 steps, denoise 1.0)
SamplerCustomAdvanced -> VAEDecode -> CreateVideo(24 fps) -> SaveVideo(h264)
Approach C: the warped clip replaces LoadVideo(plate) on the reference channel; no ControlNet.

7 · What a producer can take from this today

Usable now: a wider version of a locked shot, at previz grade — enough to cut into a pitch or an animatic to show "we can open this up", not enough to cut into a finished scene. Not usable yet: a true side or overhead angle from a single plate. The pipeline that would do it (ReCamMaster-class, camera as an input) has not been run here; that is the next ~$4.
Files: this page, the eight renders, the camera sketches, the re-projection guides and the FINDINGS document are in the Drive folder MULTIPLE_ANGLES. Everything is reproducible from greybox.py / crosswarp.py / build_multicam.py in the same folder.