{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/text2nerf-text-driven-3d-scene-generation","title":"Text2NeRF: Text-Driven 3D Scene Generation with Neural Radiance Fields","arxiv_id":"2305.11588","date":"2023-05-19","proceeding":null,"authors":["Jingbo Zhang","Xiaoyu Li","Ziyu Wan","Can Wang","Jing Liao"],"abstract":"Text-driven 3D scene generation is widely applicable to video gaming, film industry, and metaverse applications that have a large demand for 3D scenes. However, existing text-to-3D generation methods are limited to producing 3D objects with simple geometries and dreamlike styles that lack realism. In this work, we present Text2NeRF, which is able to generate a wide range of 3D scenes with complicated geometric structures and high-fidelity textures purely from a text prompt. To this end, we adopt NeRF as the 3D representation and leverage a pre-trained text-to-image diffusion model to constrain the 3D reconstruction of the NeRF to reflect the scene description. Specifically, we employ the diffusion model to infer the text-related image as the content prior and use a monocular depth estimation method to offer the geometric prior. Both content and geometric priors are utilized to update the NeRF model. To guarantee textured and geometric consistency between different views, we introduce a progressive scene inpainting and updating strategy for novel view synthesis of the scene. Our method requires no additional training data but only a natural language description of the scene as the input. Extensive experiments demonstrate that our Text2NeRF outperforms existing methods in producing photo-realistic, multi-view consistent, and diverse 3D scenes from a variety of natural language prompts. Our code is available at https://github.com/eckertzhang/Text2NeRF.","url_abs":"https://arxiv.org/abs/2305.11588v2","url_pdf":"https://arxiv.org/pdf/2305.11588v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"text2nerf-text-driven-3d-scene-generation","repo_url":"https://github.com/eckertzhang/text2nerf","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-generation","task_name":"3D Generation"},{"task_slug":"3d-reconstruction","task_name":"3D Reconstruction"},{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"monocular-depth-estimation","task_name":"Monocular Depth Estimation"},{"task_slug":"nerf","task_name":"NeRF"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"},{"task_slug":"scene-generation","task_name":"Scene Generation"},{"task_slug":"text-to-3d","task_name":"Text to 3D"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"pixel-prediction","method_name":"Inpainting"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2305.11588","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.11588"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/eckertzhang/text2nerf","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":7,"ran_fixture":1,"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"official":{"samples":17,"ran":9,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"311310d09b78c64c","entry":"average_poses","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/llff.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/llff.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"311310d09b78c64c"}},{"code_sha256_prefix":"9da28ba9306c62af","entry":"center_poses","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/llff.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/llff.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9da28ba9306c62af"}},{"code_sha256_prefix":"db95ecdf5d4abe6b","entry":"eval_sh","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"models/sh.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/models/sh.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"db95ecdf5d4abe6b"}},{"code_sha256_prefix":"caa9e209a9083a0f","entry":"eval_sh_bases","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"models/sh.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/models/sh.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"caa9e209a9083a0f"}},{"code_sha256_prefix":"aa33e7122eb26d8b","entry":"normalize","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/llff.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/llff.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa33e7122eb26d8b"}},{"code_sha256_prefix":"11a10efa60767162","entry":"positional_encoding","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"models/tensorBase.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/models/tensorBase.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"11a10efa60767162"}},{"code_sha256_prefix":"c1acffa981204fee","entry":"raw2alpha","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"models/tensorBase.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/models/tensorBase.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c1acffa981204fee"}},{"code_sha256_prefix":"521893f959a2ef80","entry":"sharpness","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/colmap2nerf.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/colmap2nerf.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"521893f959a2ef80"}},{"code_sha256_prefix":"6ccb6c10eee60ba1","entry":"variance_of_laplacian","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/colmap2nerf.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/colmap2nerf.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ccb6c10eee60ba1"}},{"code_sha256_prefix":"6c97e32d6da121cb","entry":"OctreeRender_trilinear_fast","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"renderer.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/renderer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6c97e32d6da121cb"}},{"code_sha256_prefix":"3a530f556e40d9c0","entry":"SHRender","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"models/tensorBase.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/models/tensorBase.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3a530f556e40d9c0"}},{"code_sha256_prefix":"7495b668be4d84cf","entry":"evaluation","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"renderer.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/renderer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7495b668be4d84cf"}},{"code_sha256_prefix":"6ce64cf0fbcd6bb1","entry":"qvec2rotmat","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/colmap2nerf.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/colmap2nerf.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ce64cf0fbcd6bb1"}},{"code_sha256_prefix":"a0efdd898272d45b","entry":"sparse_bilateral_filtering","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/bilateral_filtering.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/bilateral_filtering.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a0efdd898272d45b"}},{"code_sha256_prefix":"02f63b8e58a7b0f4","entry":"sparse_bilateral_filtering_4imgedge","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/bilateral_filtering.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/bilateral_filtering.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"02f63b8e58a7b0f4"}},{"code_sha256_prefix":"0d1653c0e59444c6","entry":"vis_depth_discontinuity","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"dataLoader/bilateral_filtering.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/dataLoader/bilateral_filtering.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0d1653c0e59444c6"}},{"code_sha256_prefix":"3140b04728a1c82b","entry":"visualize_depth_numpy","repo":"eckertzhang/text2nerf","repo_kind":"official","path":"utils.py","file_url":"https://github.com/eckertzhang/text2nerf/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3140b04728a1c82b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}