Spaces:
Running on Zero
Running on Zero
| import torch | |
| from torch import Tensor | |
| class Krea2TextEncoder(torch.nn.Module): | |
| def __init__(self): | |
| super().__init__() | |
| from transformers import Qwen3VLConfig, Qwen3VLForConditionalGeneration | |
| config = Qwen3VLConfig(**{ | |
| "architectures": ["Qwen3VLForConditionalGeneration"], | |
| "image_token_id": 151655, | |
| "model_type": "qwen3_vl", | |
| "text_config": { | |
| "attention_bias": False, | |
| "attention_dropout": 0.0, | |
| "bos_token_id": 151643, | |
| "dtype": "bfloat16", | |
| "eos_token_id": 151645, | |
| "head_dim": 128, | |
| "hidden_act": "silu", | |
| "hidden_size": 2560, | |
| "initializer_range": 0.02, | |
| "intermediate_size": 9728, | |
| "max_position_embeddings": 262144, | |
| "model_type": "qwen3_vl_text", | |
| "num_attention_heads": 32, | |
| "num_hidden_layers": 36, | |
| "num_key_value_heads": 8, | |
| "rms_norm_eps": 1e-06, | |
| "rope_scaling": { | |
| "mrope_interleaved": True, | |
| "mrope_section": [24, 20, 20], | |
| "rope_type": "default", | |
| }, | |
| "rope_theta": 5000000, | |
| "tie_word_embeddings": True, | |
| "use_cache": True, | |
| "vocab_size": 151936, | |
| }, | |
| "tie_word_embeddings": True, | |
| "transformers_version": "4.57.0.dev0", | |
| "video_token_id": 151656, | |
| "vision_config": { | |
| "deepstack_visual_indexes": [5, 11, 17], | |
| "depth": 24, | |
| "hidden_act": "gelu_pytorch_tanh", | |
| "hidden_size": 1024, | |
| "in_channels": 3, | |
| "initializer_range": 0.02, | |
| "intermediate_size": 4096, | |
| "model_type": "qwen3_vl", | |
| "num_heads": 16, | |
| "num_position_embeddings": 2304, | |
| "out_hidden_size": 2560, | |
| "patch_size": 16, | |
| "spatial_merge_size": 2, | |
| "temporal_patch_size": 2, | |
| }, | |
| "vision_end_token_id": 151653, | |
| "vision_start_token_id": 151652, | |
| }) | |
| self.model = Qwen3VLForConditionalGeneration(config) | |
| self.config = config | |
| def forward( | |
| self, | |
| input_ids=None, | |
| attention_mask=None, | |
| output_hidden_states=True, | |
| **kwargs, | |
| ): | |
| outputs = self.model( | |
| input_ids=input_ids, | |
| attention_mask=attention_mask, | |
| output_hidden_states=True, | |
| return_dict=True, | |
| **kwargs, | |
| ) | |
| return outputs.hidden_states | |