Spaces:
Running on Zero
Running on Zero
File size: 911 Bytes
f110cb1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | """
Functional API for encoding text prompts with T5 text encoder.
"""
import torch
from uranus.modules.t5_encoder import WanTextEncoder, HuggingfaceTokenizer
def encode_prompt(
tokenizer: HuggingfaceTokenizer,
text_encoder: WanTextEncoder,
prompt: str,
device: torch.device,
seq_len: int = 512,
) -> torch.Tensor:
"""
Encode a text prompt into T5 embeddings.
Args:
tokenizer: HuggingfaceTokenizer instance
text_encoder: WanTextEncoder (T5-XXL) instance
prompt: Input text prompt
device: Target device
seq_len: Max sequence length for tokenization
Returns:
text_embeddings of shape [1, seq_len, 4096]
"""
ids, mask = tokenizer(prompt, return_mask=True, add_special_tokens=True)
ids = ids.to(device)
mask = mask.to(device)
prompt_emb = text_encoder(ids, mask)
return prompt_emb * mask.unsqueeze(-1)
|