Skip to content

把20步的ddim更换为10步的dpm-solver++,采样时间快40%,效果基本一致 #290

Open
@sah1234567

Description

@sah1234567

唯一的问题是在lipsync_pipeline.py中对每个视频块采样前必须重置调度器状态计数,不然会报index超过size的错误。
可以在以下位置,加入以下内容:
`
for i in tqdm.tqdm(range(num_inferences), desc="Doing inference..."):
# ============ 添加这一段调度器状态重置代码 ============
# Reset scheduler state for each inference chunk to avoid index out of bounds
self.scheduler.set_timesteps(num_inference_steps, device=device)

        # Reset DPMSolverMultistepScheduler internal state
        if hasattr(self.scheduler, 'model_outputs'):
            self.scheduler.model_outputs = [None] * self.scheduler.config.solver_order

        # Use set_begin_index method to reset step tracking
        if hasattr(self.scheduler, 'set_begin_index'):
            self.scheduler.set_begin_index(0)

        # Ensure timesteps are properly set for this iteration
        timesteps = self.scheduler.timesteps
        # =====================================================

`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions