Files
vllm-omni/vllm_omni/model_extras/hunyuan_image3.py
T
2026-07-26 16:33:17 +08:00

38 lines
1.2 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
from __future__ import annotations
from typing import Any
def build_x_to_text_prompt(
model: str,
prompt: str,
has_image: bool,
) -> tuple[dict[str, Any], list[int] | None]:
"""Build HunyuanImage-3 prompt tokens and stopping rules for T2T/I2T."""
from transformers import AutoTokenizer
from vllm_omni.diffusion.models.hunyuan_image3.prompt_utils import (
build_prompt_tokens,
resolve_stop_token_ids,
resolve_sys_type,
)
task = "i2t" if has_image else "t2t"
tokenizer = AutoTokenizer.from_pretrained(model, trust_remote_code=True)
build_kwargs: dict[str, Any] = {"task": task, "bot_task": None}
if has_image:
build_kwargs["num_images"] = 1
built = build_prompt_tokens(prompt, tokenizer, **build_kwargs)
return (
{
"prompt": prompt,
"prompt_token_ids": built.token_ids,
"modalities": ["text"],
"use_system_prompt": resolve_sys_type(None),
},
resolve_stop_token_ids(task=task, bot_task=None, tokenizer=tokenizer, image_size="auto"),
)