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)