--- title: IC-Light Background Conditional Relighting Demo emoji: ✨ colorFrom: blue colorTo: purple sdk: gradio sdk_version: 5.31.0 app_file: app.py pinned: false license: apache-2.0 --- # IC-Light Background Conditional Relighting Demo 这是一个基于IC-Light的背景条件重新打光演示应用,适用于Hugging Face Spaces。 ## 功能特性 - **背景条件重新打光**: 使用前景图像和背景图像进行智能重新打光 - **多种光照模式**: 支持上传背景图像或选择预设光照方向(左、右、上、下、环境光) - **自动背景移除**: 自动移除前景图像的背景 - **高分辨率支持**: 支持高分辨率图像生成和细化 - **实时预览**: 快速生成预览结果 ## 使用方法 ### 基本使用 1. **上传前景图像**: 上传包含人物或物体的图像 2. **选择背景源**: - `Use Background Image`: 上传自定义背景图像 - `Left Light/Right Light/Top Light/Bottom Light`: 使用预设的方向性光照 - `Ambient`: 使用环境光照 3. **输入提示词**: 描述期望的光照效果,如 "beautiful woman, cinematic lighting" 4. **点击"✨ Relight Image"**: 生成重新打光的结果 ### 高级设置 - **图像尺寸**: 调整输出图像的宽度和高度 - **生成步数**: 控制生成质量(更多步数 = 更高质量,但更慢) - **CFG Scale**: 控制提示词的影响强度 - **高分辨率缩放**: 启用高分辨率细化 - **种子值**: 控制随机性,相同种子产生相同结果 ## 技术实现 ### 模型架构 - **基础模型**: Stable Diffusion 1.5 (realistic-vision-v51) - **IC-Light权重**: iclight_sd15_fbc.safetensors (背景条件模型) - **背景移除**: RMBG-1.4 或简化的边缘检测算法 ### 核心功能 1. **UNet修改**: 将输入通道从4扩展到12,以支持前景和背景条件 2. **条件编码**: 将前景和背景图像编码为潜在空间条件 3. **提示词编码**: 支持长提示词的分块编码 4. **多阶段生成**: 支持低分辨率生成 + 高分辨率细化 ## 依赖项 ``` diffusers==0.27.2 transformers==4.36.2 torch gradio==3.41.2 pillow==10.2.0 safetensors numpy scipy ``` ## 部署到Hugging Face Spaces 1. 创建新的Gradio Space 2. 上传所有文件到Space 3. 确保requirements.txt包含所有依赖 4. Space会自动构建和部署 ## 示例用法 ### 人像重新打光 ``` 前景: 人像照片 背景: 选择"Left Light" 提示词: "beautiful woman, cinematic lighting" ``` ### 产品摄影 ``` 前景: 产品图片 背景: 上传工作室背景 提示词: "product photography, professional lighting" ``` ### 艺术创作 ``` 前景: 任意物体 背景: 选择"Top Light" 提示词: "dramatic lighting, artistic photography" ``` ## 注意事项 - 首次运行会下载IC-Light模型文件(约2GB) - GPU环境下运行效果最佳 - 背景移除功能可能需要手动调整 - 生成时间取决于图像尺寸和步数设置 ## 许可证 本项目基于IC-Light官方实现,遵循相应的开源许可证。 ## 相关链接 - [IC-Light官方仓库](https://github.com/lllyasviel/IC-Light) - [IC-Light论文](https://openreview.net/forum?id=u1cQYxRI1H) - [Hugging Face Spaces](https://huggingface.co/spaces)