File size: 6,548 Bytes
6c2332b 9eb9c38 6c2332b 9eb9c38 6c2332b 45d04da 9eb9c38 45d04da 6c2332b 45d04da 9eb9c38 45d04da 9eb9c38 45d04da 6c2332b 9eb9c38 6c2332b 9eb9c38 6c2332b 9eb9c38 6c2332b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | ---
license: apache-2.0
base_model: tencent/HunyuanVideo-1.5
tags:
- video-generation
- subject-driven-generation
- lora
- dreambooth
---
# 3DreamBooth-CustomBench Checkpoints
Pretrained **joint (3DreamBooth + 3Dapter) LoRA checkpoints** for all 30 subjects in
[3D-CustomBench](https://huggingface.co/datasets/lanikoworld/3D-CustomBench), released
alongside [3DreamBooth](https://github.com/Ko-Lani/3DreamBooth) so you can run
subject-driven video generation without training from scratch.
Each subject was trained for 400 steps with `train_joint.py`. Folder names match the
official 3D-CustomBench subject ids exactly.
## Contents
```text
subjects.json # trigger phrase + metadata for all 30 subjects
<subject_id>/
βββ subject_adapter/pytorch_lora_weights.safetensors # 3DreamBooth identity LoRA
βββ tdapter/pytorch_lora_weights.safetensors # subject-specific 3Dapter LoRA
βββ training_config.json # training args for this subject
```
## Trigger phrases
Every subject uses the rare identifier `rhs` followed by a **class word that differs per
subject** β `rhs bear`, `rhs mug`, `rhs bust`, and so on. This phrase is what carries the
learned identity, so it must appear verbatim in your inference prompt and be marked as the
LoRA span. Using the wrong class word (e.g. `rhs plushie` for a checkpoint trained on
`rhs bear`) will not activate the subject identity.
[`subjects.json`](./subjects.json) is the machine-readable source for this:
```python
import json
from huggingface_hub import hf_hub_download
meta = json.load(open(hf_hub_download(
"lanikoworld/3DreamBooth-CustomBench", "subjects.json")))
spans = {s["subject_id"]: s["lora_span"] for s in meta["subjects"]}
print(spans["graduation_bear"]) # "rhs bear"
```
Each entry carries `subject_id`, `lora_span`, `identifier`, `class_word`, the exact
`train_prompt` used, and the subject's `benchmark_prompt` from 3D-CustomBench.
## Subjects and prompt spans
| Subject id | LoRA span | Training prompt |
|---|---|---|
| `bear_keychain` | `rhs plushie` | `A video of a [rhs plushie].` |
| `black_gold_mug` | `rhs mug` | `A video of a [rhs mug].` |
| `black_handbag` | `rhs handbag` | `A video of a [rhs handbag].` |
| `blue_label_pill_bottle` | `rhs bottle` | `A video of a [rhs bottle].` |
| `blue_pig_mug` | `rhs mug` | `A video of a [rhs mug].` |
| `cat_figurine` | `rhs figurine` | `A video of a [rhs figurine].` |
| `ceramic_bust` | `rhs bust` | `A video of a [rhs bust].` |
| `covered_motorcycle` | `rhs motorbike` | `A video of a [rhs motorbike].` |
| `deer_flowerpot` | `rhs pot` | `A video of a [rhs pot].` |
| `drawstring_pants` | `rhs sweatpants` | `A video of a [rhs sweatpants].` |
| `floral_mug` | `rhs mug` | `A video of a [rhs mug].` |
| `gaming_headset` | `rhs headset` | `A video of a [rhs headset].` |
| `graduation_bear` | `rhs bear` | `A video of a [rhs bear].` |
| `hand_cream` | `rhs tube` | `A video of a [rhs tube].` |
| `headband_bust` | `rhs bust` | `A video of a [rhs bust].` |
| `lavender_pitcher` | `rhs pitcher` | `A video of a [rhs pitcher].` |
| `lotion_bottle` | `rhs bottle` | `A video of a [rhs bottle].` |
| `milk_carton` | `rhs carton` | `A video of a [rhs carton].` |
| `moose_plush` | `rhs plush` | `A video of a [rhs plush].` |
| `multifunction_printer` | `rhs printer` | `A video of a [rhs printer].` |
| `office_chair` | `rhs chair` | `A video of a [rhs chair].` |
| `pink_plush` | `rhs plush` | `A video of a [rhs plush].` |
| `pink_rubber_duck` | `rhs duck` | `A video of a [rhs duck].` |
| `rattan_light_bulb` | `rhs bulb` | `A video of a [rhs bulb].` |
| `small_pill_bottle` | `rhs bottle` | `A video of a [rhs bottle].` |
| `textured_rock` | `rhs rock` | `A video of a [rhs rock].` |
| `toy_toilet` | `rhs toilet` | `A video of a [rhs toilet].` |
| `wafer_bag` | `rhs bag` | `A video of a [rhs bag].` |
| `white_light_bulb` | `rhs bulb` | `A video of a [rhs bulb].` |
| `yogurt_drink` | `rhs bottle` | `A video of a [rhs bottle].` |
`subjects.json` also records each subject's `legacy_id` β the internal name used during
development β matching the `legacy_id` field in the dataset's
[`manifest.json`](https://huggingface.co/datasets/lanikoworld/3D-CustomBench/blob/main/manifest.json).
In every `training_config.json`, filesystem paths (`pretrained_model_root`,
`instance_data_root`, `reference_path`, `tdapter_path`, `output_dir`) were rewritten from
their original development locations to the public layout documented in the
[3DreamBooth README](https://github.com/Ko-Lani/3DreamBooth#checkpoint-setup). All
hyperparameters and prompts are unmodified.
## Usage
Download one subject:
```bash
hf download lanikoworld/3DreamBooth-CustomBench \
--local-dir ./checkpoints/custombench --include "graduation_bear/*"
```
Run inference with [`validate_joint.py`](https://github.com/Ko-Lani/3DreamBooth):
```bash
python validate_joint.py \
--pretrained_model_root ./checkpoints/hunyuanvideo-1.5 \
--pretrained_transformer_version 720p_t2v \
--subject_adapter_path ./checkpoints/custombench/graduation_bear/subject_adapter/pytorch_lora_weights.safetensors \
--tdapter_path ./checkpoints/custombench/graduation_bear/tdapter/pytorch_lora_weights.safetensors \
--reference_path ./datasets/3d-custombench/subjects/graduation_bear/references \
--prompt "A video of a rhs bear on a beach." \
--text_lora_spans "rhs bear" \
--video_length 81
```
See the main repo's [Quick start](https://github.com/Ko-Lani/3DreamBooth#quick-start-3d-custombench-graduation-bear)
section for the full setup (base model + 3Dapter checkpoint download, the config-driven
`scripts/run.py` interface, and how the `[rhs ...]` bracket span format works).
## License
Apache License 2.0, matching the [main repository](https://github.com/Ko-Lani/3DreamBooth/blob/main/LICENSE).
Weights are derived from [HunyuanVideo-1.5](https://github.com/Tencent-Hunyuan/HunyuanVideo-1.5)
fine-tuning and remain subject to the [Tencent Hunyuan Community License](https://github.com/Ko-Lani/3DreamBooth/blob/main/LICENSE_HUNYUAN).
## Citation
```bibtex
@misc{ko20263dreambooth,
title = {3DreamBooth: High-Fidelity 3D Subject-Driven Video Generation Model},
author = {Hyun-kyu Ko and Jihyeon Park and Younghyun Kim and Dongheok Park and Eunbyung Park},
year = {2026},
eprint = {2603.18524},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2603.18524}
}
```
|