(self, pipe, batchidx)
| 180 | debug(f"Prompt schedule: positive={self.positive_schedule} negative={self.negative_schedule} scheduled={scheduled}") |
| 181 | |
| 182 | def scheduled_encode(self, pipe, batchidx): |
| 183 | prompt_dict = {} # index cache |
| 184 | for i in range(max(len(self.positive_schedule), len(self.negative_schedule))): |
| 185 | positive_prompt = self.positive_schedule[i % len(self.positive_schedule)] |
| 186 | negative_prompt = self.negative_schedule[i % len(self.negative_schedule)] |
| 187 | # skip repeated scheduled subprompts |
| 188 | idx = prompt_dict.get(positive_prompt+negative_prompt) |
| 189 | if idx is not None: |
| 190 | self.extend_embeds(batchidx, idx) |
| 191 | continue |
| 192 | self.encode(pipe, positive_prompt, negative_prompt, batchidx) |
| 193 | prompt_dict[positive_prompt+negative_prompt] = i |
| 194 | |
| 195 | def extend_embeds(self, batchidx, idx): # Extends scheduled prompt via index |
| 196 | if len(self.prompt_embeds[batchidx]) > 0: |
no test coverage detected