Signed-off-by: princepride <wangzhipeng628@gmail.com> Signed-off-by: 汪志鹏 <wangzhipeng628@gmail.com>
38 lines
1.2 KiB
Python
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"),
|
|
)
|