Use it
from transformers import AutoModelForImageTextToText, AutoProcessor
from PIL import Image
ckpt = "cfcamo/cfcamo-sft-4b"
processor = AutoProcessor.from_pretrained(ckpt)
model = AutoModelForImageTextToText.from_pretrained(
ckpt, torch_dtype="auto", device_map="auto",
).eval()
Continue training: RL on top
git clone https://github.com/suhang2000/CFCamo && cd CFCamo
pip install -e .
huggingface-cli download cfcamo/cfcamo-sft-4b --local-dir checkpoints/cfcamo-sft-4b
huggingface-cli download --repo-type dataset cfcamo/CF-COD --local-dir data/cfcod
# LoRA (single GPU) — paper-main LoRA checkpoint at step 252 (epsilon=0.5)
python -m verl.trainer.main config=configs/rl_lora.yaml
# Full fine-tuning (multi-GPU) — checkpoint at step 126 (epsilon=0.5)
python -m verl.trainer.main config=configs/rl_full.yaml
The two RL checkpoints are also released at
cfcamo/cfcamo-rl-lora (LoRA
adapter on top of this SFT base) and
cfcamo/cfcamo-rl-full.
Training summary
- Base: Qwen/Qwen3-VL-4B-Instruct (Apache-2.0)
- Data: 1000 SFT rows (paired r=1:1) with paired CoT reasoning
- 1 epoch, lr 2e-5, batch=2 × grad_accum=8
Citation
@article{li2026cfcamo,
title = {{CFCamo}: A Counterfactual Detect-or-Abstain Framework for Camouflaged Object Detection},
author = {Li, Suhang and Yoshie, Osamu and Ieiri, Yuya},
journal = {arXiv preprint arXiv:2606.11231},
year = {2026}
}