论文精选 |(CVPR 2025)生成式摄影:面向真实文本到图像合成的场景一致性相机控制

1、引入

现有文本到图像生成模型(如Stable Diffusion 3、FLUX)虽能生成逼真图像,但在相机内参控制和场景一致性上存在显著局限:

1)无法准确理解物理相机参数(如焦距、光圈、快门速度、色温),生成结果与参数预期不符;

2)改变相机参数时,场景内容易发生非预期变化(如物体替换、结构扭曲),难以保持一致性。

这些问题限制了生成模型在专业摄影中的应用。为此,CVPR 2025 的《Generative Photography: Scene-Consistent Camera Control for Realistic Text-to-Image Synthesis》论文提出生成摄影(Generative Photography)新范式,旨在实现对相机内参的精确控制,同时保持场景内容稳定,该论文还被评选为CVPR 2025 Hightlight!实验结果表明,所提出的方法在生成场景一致的逼真图像方面显著优于现有的最先进模型。


2、 核心创新

2.1维度提升(Dimensionality Lifting)

为了解决场景一致性问题,作者提出“维度提升”策略并将文本到图像(T2I)生成转化为文本到视频(T2V)生成,借助视频模型的时空一致性来维持场景稳定;在T2V框架中,作者将不变的场景描述与相机设置解耦:用场景描述文本构建基础场景,相机参数(如 “24mm 镜头”)作为额外条件控制每帧效果。


2.2差分相机内参学习(Differential Camera Intrinsics Learning)

为了让模型理解物理相机参数,作者提出“差分相机内参学习”方案,通过构建差分数据集和设计差分相机编码器,让模型掌握相机参数变化的物理规律。

(1)差分数据集构建

差分数据集的核心是生成 “同一场景在不同相机参数下的图像对”,通过三步实现,聚焦于捕捉相机参数变化对图像的影响:

l 基图的视觉语言模型(VLM)标注:选取高质量基图,使用 VLM(如 LLaVA)生成场景描述作为 “不变场景文本”,确保同一场景的语义一致性。

l 连续相机参数空间的随机采样:将相机参数(焦距、快门速度、色温、景深等)视为连续变量,在其物理范围内随机采样多个值(如焦距 24-70mm、色温 2000-10000K),且不按顺序排列,避免模型拟合方向模式(如单纯缩放),而是学习参数数值本身的物理意义。

l 基于物理的模拟渲染:根据采样的参数,通过物理原理生成对应帧。


(2)差分相机编码器

差分相机编码器的核心是通过融合物理先验与参数差异特征,增强模型对相机参数物理意义的理解,具体包括三个关键步骤:

l 粗嵌入(Coarse Embedding):将相机参数转化为物理先验特征(如焦距对应裁剪掩码、快门速度对应亮度系数);

l 差分特征提取:用 CLIP 编码器提取相邻参数的特征差异,捕捉参数变化的语义;

l 特征融合与注入:融合粗嵌入与差分特征,注入视频生成模型的时序注意力层,强化参数物理意义的理解。


3、 快速上手

3.1 环境准备

作者在Github上传了自己的代码,并说明了环境准备的步骤,大家只需执行以下命令即可完成环境的准备。需要注意的是,作者明确提到CUDA版本为12.1,Python版本为3.10,PyTorch版本为2.1.1。

git clone
https://github.com/pandayuanyu/generative-photography.git
conda env create -f
environment.yaml
conda activate genphoto

3.2快速体验

您需要从 Hugging Face 下载 Stable Diffusion V1.5 (SD1.5)和预训练权重,并在推理之前,需要修改config文件夹中的配置yaml文件,将所有数据集和ckpt路径替换为你的路径。

小编根据作者在Github上提交的代码,对四种效果进行了体验。大家快看看效果吧!

渲染效果:

焦距效果:

快门效果:

色温效果:

python inference_bokehK.py --config configs/inference_genphoto/adv3_256_384_genphoto_relora_bokehK.yaml --base_scene "A young boy wearing an orange jacket is standing on a crosswalk, waiting to cross the street." --bokehK_list "[2.44, 8.3, 10.1, 17.2, 24.0]"
# For focal length
python inference_focal_length.py --config configs/inference_genphoto/adv3_256_384_genphoto_relora_focal_length.yaml --base_scene "A cozy living room with a large, comfy sofa and a coffee table." --focal_length_list "[25.0, 35.0, 45.0, 55.0, 65.0]"
# For shutter speed
python inference_shutter_speed.py --config configs/inference_genphoto/adv3_256_384_genphoto_relora_shutter_speed.yaml --base_scene "A modern bathroom with a mirror and soft lighting." --shutter_speed_list "[0.1, 0.3, 0.52, 0.7, 0.8]"
# For color temperature 
python inference_color_temperature.py --config configs/inference_genphoto/adv3_256_384_genphoto_relora_color_temperature.yaml --base_scene "A blue sky with mountains." --color_temperature_list "[2000.0,3000.0,4000.0,5000.0,6000.0]"

论文链接:https://arxiv.org/abs/2412.02168

Github链接:https://github.com/pandayuanyu/generative-photography

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值