Instructions to use Trendyol/Trendyol-Vision-Flash with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Trendyol/Trendyol-Vision-Flash with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Trendyol/Trendyol-Vision-Flash", trust_remote_code=True) messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Trendyol/Trendyol-Vision-Flash", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Trendyol/Trendyol-Vision-Flash with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Trendyol/Trendyol-Vision-Flash" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Trendyol/Trendyol-Vision-Flash", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/Trendyol/Trendyol-Vision-Flash
- SGLang
How to use Trendyol/Trendyol-Vision-Flash with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Trendyol/Trendyol-Vision-Flash" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Trendyol/Trendyol-Vision-Flash", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Trendyol/Trendyol-Vision-Flash" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Trendyol/Trendyol-Vision-Flash", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use Trendyol/Trendyol-Vision-Flash with Docker Model Runner:
docker model run hf.co/Trendyol/Trendyol-Vision-Flash
Trendyol-Vision-Flash
Trendyol-Vision-Flash is a fine-tuned vision-language model (VLM) built on OpenGVLab/InternVL3_5-1B-Instruct for Trendyol catalog quality and moderation workflows. It is the lightweight Flash-tier VLM in the Trendyol-Vision family โ built for production serving under high traffic, with low-latency inference on a single GPU for brand detection, product similarity, attribute extraction, title generation, content moderation, product captioning, and other e-commerce catalog operations.
Trendyol-Vision-Flash vs Master: Flash is the production-tier VLM for day-to-day, high-traffic catalog workloads on a single GPU. Trendyol-Vision-Master is the larger expert VLM for critical or harder cases (e.g. category detection) and retains stronger general capabilities.
Model Details
- Architecture: InternVL3.5-1B (InternViT-300M + Qwen3-0.6B LLM backbone)
- Base model: OpenGVLab/InternVL3_5-1B-Instruct
- Training: Full SFT on Trendyol catalog multimodal data
- Languages: Turkish (primary), English (secondary)
- Modalities: Image + text (up to 16 images per prompt)
- Serving: Single GPU
Intended Use
- Detect product brands from images with category context.
- Determine whether two product listings represent the same SKU.
- Extract structured attributes, titles, and captions from product images.
- Moderate unsafe or policy-violating product content.
- Run low-latency catalog enrichment on a single GPU under high-traffic production load.
- Support research and evaluation use cases in e-commerce catalog operations.
Not intended for Master-tier category detection, general open-domain chat, medical/legal advice, surveillance, or any use described under Ethical Considerations. Optimized for production catalog workflows rather than general-purpose assistance. For category detection at scale, use Trendyol/Trendyol-Vision-Master.
Supported Use Cases
Specialized for e-commerce catalog operations (moderation and enrichment). The tasks below are the primary, production-validated workloads; related catalog workflows can be prompted similarly, with best results on these patterns.
- Brand detection โ Infer the brand from product images with optional category context.
- Product similarity โ Decide whether two listings (images and titles) refer to the same product.
- Attribute extraction โ Extract structured product attributes from image and title/description.
- Title generation โ Produce a clean catalog title from the product image and a reference title.
- Product caption โ Generate a grounded product description from the image and optional metadata.
- Content safety classification โ Classify product image and title for catalog content safety (
0= Forbidden,1= Fantasy,2= Safe). Fantasy means content that may be published but should be treated as adult (+18). - Per-pack quantity extraction โ Extract pack quantity and unit from image and long title.
See Task Prompts below for per-task prompt templates.
Quickstart
Install dependencies:
pip install "transformers==4.56.2" accelerate sentencepiece torch torchvision pillow requests
Load the model, preprocess images from URLs, and run inference with the native InternVL model.chat() API:
import torch
import requests
from PIL import Image
from io import BytesIO
from torchvision import transforms as T
from torchvision.transforms.functional import InterpolationMode
from transformers import AutoModel, AutoTokenizer
MODEL_ID = "Trendyol/Trendyol-Vision-Flash"
IMAGENET_MEAN = (0.485, 0.456, 0.406)
IMAGENET_STD = (0.229, 0.224, 0.225)
model = AutoModel.from_pretrained(
MODEL_ID,
trust_remote_code=True,
dtype=torch.bfloat16,
low_cpu_mem_usage=True,
use_flash_attn=False,
).eval().cuda()
tokenizer = AutoTokenizer.from_pretrained(
MODEL_ID,
trust_remote_code=True,
use_fast=False,
)
def build_transform(input_size=448):
return T.Compose([
T.Lambda(lambda img: img.convert("RGB") if img.mode != "RGB" else img),
T.Resize((input_size, input_size), interpolation=InterpolationMode.BICUBIC),
T.ToTensor(),
T.Normalize(mean=IMAGENET_MEAN, std=IMAGENET_STD),
])
def load_image_from_url(url, input_size=448):
response = requests.get(url, timeout=30)
response.raise_for_status()
image = Image.open(BytesIO(response.content)).convert("RGB")
return build_transform(input_size)(image).unsqueeze(0)
urls = [
"https://cdn.dsmcdn.com/mnresize/620/920/ty1571/prod/QC/20240924/23/a77c7933-c626-3753-9cad-fbb7388bff45/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/mnresize/620/920/ty1569/prod/QC/20240924/23/356395c3-c71c-37c5-88c4-5ef97899b3d8/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/mnresize/620/920/ty1571/prod/QC/20240924/23/112305b3-ba5d-3a28-8fd3-b1857749afca/1_org_zoom.jpg",
]
pixel_values = torch.cat([load_image_from_url(url) for url in urls], dim=0)
pixel_values = pixel_values.to(dtype=torch.bfloat16, device="cuda")
question = """<image>
Gรถrsellerden, Eldiven kategorisinde yer alan รผrรผnรผn markasฤฑnฤฑ รงฤฑkar.
Sadece verilen gรถrsellerde doฤrulanabilen bilgilere dayan.
Emin olmadฤฑฤฤฑnda "Unknown" ลeklinde cevap ver.
Sadece marka adฤฑnฤฑ dรถndรผr."""
generation_config = {"max_new_tokens": 32, "do_sample": False}
response = model.chat(tokenizer, pixel_values, question, generation_config)
print(response) # Adidas
Image ordering: concatenate pixel_values in the same order as <image> placeholders in the prompt. For a single <image> token with multiple product photos, pass all images in one batch (default behavior).
GPU note: Trendyol-Vision-Flash is designed for single-GPU inference. No tensor parallelism required.
Serving (vLLM)
Trendyol-Vision-Flash can be served with vLLM as an OpenAI-compatible API on a single GPU.
vllm serve Trendyol/Trendyol-Vision-Flash \
--trust-remote-code \
--max-model-len 16384 \
--structured-outputs-config.backend xgrammar \
--served-model-name Trendyol-Vision-Flash \
--interleave-mm-strings \
When calling the vLLM OpenAI API, use image_url content blocks:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer EMPTY" \
-d '{
"model": "Trendyol-Vision-Flash",
"temperature": 0.0,
"max_tokens": 32,
"messages": [
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://cdn.dsmcdn.com/mnresize/620/920/ty1571/prod/QC/20240924/23/a77c7933-c626-3753-9cad-fbb7388bff45/1_org_zoom.jpg"}},
{"type": "image_url", "image_url": {"url": "https://cdn.dsmcdn.com/mnresize/620/920/ty1569/prod/QC/20240924/23/356395c3-c71c-37c5-88c4-5ef97899b3d8/1_org_zoom.jpg"}},
{"type": "image_url", "image_url": {"url": "https://cdn.dsmcdn.com/mnresize/620/920/ty1571/prod/QC/20240924/23/112305b3-ba5d-3a28-8fd3-b1857749afca/1_org_zoom.jpg"}},
{"type": "text", "text": "Gรถrsellerden, Eldiven kategorisinde yer alan รผrรผnรผn markasฤฑnฤฑ รงฤฑkar.\nSadece verilen gรถrsellerde doฤrulanabilen bilgilere dayan.\nEmin olmadฤฑฤฤฑnda \"Unknown\" ลeklinde cevap ver.\nSadece marka adฤฑnฤฑ dรถndรผr."}
]
}
]
}'
Task Prompts
Pass any prompt below to model.chat() using the same image-loading flow from Quickstart. Replace {placeholders} with your data. Use one <image> per image group; for tasks with multiple image slots, pass num_patches_list (e.g. [1, 1] for before/after).
1. Brand Detection
Images: product photos (1โ16)
Output: brand name or Unknown
<image>
Gรถrsellerden, {category} kategorisinde yer alan รผrรผnรผn markasฤฑnฤฑ รงฤฑkar.
Sadece verilen gรถrsellerde doฤrulanabilen bilgilere dayan.
Emin olmadฤฑฤฤฑnda "Unknown" ลeklinde cevap ver.
Sadece marka adฤฑnฤฑ dรถndรผr.
2. Product Similarity
Images: before listing images, then after listing images
Output: 1 (same SKU) or 0 (different)
E-ticaret kataloฤundaki รผrรผn benzerliฤi konusunda uzmansฤฑnฤฑz.
ฤฐki รผrรผnรผn รถnceki ve sonraki baลlฤฑk/gรถrsellerini karลฤฑlaลtฤฑrarak aynฤฑ รผrรผn olup olmadฤฑฤฤฑnฤฑ belirle.
Ambalaj, arka plan veya model farklarฤฑ tek baลฤฑna fark sayฤฑlmaz; renk, boyut, miktar veya varyant farklarฤฑ fark sayฤฑlฤฑr.
Sadece "1" veya "0" dรถndรผr.
รnceki รrรผn Baลlฤฑฤฤฑ:
{before_title}
รnceki รrรผn Resimleri:
<image>
Sonraki รrรผn Baลlฤฑฤฤฑ:
{after_title}
Sonraki รrรผn Resimleri:
<image>
3. Attribute Extraction
Images: 1 product image
Output: JSON object
<image>
Bu gรถrseldeki, baลlฤฑฤฤฑ '{title}' ve aรงฤฑklamasฤฑ '{description}' olan รผrรผnรผn {attribute_list} bilgilerini json formatฤฑnda รงฤฑkarฤฑr mฤฑsฤฑn?
Example:
<image>
Bu gรถrseldeki, baลlฤฑฤฤฑ 'Helen Bar Sandalyesi-mavi-9519q0119' ve aรงฤฑklamasฤฑ 'Maksimum kargolanma sรผresi: Sipariล tarihinden sonraki 7. gรผn Ortalama montaj sรผresi: 1 dakika Geniลlik: 62cm Derinlik: 52cm Yรผkseklik: 96cm Oturak Yรผksekliฤi: 44cm รrรผn Aฤฤฑrlฤฑฤฤฑ: 10kg Kullanฤฑlan malzeme: Metal Kullanฤฑlan sรผnger: Yรผksek yoฤunluklu gri sรผnger Kullanฤฑlan kol: Metal Kollu Kullanฤฑlan ayak: Metal Ayaklฤฑ + Kromajlฤฑ Garanti sรผresi - Menลei: 24 Ay - Yerli Sipariล bazlฤฑ รผretim-tedarik yapฤฑldฤฑฤฤฑndan sipariล iptali yapฤฑlamamaktadฤฑr Anlaลmalฤฑ olunan ambar ve kargolarla bina kapฤฑsฤฑnda teslimat yapฤฑlmaktadฤฑr' olan รผrรผnรผn Garanti Sรผresi, Materyal, Model, Sandalye Kumaลฤฑ, Sandalye Sayฤฑsฤฑ, Tema / Stil bilgilerini json formatฤฑnda รงฤฑkarฤฑr mฤฑsฤฑn?
Image URL: https://cdn.dsmcdn.com/ty1325/product/media/images/prod/QC/20240522/17/f63a7316-5998-3c7d-b45f-93ff8e9c34a2/1_org_zoom.jpg
Expected output:
{
"Garanti Sรผresi": "2 Yฤฑl",
"Materyal": "Metal",
"Model": "Bar Sandalyesi",
"Sandalye Kumaลฤฑ": "รงฤฑkarฤฑlamadฤฑ",
"Sandalye Sayฤฑsฤฑ": "1",
"Tema / Stil": "Modern"
}
4. Title Generation
Images: 1 product image
Output: plain-text title
<image>
รrรผn fotoฤrafฤฑ ile '{reference_title}' bilgisini karลฤฑlaลtฤฑrฤฑp, Trendyol katalog moderasyon kurallarฤฑna gรถre yanฤฑltฤฑcฤฑ ifadelerden kaรงฤฑnarak net bir baลlฤฑk รผret; รงฤฑktฤฑyฤฑ dรผz metin ver.
5. Product Caption
Images: 1 product image
Output: English product description
<image>
Without speculating about details you cannot see, describe this product based on the image and the information provided.
Product title: {title}
Brand: {brand}
First decide which object is the product, review OCR for brand/model/title clues, then analyze colors, shape, material, pattern, and other grounded details.
6. Content Safety Classification
Images: 1 product image
Labels: 0 (Forbidden) = not publishable, 1 (Fantasy) = publishable but adult (+18) content, 2 (Safe) = publishable without restriction.
<image>
รrรผn Baลlฤฑฤฤฑ: {title}
Bu รผrรผn gรถrselini ve baลlฤฑฤฤฑnฤฑ inceleyerek moderasyon sฤฑnฤฑflandฤฑrmasฤฑ yap. Sonucu 0 (Forbidden), 1 (Fantasy) veya 2 (Safe) olarak ver.
7. Per-Pack Quantity Extraction
Images: 1 product image
Output: {"amount": <number|null>, "unit": "KG"|"L"|"PIECE"|null}
<image>
Extract total product quantity from the title and image. Title is the primary source; use the image only when the title is missing or ambiguous.
Return only JSON: {"amount": <number|null>, "unit": "KG"|"L"|"PIECE"|null}
Convert gโKG, ml/ccโL, countsโPIECE. Ignore model numbers, storage, wattage, and dimensions. If unclear, return {"amount": null, "unit": null}.
Product Title: {title}
Limitations
- Domain specificity: Optimized for Trendyol e-commerce product images and Turkish catalog text; may not generalize to other domains.
- Not for Master-tier category detection: Category detection at taxonomy scale is handled by Trendyol/Trendyol-Vision-Master.
- Multi-image tasks: Product similarity and brand detection may use multiple images; ensure all images are included in the prompt.
- Language bias: Turkish prompts and outputs are primary; English performance varies by task.
- Not a general assistant: Fine-tuned for structured catalog tasks in production settings; open-domain chat is out of scope, and quality is strongest on the production-validated tasks above.
Ethical Considerations
- Designed for catalog quality and moderation workflows.
- Ensure compliance with data protection regulations when processing product and user-generated content.
- Monitor for biased decisions across product categories and brands.
- Not intended for surveillance, misinformation, or harmful content generation.
- Safety and moderation labels reflect training for catalog workflows and may not match every jurisdiction or platform policy; human review is recommended for high-impact decisions.
Citation
@misc{trendyol-vision-flash,
title={Trendyol-Vision-Flash: Lightweight Catalog Quality Vision-Language Model (VLM)},
author={Trendyol Data Science Team},
year={2026},
howpublished={\url{https://huggingface.co/Trendyol/Trendyol-Vision-Flash}}
}
@article{zhu2025internvl3_5,
title={InternVL3.5: Advancing Open-Source Multimodal Models},
author={Zhu, Weiyun and others},
year={2025},
url={https://huggingface.co/OpenGVLab/InternVL3_5-1B-Instruct}
}
Model Card Authors
- Trendyol Data Science Team
License
This model is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
You are free to share and adapt the model for any purpose, even commercially, as long as you give appropriate credit and indicate if changes were made.
This release is a fine-tune of OpenGVLab/InternVL3_5-1B-Instruct, which is licensed under Apache License 2.0 (including its Qwen3 language-model component). Redistribution of this derivative continues to satisfy Apache-2.0 notice and attribution requirements for the base model; retain the Apache-2.0 license text and any NOTICE attributions shipped with InternVL3.5 when redistributing.
For the full CC BY 4.0 license text, see: https://creativecommons.org/licenses/by/4.0/legalcode
Released by the Trendyol Data Science Team.
- Downloads last month
- 224
Model tree for Trendyol/Trendyol-Vision-Flash
Base model
OpenGVLab/InternVL3_5-1B-Pretrained
Install from pip and serve model
# Install vLLM from pip: pip install vllm# Start the vLLM server: vllm serve "Trendyol/Trendyol-Vision-Flash"# Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Trendyol/Trendyol-Vision-Flash", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'