MCPcopy Create free account
hub / github.com/TencentARC/MotionCtrl / motionctrl_sample

Function motionctrl_sample

main/evaluation/motionctrl_inference.py:123–190  ·  view source on GitHub ↗
(
        model, 
        prompts, 
        noise_shape,
        camera_poses=None, 
        trajs=None,
        n_samples=1,
        unconditional_guidance_scale=1.0,
        unconditional_guidance_scale_temporal=None,
        ddim_steps=50,
        ddim_eta=1.,
        **kwargs)

Source from the content-addressed store, hash-verified

121 torchvision.io.write_video(path, grid, fps=fps, video_codec='h264', options={'crf': '10'})
122
123def motionctrl_sample(
124 model,
125 prompts,
126 noise_shape,
127 camera_poses=None,
128 trajs=None,
129 n_samples=1,
130 unconditional_guidance_scale=1.0,
131 unconditional_guidance_scale_temporal=None,
132 ddim_steps=50,
133 ddim_eta=1.,
134 **kwargs):
135
136 ddim_sampler = DDIMSampler(model)
137 batch_size = noise_shape[0]
138 ## get condition embeddings (support single prompt only)
139 if isinstance(prompts, str):
140 prompts = [prompts]
141
142 for i in range(len(prompts)):
143 prompts[i] = f'{prompts[i]}, {post_prompt}'
144
145 cond = model.get_learned_conditioning(prompts)
146 if camera_poses is not None:
147 RT = camera_poses[..., None]
148 else:
149 RT = None
150
151 if trajs is not None:
152 traj_features = model.get_traj_features(trajs)
153 else:
154 traj_features = None
155
156 if unconditional_guidance_scale != 1.0:
157 # prompts = batch_size * [""]
158 prompts = batch_size * [DEFAULT_NEGATIVE_PROMPT]
159 uc = model.get_learned_conditioning(prompts)
160 if traj_features is not None:
161 un_motion = model.get_traj_features(torch.zeros_like(trajs))
162 else:
163 un_motion = None
164 uc = {"features_adapter": un_motion, "uc": uc}
165 else:
166 uc = None
167
168 batch_variants = []
169 for _ in range(n_samples):
170 if ddim_sampler is not None:
171 samples, _ = ddim_sampler.sample(S=ddim_steps,
172 conditioning=cond,
173 batch_size=noise_shape[0],
174 shape=noise_shape[1:],
175 verbose=False,
176 unconditional_guidance_scale=unconditional_guidance_scale,
177 unconditional_conditioning=uc,
178 eta=ddim_eta,
179 temporal_length=noise_shape[2],
180 conditional_guidance_scale_temporal=unconditional_guidance_scale_temporal,

Callers 1

run_inferenceFunction · 0.85

Calls 5

sampleMethod · 0.95
DDIMSamplerClass · 0.90
get_traj_featuresMethod · 0.80
decode_first_stageMethod · 0.80

Tested by

no test coverage detected