| 86 | prompts = list(reversed(prompts)) |
| 87 | |
| 88 | def text_encode(prompt, i: int | None = None): |
| 89 | jobid = shared.state.begin('TE Encode') |
| 90 | pbar.update(task, description=f'text encode section={i}') |
| 91 | t0 = time.time() |
| 92 | torch.manual_seed(seed) |
| 93 | # log.debug(f'FramePack: section={i} prompt="{prompt}"') |
| 94 | shared.state.textinfo = 'Text encode' |
| 95 | stream.output_queue.push(('progress', (None, 'Text encoding...'))) |
| 96 | sd_models.apply_balanced_offload(shared.sd_model) |
| 97 | framepack_hijack.set_prompt_template(prompt, system_prompt, optimized_prompt, unmodified_prompt) |
| 98 | llama_vec, clip_l_pooler = hunyuan.encode_prompt_conds(prompt, text_encoder, text_encoder_2, tokenizer, tokenizer_2) |
| 99 | metadata['comment'] = prompt |
| 100 | if cfg_scale > 1 and n_prompt is not None and len(n_prompt) > 0: |
| 101 | llama_vec_n, clip_l_pooler_n = hunyuan.encode_prompt_conds(n_prompt, text_encoder, text_encoder_2, tokenizer, tokenizer_2) |
| 102 | else: |
| 103 | llama_vec_n, clip_l_pooler_n = torch.zeros_like(llama_vec), torch.zeros_like(clip_l_pooler) |
| 104 | llama_vec, llama_attention_mask = utils.crop_or_pad_yield_mask(llama_vec, length=512) |
| 105 | llama_vec_n, llama_attention_mask_n = utils.crop_or_pad_yield_mask(llama_vec_n, length=512) |
| 106 | sd_models.apply_balanced_offload(shared.sd_model) |
| 107 | timer.process.add('prompt', time.time()-t0) |
| 108 | shared.state.end(jobid) |
| 109 | return llama_vec, llama_vec_n, llama_attention_mask, llama_attention_mask_n, clip_l_pooler, clip_l_pooler_n |
| 110 | |
| 111 | def latents_encode(input_image, end_image): |
| 112 | jobid = shared.state.begin('VAE Encode') |