Skip to content

Latest commit

 

History

History
190 lines (147 loc) · 8.76 KB

README_zh.md

File metadata and controls

190 lines (147 loc) · 8.76 KB

CogView3 & CogView-3Plus

Read this in English

🤗 Huggingface Space 在线体验 CogView3-Plus-3B 模型

📚 查看 论文

👋 加入我们的 微信

📍 前往 清言 API平台 体验更大规模的商业版视频生成模型。

项目更新

  • 🔥🔥 2024/10/13: 我们适配和开源了 diffusers 版本的 CogView-3Plus-3B 模型。你可以前往在线体验
  • 🔥 2024/9/29: 我们已经开源了 CogView3 以及 CogView-3Plus-3BCogView3 是一个基于级联扩散的文本生成图像系统,采用了接力扩散框架。 CogView-3Plus 是一系列新开发的基 Diffusion Transformer 的文本生成图像模型。

模型介绍

CogView-3-Plus 在 CogView3(ECCV'24) 的基础上引入了最新的 DiT 框架,以实现整体性能的进一步提升。CogView-3-Plus 采用了 Zero-SNR 扩散噪声调度,并引入了文本-图像联合注意力机制。与常用的 MMDiT 结构相比,它在保持模型基本能力的同时,有效降低了训练和推理成本。CogView-3Plus 使用潜在维度为 16 的 VAE。

下表显示了我们目前提供的文本生成图像模型列表及其基础信息。

模型名称 CogView3-Base-3B CogView3-Base-3B-distill CogView3-Plus-3B
模型描述 CogView3 的基础阶段和接力阶段模型,支持 512x512 文本生成图像以及 2x 超分辨率生成。 CogView3 的蒸馏版本,分别在两个阶段采样 4 和 1 步(或 8 和 2 步)。 DIT 版本的图像生成模型 ,支持从 512 到 2048 范围内的图像生成。
分辨率 512 * 512 512 <= H, W <= 2048
H * W <= 2^{21}
H, W \mod 32 = 0
推理精度 FP16(推荐), BF16, FP32 BF16*(推荐), FP16, FP32
显存占用 (bs = 4) 17G 64G 30G(2048 * 2048)
20G(1024 * 1024)
提示词语言 English*
提示词长度上限 225 Tokens 224 Tokens
下载链接 (SAT) SAT
下载链接 (Diffusers) 未适配 🤗 HuggingFace
🤖 ModelScope
🟣 WiseModel

数据解释

  • 所有推理测试均在单卡A100上运行,批量大小为4。并使用PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True以节约显存。
  • 模型仅支持英语输入,其他语言可以通过大模型润色时翻译为英语。
  • 本次测试环境均使用SAT框架测试,众多优化点还未完善,我们会联合社区一起制作diffusers库版本的模型。diffusers 仓库支持后,将会使用diffusers 测试。预计将于 2024 年 11 月发布。

快速开始

提示词优化

虽然 CogView3 系列模型都是通过长篇合成图像描述进行训练的,但我们强烈建议在文本生成图像之前,基于大语言模型(LLMs)进行提示词的重写操作,这将大大提高生成质量。

我们提供了一个 示例脚本。我们建议您运行这个脚本,以实现对提示词对润色

python prompt_optimize.py --api_key "智谱AI API Key" --prompt {你的提示词} --base_url "https://open.bigmodel.cn/api/paas/v4" --model "glm-4-plus"

推理模型(Diffusers)

首先,确保从源代码安装diffusers库。

pip install git+https://github.com/huggingface/diffusers.git

接着,运行以下代码:

from diffusers import CogView3PlusPipeline
import torch

pipe = CogView3PlusPipeline.from_pretrained("THUDM/CogView3-Plus-3B", torch_dtype=torch.float16).to("cuda")

# Open it for reduce GPU memory usage
pipe.enable_model_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()

prompt = "A vibrant cherry red sports car sits proudly under the gleaming sun, its polished exterior smooth and flawless, casting a mirror-like reflection. The car features a low, aerodynamic body, angular headlights that gaze forward like predatory eyes, and a set of black, high-gloss racing rims that contrast starkly with the red. A subtle hint of chrome embellishes the grille and exhaust, while the tinted windows suggest a luxurious and private interior. The scene conveys a sense of speed and elegance, the car appearing as if it's about to burst into a sprint along a coastal road, with the ocean's azure waves crashing in the background."
image = pipe(
    prompt=prompt,
    guidance_scale=7.0,
    num_images_per_prompt=1,
    num_inference_steps=50,
    width=1024,
    height=1024,
).images[0]

image.save("cogview3.png")

更多推理代码,请关注inference,该文件夹还包含一个Gradio封装的简单WEBUI代码。

推理模型 (SAT)

请查看 sat 手把手教程实现模型推理。

开源计划

由于项目处于初步阶段,我们正在制作以下内容:

  • CogView3-Plus-3B SAT版本的模型微调,包括SFT和Lora微调
  • CogView3-Plus-3B Diffuser库版本模型的推理
  • CogView3-Plus-3B Diffuser库版本模型的微调
  • CogView3-Plus-3B 模型相关周边,包括ControlNet等工作。

CogView3(ECCV'24)

官方论文仓库:CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion

CogView3 是一种新颖的文本生成图像系统,采用了接力扩散的方式,将生成高分辨率图像的过程分解为多个阶段。通过接力的超分辨率过程,对低分辨率生成结果添加高斯噪声,并从这些带噪声的图像开始扩散。我们的结果显示,CogView3 的表现优于 SDXL,获胜率达到 77.0%。此外,通过对扩散模型的逐步蒸馏,CogView3 能够在推理时间仅为 SDXL 1/10 的情况下,生成可比的结果。

CogView3 示例 CogView3 流程

人类评估的对比结果:

CogView3 evaluation

引用

🌟 如果您发现我们的工作有所帮助,欢迎引用我们的文章,留下宝贵的stars

@article{zheng2024cogview3,
  title={Cogview3: Finer and faster text-to-image generation via relay diffusion},
  author={Zheng, Wendi and Teng, Jiayan and Yang, Zhuoyi and Wang, Weihan and Chen, Jidong and Gu, Xiaotao and Dong, Yuxiao and Ding, Ming and Tang, Jie},
  journal={arXiv preprint arXiv:2403.05121},
  year={2024}
}

我们欢迎您的贡献,您可以点击这里查看更多信息。

模型协议

该代码库基于 Apache 2.0 License 协议发布。

CogView3-Base、CogView3-Relay 和 CogView3-Plus 模型(包括 UNet 模块、Transformers 模块和 VAE 模块)基于 Apache 2.0 License 协议发布。