AI个人学习
和实操指南
TRAE

UNO:支持单主体和多主体定制化图像生成工具(适合电商配图)

综合介绍

UNO 是由 ByteDance 智能创作团队开发的一个开源图像生成框架。它基于 FLUX.1 模型,专注于通过“少到多”的泛化方式实现单主体和多主体的定制化图像生成。UNO 利用扩散变换器(DiT)的上下文生成能力,结合高一致性的数据合成流程,解决了多主体场景下数据扩展和主体一致性的难题。它支持用户通过文字描述和参考图像生成高质量图像,广泛适用于个性化图像创作、虚拟角色设计等场景。项目代码采用 Apache 2.0 许可证,模型权重则使用 CC BY-NC 4.0 许可证,适合学术研究和非商业用途。

UNO:支持单主体和多主体定制化图像生成工具(适合电商配图)-1


 

功能列表

  • 单主体图像生成:基于单一参考图像生成与描述一致的图像,保持主体特征。
  • 多主体图像生成:在同一场景中生成多个特定主体,保持各自特征不混淆。
  • 上下文生成:利用扩散变换器的上下文学习能力,生成高一致性的图像。
  • 低显存优化:支持 fp8 模式,峰值显存占用约 16GB,适合消费级 GPU。
  • 模型微调:提供预训练和多阶段训练策略,支持从文本到图像模型的迭代优化。
  • 开源支持:提供训练代码、推理代码和模型权重,方便研究者扩展应用。

 

使用帮助

安装流程

