Build-A-Scene: Interactive 3D Layout Control for Diffusion-Based Image Generation
<|reference_start|>Build-A-Scene: Interactive 3D Layout Control for Diffusion-Based Image Generation: We propose a diffusion-based approach for Text-to-Image (T2I) generation with interactive 3D layout control. Layout control has been widely studied to alleviate the shortcomings of T2I diffusion models in understanding objects' placement and relationships from text descriptions. Nevertheless, existing approaches for layout control are limited to 2D layouts, require the user to provide a static layout beforehand, and fail to preserve generated images under layout changes. This makes these approaches unsuitable for applications that require 3D object-wise control and iterative refinements, e.g., interior design and complex scene generation. To this end, we leverage the recent advancements in depth-conditioned T2I models and propose a novel approach for interactive 3D layout control. We replace the traditional 2D boxes used in layout control with 3D boxes. Furthermore, we revamp the T2I task as a multi-stage generation process, where at each stage, the user can insert, change, and move an object in 3D while preserving objects from earlier stages. We achieve this through our proposed Dynamic Self-Attention (DSA) module and the consistent 3D object translation strategy. Experiments show that our approach can generate complicated scenes based on 3D layouts, boosting the object generation success rate over the standard depth-conditioned T2I methods by 2x. Moreover, it outperforms other methods in comparison in preserving objects under layout changes. Project Page: \url{https://abdo-eldesokey.github.io/build-a-scene/}<|reference_end|>
@article{eldesokey2024build-a-scene:,
    title={Build-A-Scene: Interactive 3D Layout Control for Diffusion-Based Image
  Generation},
    author={Abdelrahman Eldesokey, Peter Wonka},
    journal={arXiv preprint arXiv:2408.14819},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.14819},
    primaryClass={cs.CV}
}