当前位置: 首页 > java >正文

【字节拥抱开源】 UXO 团队开源 USO: 通过解耦与奖励学习实现的统一风格与主题驱动生成

在这里插入图片描述

🔥 新闻

  • 2025.08.28 🔥 发布了USO的演示版,现在就来体验吧!⚡️
  • 2025.08.28 🔥 将fp8模式更新为主要低显存使用支持(请向下滚动)。这是送给消费级GPU用户的礼物。现在峰值显存使用量约为16GB。
  • 2025.08.27 🔥 发布了USO的推理代码和模型。
  • 2025.08.27 🔥 创建了USO的项目主页。
  • 2025.08.27 🔥 发布了USO的技术报告。

📖 引言

现有文献通常将风格驱动与主体驱动生成视为两项独立任务:前者强调风格相似性,而后者则坚持主体一致性,导致二者形成明显对立。我们认为这两个目标可以在统一框架下实现协同,因为它们本质上都涉及"内容"与"风格"的解耦与重组——这正是风格驱动研究中经久不衰的核心命题。为此,我们提出USO框架(风格驱动与主体驱动生成的统一框架)。首先,我们构建了包含内容图像、风格图像及其对应风格化内容图像的大规模三元组数据集;其次,通过风格对齐训练和内容-风格解耦训练这两个互补目标,提出能同时实现风格特征对齐与内容风格解耦的分离式学习方案;最后,引入风格奖励学习范式以进一步提升模型表现。

⚡️ 快速开始

🔧 需求与安装

安装所需依赖

## create a virtual environment with python >= 3.10 <= 3.12, like
python -m venv uso_env
source uso_env/bin/activate
## or
conda create -n uso_env python=3.10 -y
conda activate uso_env## install torch
## recommended version:
pip install torch==2.4.0 torchvision==0.19.0 --index-url https://download.pytorch.org/whl/cu124 ## then install the requirements by you need
pip install -r requirements.txt # legacy installation command

然后下载检查点:

# 1. set up .env file
cp example.env .env# 2. set your huggingface token in .env (open the file and change this value to your token)
HF_TOKEN=your_huggingface_token_here#3. download the necessary weights (comment any weights you don't need)
pip install huggingface_hub
python ./weights/downloader.py
  • 如果你有权重文件,请注释掉./weights/downloader.py中不需要的内容

✍️ 推理

  • 从以下示例开始探索并激发您的创造力。✨
# the first image is a content reference, and the rest are style references.# for subject-driven generation
python inference.py --prompt "The man in flower shops carefully match bouquets, conveying beautiful emotions and blessings with flowers. " --image_paths "assets/gradio_examples/identity1.jpg" --width 1024 --height 1024
# for style-driven generation
# please keep the first image path empty
python inference.py --prompt "A cat sleeping on a chair." --image_paths "" "assets/gradio_examples/style1.webp" --width 1024 --height 1024
# for style-subject driven generation (or set the prompt to empty for layout-preserved generation)
python inference.py --prompt "The woman gave an impassioned speech on the podium." --image_paths "assets/gradio_examples/identity2.webp" "assets/gradio_examples/style2.webp" --width 1024 --height 1024
# for multi-style generation
# please keep the first image path empty
python inference.py --prompt "A handsome man." --image_paths "" "assets/gradio_examples/style3.webp" "assets/gradio_examples/style4.webp" --width 1024 --height 1024# for low vram:
python inference.py --prompt "your propmt" --image_paths "your_image.jpg" --width 1024 --height 1024 --offload --model_type flux-dev-fp8 
  • 您还可以将您的结果与assets/gradio_examples文件夹中的结果进行比较。

  • 更多示例,请访问我们的项目页面或尝试在线demo。

🌟 Gradio演示

python app.py

为降低显存占用,请传递 --offload--name flux-dev-fp8 参数。峰值显存占用将在16GB(单参考)至18GB(多参考)之间。

# please use FLUX_DEV_FP8 replace FLUX_DEV
export FLUX_DEV_FP8="YOUR_FLUX_DEV_PATH"# FLUX_DEV_FP8=/path/to/flux/FLUX.1-dev/flux1-dev.safetensors 即可python app.py --offload --name flux-dev-fp8

🌈 更多示例

我们提供一些提示词和结果以帮助您更好地理解模型。您可以查看我们的论文或项目主页获取更多可视化案例。

主题/身份驱动生成

若需将主体置入新场景,请使用自然语言描述,如“一只狗/男人/女人正在……”。若仅需转换风格而保持布局,请使用指令式提示,如“将风格转换为……风格”。对于人像保留生成,USO擅长呈现高皮肤细节的图像。实用建议:半身特写适用于半身提示词,当姿势或构图发生显著变化时则使用全身图像。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

风格驱动生成

只需上传一两张风格图片,用自然语言描述你的需求。USO将根据你的提示生成图像,并匹配你上传的风格。

在这里插入图片描述
在这里插入图片描述

风格主题驱动生成

USO可以利用一个或两个风格参考对单个内容参考进行风格化处理。若需保持布局不变的生成,只需将提示语设为空即可。

布局保留生成

在这里插入图片描述
布局偏移生成

在这里插入图片描述

📄 免责声明

本项目开源仅供学术研究使用。项目中使用的大部分图片均为生成内容或来自开源数据集。如有任何疑虑,请联系我们,我们将及时删除不恰当内容。本项目基于 Apache 2.0 许可证发布。若应用于其他基础模型,请确保遵守原始许可条款。

本研究旨在推动生成式AI领域发展。用户可自由使用该工具创作图像,但须遵守当地法律并承担使用责任。开发者对用户滥用工具的行为概不负责。

https://github.com/bytedance/USO

http://www.xdnf.cn/news/19756.html

相关文章:

  • 万和电气卢宇聪:在“慢周期”做本质的事
  • GoLand IDE 无法识别 Go 工作区中的引用,如何解决?
  • 5.kafka集群安装
  • 区间DP .
  • Android U Lmkd源码解析
  • maven 常用指令
  • 二叉树的非递归遍历 | 秋招面试必备
  • Redis分布式缓存
  • RabbitMQ消息堆积问题排查:concurrentConsumers 配置的坑与解决方案
  • js设计模式-职责链模式
  • More Effective C++ 条款24:理解虚拟函数、多继承、虚继承和RTTI的成本
  • VMWare ubuntu24.04安装(安装ubuntu安装)
  • 复杂PDF文档如何高精度解析
  • css3元素倒影效果属性:box-reflect
  • IsaacLab训练机器人
  • uni-app 实现做练习题(每一题从后端接口请求切换动画记录错题)
  • 国内免费低代码软件精选:四款工具助你快速开启数字化转型之路
  • 力扣72:编辑距离
  • windows docker(二) 启动存在的容器
  • 5招教你看透PHP开发框架的生态系统够不够“牛”?
  • 推荐一个论文阅读工具ivySCI
  • latex怎么写脚注:标共一声明,标通讯作者
  • 使用 Avidemux 去除视频的重复帧
  • 从实操到原理:一文搞懂 Docker、Tomcat 与 k8s 的关系(附踩坑指南 + 段子解疑)
  • 血缘元数据采集开放标准:OpenLineage Guides 在 Spark 中使用 OpenLineage
  • SpringBoot3中使用Caffeine缓存组件
  • 模版进阶及分离编译问题
  • ansible判断
  • 科学研究系统性思维的方法体系:数据分析模板
  • C语言:归并排序和计数排序