要使用 UNO,需要在本地环境中安装并配置相关依赖。以下是详细的安装步骤,适用于 Python 3.10 至 3.12 的环境。

  1. 创建虚拟环境
    首先,创建一个独立的 Python 虚拟环境以避免依赖冲突。可以使用以下命令:

    python -m venv uno_env
    source uno_env/bin/activate  # Linux/MacOS
    uno_env\Scripts\activate  # Windows
    

    或者使用 Conda 创建环境:

    conda create -n uno_env python=3.10 -y
    conda activate uno_env
    
  2. 安装 PyTorch
    如果使用 AMD GPU、NVIDIA RTX 50 系列或 macOS MPS,需要手动安装适合的 PyTorch 版本。参考 PyTorch 官网(https://pytorch.org/)选择正确的版本。例如:

    pip install torch torchvision torchaudio
    
  3. 安装 UNO 依赖
    克隆 UNO 仓库并安装依赖:

    git clone https://github.com/bytedance/UNO.git
    cd UNO
    pip install -e .  # 仅用于推理
    pip install -e .[train]  # 用于推理和训练
    

    注意:确保 requirements.txt 中的依赖正确安装。如果遇到问题,可检查是否有缺失的系统库(如 ffmpeg)并通过 conda install -c conda-forge ffmpeg 安装。

  4. 下载模型检查点
    UNO 依赖 FLUX.1-dev 模型和相关检查点。可以通过以下方式下载:

    • 自动下载:运行推理脚本时,检查点会自动通过 hf_hub_download 下载到默认路径(~/.cache/huggingface)。
    • 手动下载:使用 Hugging Face CLI 下载模型:
      huggingface-cli download black-forest-labs/FLUX.1-dev
      huggingface-cli download xlabs-ai/xflux_text_encoders
      huggingface-cli download openai/clip-vit-large-patch14
      huggingface-cli download bytedance-research/UNO
      

    下载后,将模型放置到指定目录(如 models/unet 和 models/loras)。

  5. 验证安装
    安装完成后,运行以下命令检查环境是否正确配置:

    python -c "import torch; print(torch.cuda.is_available())"
    

    如果返回 True,说明 GPU 环境配置成功。

使用方式

UNO 提供了一个 Gradio 界面(app.py)用于交互式图像生成,也可以通过命令行运行推理脚本(inference.py)。以下是主要操作流程。

通过 Gradio 界面生成图像

  1. 启动 Gradio 应用
    确保安装了 Gradio(包含在 requirements.txt 中)。运行以下命令启动界面:

    python app.py
    

    启动后,浏览器会打开一个本地页面(通常是 http://127.0.0.1:7860)。

  2. 输入参数
    在 Gradio 界面中:

    • 输入文字提示(prompt),描述你想要生成的图像场景,例如“一只猫和一只狗在公园玩耍”。
    • 上传 1-4 张参考图像(image_ref1 至 image_ref4),这些图像定义主体的外观。
    • 设置种子值(seed)以控制生成结果的随机性,默认值为 3407。
    • 选择模型类型(flux-devflux-dev-fp8 或 flux-schnell),推荐 flux-dev-fp8 以降低显存需求。
  3. 生成图像
    点击“生成”按钮,UNO 会根据提示和参考图像生成结果。生成时间取决于硬件性能,通常在消费级 GPU(如 RTX 3090)上需要数秒到数分钟。

通过命令行运行推理

  1. 准备输入
    创建一个包含提示和参考图像路径的配置文件,或直接在命令行指定参数。例如:

    python inference.py --prompt "A man in a suit, standing in a city" --image_paths "./assets/examples/man.jpg" --model_type "flux-dev-fp8" --save_path "./output"
    
  2. 常用参数说明
    • --prompt:文字描述,定义生成图像的内容。
    • --image_paths:参考图像路径,支持多个图像。
    • --model_type:模型类型,推荐 flux-dev-fp8
    • --offload:启用显存卸载,减少显存占用。
    • --num_steps:扩散步骤数,默认 25,影响生成质量。
    • --guidance:引导因子,默认 4,控制文字与图像的匹配度。
  3. 查看结果
    生成的图像会保存到 --save_path 指定的目录(如 output/inference)。

特色功能操作

单主体生成

  • 操作步骤
    1. 上传一张主体图像(如一张人物照片)。
    2. 输入文字提示,描述目标场景(如“此人在海滩上散步”)。
    3. 设置参考图像分辨率为 512(默认值)。
    4. 生成图像,UNO 会保持主体的外观特征(如面部、服装)。
  • 注意事项:确保参考图像清晰,主体特征明显,避免模糊或低质量图像。

多主体生成

  • 操作步骤
    1. 上传多张参考图像(如一张猫的照片和一张狗的照片)。
    2. 输入文字提示,描述多主体场景(如“猫和狗在草地上玩耍”)。
    3. 设置参考图像分辨率为 320(多主体默认值)。
    4. 生成图像,UNO 会通过 UnoPE(通用旋转位置嵌入)技术避免主体特征混淆。
  • 注意事项:参考图像数量不超过 4 张,且每个主体应在图像中明确区分。

低显存优化

  • 使用 flux-dev-fp8 模型,显存占用降至约 16GB。
  • 启用 --offload 参数,将部分计算卸载到 CPU,进一步降低显存需求。
  • 适合 RTX 3090 或 RTX 4090 等消费级 GPU 用户。

常见问题解决

  • 显存不足:尝试降低分辨率(--width 和 --height)至 512x512,或使用 flux-dev-fp8 模型。
  • 安装失败:检查 PyTorch 版本是否与 GPU 兼容,必要时手动安装特定版本。
  • 生成结果不理想:调整 --guidance(增加到 5 或 6)或 --num_steps(增加到 50),以提高图像质量。

 

应用场景

  1. 个性化图像创作
    用户可以上传自己的照片,结合文字描述生成特定场景的图像。例如,上传一张自拍照,生成“自己在未来城市漫步”的图像,适用于社交媒体内容创作。
  2. 虚拟角色设计
    游戏开发者或动画制作者可上传角色草图,生成不同场景下的角色形象,保持角色外观一致性,适合漫画、动画或游戏开发。
  3. 广告与营销
    营销团队可以上传产品或品牌吉祥物图像,生成多样化的广告场景(如产品在不同季节的展示),提升视觉内容的多样性。
  4. 学术研究
    研究者可利用 UNO 的开源代码和训练流程,探索扩散模型在多主体生成中的应用,验证新的算法或优化现有模型。

 

QA

  1. UNO 支持哪些硬件?
    UNO 推荐使用 NVIDIA GPU(如 RTX 3090 或 4090),最低显存 16GB。支持 AMD GPU 和 macOS MPS,但需手动配置 PyTorch。
  2. 如何提高生成图像的质量?
    增加扩散步骤(--num_steps 设为 50)或调整引导因子(--guidance 设为 5-6)。确保参考图像清晰且文字提示具体。
  3. UNO 是否支持商用?
    模型权重采用 CC BY-NC 4.0 许可证,仅限非商业用途。商业使用需遵守 FLUX.1-dev 的原始许可条款。
  4. 如何处理多主体生成中的特征混淆?
    UNO 使用 UnoPE 技术减少混淆。确保每张参考图像的主体特征明确,并适当降低分辨率(如 320)以优化效果。
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
未经允许不得转载:首席AI分享圈 » UNO:支持单主体和多主体定制化图像生成工具(适合电商配图)
zh_CN简体中文