Project Icon

rich-text-to-image

富文本格式提升文本到图像生成的精确控制

Rich-Text-to-Image项目利用富文本格式信息增强文本到图像生成的控制能力。该项目通过字体大小、颜色、样式和脚注等格式实现精确的颜色渲染、局部风格控制和详细区域合成。这种方法支持token显式重新加权,可与Stable Diffusion等主流模型集成,提供更精细的图像生成控制。项目开源了代码实现,并提供在线演示和相关论文,为文本到图像生成领域开辟了新的研究方向。

富文本到图像

项目主页 | 论文 | 视频 | HuggingFace 演示 | A1111 扩展

简述: 我们利用富文本中的各种格式信息,包括字体大小、颜色、样式和脚注,来增强对文本到图像生成的控制。我们的方法实现了显式的词元重新加权、精确的颜色渲染、局部样式控制和详细区域合成。

富文本实现表现力强的文本到图像生成
葛松伟, 朴泰成, 朱俊彦, 黄嘉斌
马里兰大学, Adobe, 卡内基梅隆大学
ICCV 2023

更新

  • [09/26] 我们启动了A1111 WebUI 扩展的实现,用于集成富文本编辑器进行文本到图像生成。
  • [09/24] 我们现在支持 LoRA 检查点。请在此分支中查看演示和最新代码。
  • [08/09] 我们的方法现在支持 SD-XL,使用 --model SDXL,以及各种微调模型,如使用 --model AnimeXLANIMAGINE-XL
  • [07/14] 我们的论文被 ICCV 2023 接收。
  • [05/03] 我们更新了方法以获得更稳健和准确的词元映射,并改进了对纯文本结果的结构保持。以下图像是使用新方法生成的,提示词取自此问题
  • [04/17] 我们在 HuggingFace Space 上发布了富文本到图像演示。感谢 HuggingFace 团队对演示的帮助!
  • [04/13] 我们发布了富文本到图像生成,利用富文本编辑器的格式选项来帮助控制文本到图像的生成。

设置

此代码使用 Python 3.8、Pytorch 1.11 进行测试,并通过 hugginface 支持 Stable Diffusion v1-5Stable Diffusion XLANIMAGINE-XL

git clone https://github.com/SongweiGe/rich-text-to-image.git
cd rich-text-to-image/
conda env create -f environment.yaml
pip install git+https://github.com/openai/CLIP.git
conda activate rich-text

使用方法

一般来说,我们的流程包含两个步骤。首先,我们将纯文本提示输入扩散模型并计算交叉注意力图,以将每个词元与空间区域关联起来。从编辑器获得的富文本提示以 JSON 格式存储,为每个词元跨度提供属性。我们使用新的基于区域的扩散来将每个区域的属性渲染成全局一致的图像。以下我们提供各种字体格式的基本用法。

富文本到 JSON

我们将富文本编码为 JSON 格式,并将其用作富文本条件采样脚本 sample.py 的输入。要根据富文本自动生成 JSON 字符串,您可以使用我们的富文本到 JSON界面,这是一个纯静态网页,可以轻松集成到任何基于富文本的应用程序中。

富文本 JSON 到图像

示例图

您可以通过我们的本地 gradio 演示开始生成富文本 JSON 的图像:

python gradio_app.py

或通过命令行:

python sample.py --rich_text_json '您的富文本 json 在这里'

字体颜色

颜色示例

我们使用字体颜色来控制生成对象的精确颜色。例如,以下脚本生成"日落时分的哥特式教堂(颜色为 #b26b00),背景是美丽的风景。"

python sample.py --rich_text_json '{"ops":[{"insert":"a Gothic "},{"attributes":{"color":"#fd6c9e"},"insert":"church"},{"insert":" in a sunset with a beautiful landscape in the background.\n"}]}' --num_segments 10 --segment_threshold 0.4 --inject_selfattn 0.5 --inject_background 0.5 --color_guidance_weight 1 --seed 7 --run_dir results/color_example_xl --model SDXL

脚注

脚注

我们使用脚注为选定的文本元素提供补充描述。以下脚本生成一只戴着太阳镜和头巾的猫,这是一个困难的案例,正如eDiffi中提到的。

python sample.py --rich_text_json '{"ops":[{"insert":"一张特写的4K单反照片,拍摄的是一只"},{"attributes":{"link":"一只戴着太阳镜和脖子上系着头巾的猫。"},"insert":"猫"},{"insert":"骑着滑板车。背景是棕榈树。\n"}]}' --seed 3 --inject_background 0.5  --inject_selfattn 0.3 --num_segments 5 --run_dir results/footnote_example_xl --model SDXL

字体样式

样式

就像字体样式区分了个别文本元素的样式一样,我们建议使用它来定义生成中特定区域的艺术风格。这里是一个示例脚本,用于生成"一个美丽的花园(克劳德·莫奈风格)和背景中的雪山(浮世绘风格)"。

python sample.py --rich_text_json '{"ops":[{"insert":"一个美丽的"},{"attributes":{"font":"mirza"},"insert":"花园"},{"insert":",背景是一座"},{"attributes":{"font":"roboto"},"insert":"雪山"}]}' --num_segments 10 --segment_threshold 0.5 --inject_background 0.4 --seed 5 --run_dir results/style_example_xl --model SDXL

字体大小

大小

字体大小表示每个标记在最终生成中的权重。这是通过在每个交叉注意力层的softmax之前重新加权指数注意力分数来实现的。以下示例在生成的披萨上增加了更多的菠萝:

python sample.py --rich_text_json '{"ops": [{"insert": "一个披萨上面有菠萝、意大利辣香肠和"}, {"attributes": {"size": "60px"}, "insert": "蘑菇"}]}' --seed 3 --run_dir results/size_example_xl --model SDXL

评估

局部风格生成

为了评估在局部区域生成特定风格的能力,我们计算每个风格化区域与其区域提示(包含该风格名称)之间的CLIP相似度。我们提供了一个评估脚本,并将我们的方法与Prompt-to-Prompt中提出的AttentionRefine方法进行比较:

python evaluation/benchmark_style.py --save_img --folder eval_style

精确颜色生成

我们提出了三个难度级别的颜色名称,以衡量一种方法理解和生成特定颜色的能力。我们通过计算区域和目标RGB值之间的平均L2距离来评估颜色准确性。报告了朝目标颜色变化的距离。

python evaluation/benchmark_color.py --category html --folder eval_color_html
python evaluation/benchmark_color.py --category rgb --folder eval_color_rgb
python evaluation/benchmark_color.py --category common --folder eval_color_common

可视化标记图

预览图

每次调用get_token_maps()函数时,生成的分割和标记图也会被可视化并本地保存以便调试。否则,您可以使用以下脚本手动可视化文本提示中的标记图。

python visualize_token_maps.py --text_prompt "一台三脚架上的相机正在给一只猫拍照。" --token_ids 1 4 10 --num_segments 15 --segment_threshold 0.45 --model SDXL

引用

@inproceedings{ge2023expressive,
      title={Expressive text-to-image generation with rich text},
      author={Ge, Songwei and Park, Taesung and Zhu, Jun-Yan and Huang, Jia-Bin},
      booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
      year={2023}
}

致谢

我们感谢Mia Tang、Aaron Hertzmann、Nupur Kumari、Gaurav Parmar、Ruihan Gao和Aniruddha Mahapatra的有益讨论和论文阅读。我们感谢AK、Radamés Ajna和其他HuggingFace团队成员对在线演示的帮助和支持。我们的富文本编辑器基于Quill构建。我们的模型代码基于huggingface / diffusers构建。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号