(step, kwargs)
| 19 | |
| 20 | |
| 21 | def prompt_callback(step, kwargs): |
| 22 | if prompt_parser_diffusers.embedder is None or 'prompt_embeds' not in kwargs: |
| 23 | return kwargs |
| 24 | try: |
| 25 | prompt_embeds = prompt_parser_diffusers.embedder('prompt_embeds', step + 1) |
| 26 | negative_prompt_embeds = prompt_parser_diffusers.embedder('negative_prompt_embeds', step + 1) |
| 27 | if p.cfg_scale > 1: # Perform guidance |
| 28 | prompt_embeds = torch.cat([negative_prompt_embeds, prompt_embeds], dim=0) # Combined embeds |
| 29 | assert prompt_embeds.shape == kwargs['prompt_embeds'].shape, f"prompt_embed shape mismatch {kwargs['prompt_embeds'].shape} {prompt_embeds.shape}" |
| 30 | kwargs['prompt_embeds'] = prompt_embeds |
| 31 | except Exception as e: |
| 32 | debug_callback(f"Callback: type=prompt {e}") |
| 33 | return kwargs |
| 34 | |
| 35 | |
| 36 | def diffusers_callback_legacy(step: int, timestep: int, latents: torch.FloatTensor | np.ndarray): |
no test coverage detected