MCPcopy Create free account
hub / github.com/modelscope/DiffSynth-Studio / __call__

Method __call__

diffsynth/pipelines/sd_video.py:144–269  ·  view source on GitHub ↗
(
        self,
        prompt,
        negative_prompt="",
        cfg_scale=7.5,
        clip_skip=1,
        num_frames=None,
        input_frames=None,
        ipadapter_images=None,
        ipadapter_scale=1.0,
        controlnet_frames=None,
        denoising_strength=1.0,
        height=512,
        width=512,
        num_inference_steps=20,
        animatediff_batch_size = 16,
        animatediff_stride = 8,
        unet_batch_size = 1,
        controlnet_batch_size = 1,
        cross_frame_attention = False,
        smoother=None,
        smoother_progress_ids=[],
        tiled=False,
        tile_size=64,
        tile_stride=32,
        seed=None,
        progress_bar_cmd=tqdm,
        progress_bar_st=None,
    )

Source from the content-addressed store, hash-verified

142
143 @torch.no_grad()
144 def __call__(
145 self,
146 prompt,
147 negative_prompt="",
148 cfg_scale=7.5,
149 clip_skip=1,
150 num_frames=None,
151 input_frames=None,
152 ipadapter_images=None,
153 ipadapter_scale=1.0,
154 controlnet_frames=None,
155 denoising_strength=1.0,
156 height=512,
157 width=512,
158 num_inference_steps=20,
159 animatediff_batch_size = 16,
160 animatediff_stride = 8,
161 unet_batch_size = 1,
162 controlnet_batch_size = 1,
163 cross_frame_attention = False,
164 smoother=None,
165 smoother_progress_ids=[],
166 tiled=False,
167 tile_size=64,
168 tile_stride=32,
169 seed=None,
170 progress_bar_cmd=tqdm,
171 progress_bar_st=None,
172 ):
173 height, width = self.check_resize_height_width(height, width)
174
175 # Tiler parameters, batch size ...
176 tiler_kwargs = {"tiled": tiled, "tile_size": tile_size, "tile_stride": tile_stride}
177 other_kwargs = {
178 "animatediff_batch_size": animatediff_batch_size, "animatediff_stride": animatediff_stride,
179 "unet_batch_size": unet_batch_size, "controlnet_batch_size": controlnet_batch_size,
180 "cross_frame_attention": cross_frame_attention,
181 }
182
183 # Prepare scheduler
184 self.scheduler.set_timesteps(num_inference_steps, denoising_strength)
185
186 # Prepare latent tensors
187 if self.motion_modules is None:
188 noise = self.generate_noise((1, 4, height//8, width//8), seed=seed, device="cpu", dtype=self.torch_dtype).repeat(num_frames, 1, 1, 1)
189 else:
190 noise = self.generate_noise((num_frames, 4, height//8, width//8), seed=seed, device="cpu", dtype=self.torch_dtype)
191 if input_frames is None or denoising_strength == 1.0:
192 latents = noise
193 else:
194 latents = self.encode_video(input_frames, **tiler_kwargs)
195 latents = self.scheduler.add_noise(latents, noise, timestep=self.scheduler.timesteps[0])
196
197 # Encode prompts
198 prompt_emb_posi = self.encode_prompt(prompt, clip_skip=clip_skip, positive=True)
199 prompt_emb_nega = self.encode_prompt(negative_prompt, clip_skip=clip_skip, positive=False)
200
201 # IP-Adapter

Callers

nothing calls this directly

Calls 12

encode_videoMethod · 0.95
decode_videoMethod · 0.95
set_timestepsMethod · 0.45
generate_noiseMethod · 0.45
add_noiseMethod · 0.45
encode_promptMethod · 0.45
toMethod · 0.45
process_imageMethod · 0.45
stepMethod · 0.45
return_to_timestepMethod · 0.45

Tested by

no test coverage detected