p2p代码分析

发布时间 2023-11-20 11:12:28作者: FrostyForest


run_and_display->ptp_utils.text2image_ldm_stable->diffusion_step->controller.step_callback->AttentionControlEdit.local_blend->class LocalBlend

run_and_display

run_and_display(prompts, controller, latent=None, run_baseline=False, generator=None)

ptp_utils.text2image_ldm_stable

进行整个扩散的过程

def text2image_ldm_stable(
    model,
    prompt: List[str],
    controller,
    num_inference_steps: int = 50,
    guidance_scale: float = 7.5,
    generator: Optional[torch.Generator] = None,
    latent: Optional[torch.FloatTensor] = None,
    low_resource: bool = False,
):

ptp_utils.register_attention_control

ptp_utils.diffusion_step

单步扩散

diffusion_step(model, controller, latents, context, t, guidance_scale, low_resource=False)
controller.step_callback
step_callback(self, x_t)
AttentionControlEdit.local_blend
__call__(self, x_t, attention_store)