Skip to content

viridityzhu/AnchorDS

Repository files navigation

AnchorDS: Anchoring Dynamic Sources for Semantically Consistent Text-to-3D Generation


wakatime

Jiayin Zhu1Linlin Yang2Yicong Li1, Angela Yao1;
Computer Vision & Machine Learning Group, National University of Singapore 1
Communication University of China 2

AAAI 2026

TL;DR: The core innovation of AnchorDS lies in anchoring dynamic sources during the generation process, which reduces the Janus problem and improves 3D consistency compared to existing SDS variant methods, producing high-quality 3D Gaussian Splatting and NeRF representations from text prompts.

🎥 Results Showcase

A red barn in a green field
A vibrant orange pumpkin sitting on a hay bale
A green cactus in a clay pot
A gold glittery carnival mask

🚀 Get Started

Installation

Install 3D Gaussian Splatting and Shap-E as follows:

pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117
pip install ninja
pip install -r requirements.txt

git clone https://github.com/hustvl/GaussianDreamer.git 
cd GaussianDreamer

pip install ./gaussiansplatting/submodules/diff-gaussian-rasterization
pip install ./gaussiansplatting/submodules/simple-knn

git clone https://github.com/openai/shap-e.git
cd shap-e
pip install -e .

Download finetuned Shap-E by Cap3D, and put it in ./load

Quickstart

AnchorDS with IP-Adapter (Recommended)

# Gaussian Splatting with IP-Adapter
python launch.py --config configs/gaussiandreamer-sd1.5-anchorDS-ipadapter-finetune.yaml --train --gpu 0 system.prompt_processor.prompt="a bald eagle carved out of wood"

# NeRF with IP-Adapter
python launch.py --config configs/nerf-sd1.5-anchorDS-ipadapter-finetune.yaml --train --gpu 0 system.prompt_processor.prompt="a bald eagle carved out of wood"

AnchorDS with ControlNet

# Gaussian Splatting with SD 2.1  
python launch.py --config configs/gaussiandreamer-sd2.1-anchorDS-controlnet-finetune.yaml --train --gpu 0 system.prompt_processor.prompt="a bald eagle carved out of wood"

# NeRF with SD 2.1
python launch.py --config configs/nerf-sd2.1-anchorDS-controlnet-finetune.yaml --train --gpu 0 system.prompt_processor.prompt="a bald eagle carved out of wood"

Baseline Methods (for comparison)

# Standard SDS
python launch.py --config configs/gaussiandreamer-sd1.5-sds.yaml --train --gpu 0 system.prompt_processor.prompt="a bald eagle carved out of wood"

# SDS-Bridge
python launch.py --config configs/nerf-sd1.5-sds_bridge.yaml --train --gpu 0 system.prompt_processor.prompt="a bald eagle carved out of wood"

Configuration Options

Our method provides several configuration variants:

  • Backbone Models: Stable Diffusion 1.5 (sd1.5) or 2.1 (sd2.1)
  • 3D Representations: Gaussian Splatting (gaussiandreamer) or NeRF (nerf)
  • Anchoring Methods:
    • anchorDS-controlnet: Uses ControlNet for anchoring dynamic sources
    • anchorDS-ipadapter: Uses IP-Adapter for anchoring dynamic sources
  • Optimization Strategies:
    • Vanilla AnchorDS
    • filter: Optimization with filtering mechanisms
    • finetune: Fine-tuned approach

📊 Method Overview

Method Overview

📄 Citation

If you found this repository/our paper useful, please consider citing:

@inproceedings{zhu2026AnchorDS,
	title = {AnchorDS: Anchoring Dynamic Sources for Semantically Consistent Text-to-3D Generation},
	author = {Zhu, Jiayin and Yang, Linlin and Li, Yicong and Yao, Angela},
	year = {2026},
	volume = {40},
	booktitle = {Proceedings of the AAAI Conference on Artificial Intelligence}
}

About

[AAAI 2026] AnchorDS: Anchoring Dynamic Sources for Semantically Consistent Text-to-3D Generation

Topics

Resources

License

Stars

Watchers

Forks