How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("image-text-to-text", model="SynLayers/Bbox-caption-8b")
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)
# Load model directly
from transformers import AutoProcessor, AutoModelForImageTextToText

processor = AutoProcessor.from_pretrained("SynLayers/Bbox-caption-8b")
model = AutoModelForImageTextToText.from_pretrained("SynLayers/Bbox-caption-8b")
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?"}
        ]
    },
]
inputs = processor.apply_chat_template(
	messages,
	add_generation_prompt=True,
	tokenize=True,
	return_dict=True,
	return_tensors="pt",
).to(model.device)

outputs = model.generate(**inputs, max_new_tokens=40)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:]))
Quick Links

SynLayers Bbox-Caption Model

This repository hosts the Stage 1 bbox-caption model for SynLayers.

Given an input image, the model predicts:

  • a whole-image caption
  • bounding boxes for visible objects or layers

This repository is only for the Stage 1 detector. The full SynLayers system has two stages:

  1. bbox + whole-caption prediction from this repo
  2. layer decomposition into transparent RGBA outputs using the Stage 2 checkpoints

For the complete demo, please use our public Space: SynLayers/synlayers

For the Stage 2 decomposition checkpoints and runtime assets, please see: SynLayers/synlayers

This repo is not intended to be loaded as a generic DiffusionPipeline(prompt) model. If you only want the Stage 1 model, you can load it with transformers:

from transformers import AutoProcessor, Qwen3VLForConditionalGeneration

model = Qwen3VLForConditionalGeneration.from_pretrained(
    "SynLayers/Bbox-caption-8b",
    torch_dtype="auto",
    device_map="auto",
)
processor = AutoProcessor.from_pretrained("SynLayers/Bbox-caption-8b")

This repository also includes lightweight inference helpers under demo/infer/. To run whole-caption and bbox inference on a folder of images:

python demo/infer/run_caption_bbox_infer.py \
  --model SynLayers/Bbox-caption-8b \
  --data-dir /path/to/images \
  --output outputs/caption_bbox_infer.jsonl \
  --vis-dir outputs/bbox_vis

For more details, please check our paper: https://arxiv.org/abs/2605.15167

If you find our work useful, please consider citing:

@article{wu2026does,
  title={Does Synthetic Layered Design Data Benefit Layered Design Decomposition?},
  author={Wu, Kam Man and Yang, Haolin and Chen, Qingyu and Tang, Yihu and Chen, Jingye and Chen, Qifeng},
  journal={arXiv preprint arXiv:2605.15167},
  year={2026}
}

Thanks for trying SynLayers.

Downloads last month
1,414
Safetensors
Model size
9B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for SynLayers/Bbox-caption-8b

Quantizations
1 model

Space using SynLayers/Bbox-caption-8b 1

Paper for SynLayers/Bbox-caption-8b