CogView

GitHub
1.8k 180 中等 1 次阅读 2天前Apache-2.0图像开发框架语言模型
AI 解读 由 AI 自动生成,仅供参考

CogView 是一款基于 Transformer 架构的开源人工智能模型,专为将文字描述转化为生动图像而设计。它主要解决了创意可视化过程中“从抽象文本到具体画面”的生成难题,尤其擅长理解并绘制中文语境下的复杂场景,让用户只需输入文字即可获取高质量配图。

这款工具非常适合研究人员探索多模态生成技术,开发者构建定制化应用,以及设计师和普通用户快速实现创意构思。对于希望尝试英文输入的用户,虽然模型原生支持中文,但通过翻译也能获得良好效果。

在技术层面,CogView 拥有高达 40 亿参数规模,采用了独特的 PB-relax 和 Sandwich-LN 技术。这些创新不仅显著提升了大型深度变压器模型的训练稳定性,有效消除了数值溢出(NaN)等常见问题,还确保了生成图像的细腻度与多样性。作为 NeurIPS 2021 的接收论文成果,CogView 提供了预训练模型、详细的部署指南及 Docker 环境支持,降低了使用门槛,是中文文生图领域具有里程碑意义的开源项目。

使用场景

一家专注于中国神话故事改编的独立游戏工作室,正急需为剧本中大量独特的神兽与场景概念快速生成视觉参考图。

没有 CogView 时

  • 语言隔阂导致细节丢失:团队需用英文描述“九尾狐在云雾缭绕的青城山起舞”,翻译过程常丢失“青城山”特有的道教韵味或“九尾”的具体形态特征。
  • 外包沟通成本高昂:向画师反复修改需求以匹配中文意境,单张概念图确认周期长达数天,严重拖慢原型开发进度。
  • 通用模型水土不服:使用国外主流模型生成中国风内容时,服饰纹样、建筑风格常出现文化错误(如汉服混搭和服元素),无法直接使用。
  • 创意迭代受限:因绘图成本高,策划不敢随意尝试“赛博朋克版孙悟空”等大胆构思,导致创意方案单一。

使用 CogView 后

  • 原生中文理解精准:直接输入“水墨风格的饕餮纹青铜鼎”,CogView 能准确识别生僻神兽名称与中国传统艺术风格,还原度极高。
  • 即时可视化加速决策:策划人员在会议中实时输入描述,几分钟内即可产出多版高质量草图,当场确定美术方向,将迭代周期从几天缩短至几小时。
  • 文化元素地道呈现:模型基于海量中文数据训练,生成的建筑飞檐、人物衣褶等细节符合东方审美,大幅减少后期修正工作。
  • 激发无限创意可能:零成本试错让团队能迅速验证“山海经怪兽现代都市化”等新奇点子,显著丰富了游戏的世界观设计。

CogView 通过原生支持中文的高精度文生图能力,彻底打破了语言与文化壁垒,让中国本土创作者能以极低门槛将文字创意瞬间转化为高质量视觉资产。

运行环境要求

操作系统
  • Linux
GPU
  • 必需 NVIDIA GPU,推荐 V100 或 A100
  • 低配显卡需减小 --max-inference-batch-size 运行
  • Docker 镜像基于 CUDA 11.1
内存

未说明

依赖
notes官方推荐使用 Linux 服务器配合 NVIDIA V100/A100 显卡。若环境配置困难,可使用提供的 Docker 镜像 (cogview/cuda111_torch181_deepspeed040)。推理时若显存不足 (OOM),需调小 --max-inference-batch-size 参数。模型输入主要支持简体中文,其他语言建议先翻译为中文。需手动下载预训练模型文件 (vqvae 及 cogview-base/sr/caption) 至指定目录方可运行。
python未说明 (依赖 PyTorch >=1.7.0)
torch>=1.7.0
apex
deepspeed==0.4.0
CogView hero image

快速开始

任何(中文)文本生成生动的图像

teaser

最新消息! ImageReward 的论文已被 NeurIPS 2023 接收!

最新消息! ImageReward 的代码(论文链接)已在 https://github.com/THUDM/ImageReward 上发布!ImageReward 是首个通用的文本到图像人类偏好 RM。

最新消息! CogView2 的代码(论文链接)已在 https://github.com/THUDM/CogView2 上发布!

最新消息! 更好、更快的 CogView2(正式版,2022年3月)的演示现已上线!最新模型也支持英文输入,但通常将其翻译成中文会得到更好的效果。

最新消息! 更好、更快的 CogView2(新版本)的演示现已上线!

最新消息! CogView 的论文已被 NeurIPS 2021 接收!

CogView 是一个预训练的(4B参数)Transformer 模型,用于通用领域的文本到图像生成。

  • 阅读 我们的论文 CogView: 通过 Transformer 掌握文本到图像生成 以获得正式介绍。PB-relaxSandwich-LN 也有助于稳定地训练大型和深层 Transformer(例如消除 NaN 损失)。
  • 访问 我们的演示页面:Github 页面Wudao!(目前不进行后选或超分辨率处理,仅支持简体中文输入,但用户可以将其他语言的文本翻译成中文后再输入。注意:Wudao 为中国大陆用户提供更快速的访问。)
  • 下载 我们的预训练模型,请访问 清华大学云
  • 引用 我们的论文,如果您觉得我们的工作有所帮助:
@article{ding2021cogview,
  title={CogView: Mastering Text-to-Image Generation via Transformers},
  author={Ding, Ming and Yang, Zhuoyi and Hong, Wenyi and Zheng, Wendi and Zhou, Chang and Yin, Da and Lin, Junyang and Zou, Xu and Shao, Zhou and Yang, Hongxia and Tang, Jie},
  journal={arXiv preprint arXiv:2105.13290},
  year={2021}
  • Google Colab 两位贡献者已成功在 Colab 上搭建了 CogView Colab 链接

入门指南

环境搭建

  • 硬件:建议使用配备 Nvidia V100 或 A100 显卡的 Linux 服务器,但也可以使用较小的 --max-inference-batch-size 来运行预训练模型,或者在性能较弱的 GPU 上训练小型模型。

  • 环境(选项 1):请先安装 PyTorch(>=1.7.0)和 apex,然后通过 pip install -r requirements.txt 安装其他依赖项。

  • 环境(选项 2):我们准备了一个 Docker 镜像,以防您无法正确配置环境。拉取镜像并创建后台容器后进入:

    docker pull cogview/cuda111_torch181_deepspeed040
    ./env/start_docker.sh && docker exec -it bg-cogview bash
    
    cd /root/cogview # 在容器内
    

下载

  1. BAAI 网站 或清华大学云下载图像分词器 vqvae_hard_biggerset_011.pt。将文件放置在 pretrained/vqvae 目录下。
wget 'https://cloud.tsinghua.edu.cn/f/71607a5dca69417baa8c/?dl=1' -O pretrained/vqvae/vqvae_hard_biggerset_011.pt
  1. Project Wudao-Wenhui 下载模型。
    文件名 描述
    cogview-base.tar 预训练的文本到图像模型。
    cogview-caption.tar 微调后的图像到文本模型,也用于重新排序。
    cogview-sr.tar 微调后的超分辨率模型。(警告:运行速度较慢。)
    将它们解压到 pretrained/cogview/ 目录中。以下命令需根据模型名称进行调整。
    tar -xvf cogview-{base, sr, caption}.tar -C pretrained/cogview/
    
  2. (仅适用于训练教程,推理时可跳过。)从我们在清华大学云上的链接下载一个小的“鸟类与动物”示例数据集。
wget https://cloud.tsinghua.edu.cn/f/1e4963ec8ac84941ba68/?dl=1 -O data/bird_animal.bin

运行 CogView!(模型推理)

我们将生成函数封装成了脚本。详细信息请参阅 generate_samples.pyarguments.py

文本到图像生成

将文本查询(每行一条)写入 input.txt,然后运行:

./scripts/text2image.sh --debug

结果将保存在新的文件夹 samples_text2image/ 中。

推理时常用的参数主要有:

  • --input-source [路径或 "interactive"]。输入文件的路径,也可以设置为“interactive”,此时会启动一个命令行界面。
  • --output-path [路径]。保存结果的文件夹。
  • --batch-size [整数]。每次查询生成的样本数量。
  • --max-inference-batch-size [整数]。每次前向传播的最大批量大小。如果出现内存不足问题,请适当降低该值。
  • --debug。仅保存所有生成样本的拼接图像,并按输入文本和日期命名。
  • --with-id。启用此选项时,必须在每个输入前指定一个“id”,例如 001\t一个漂亮的女孩,其中 \t 表示制表符(不是空格)。它会为每个输入生成一个名为“id”的文件夹,里面包含 batch-size 张分割图像。此选项与 --debug 冲突。
  • --device [整数]。指定使用的 GPU 编号。

超分辨率

运行以下脚本,并输入 text\t{image_path},其中 {image_path} 是之前生成的图像路径。

./scripts/super_resolution.sh

注意:此功能仅对由我们的图像分词器生成的图像有效(由于标记分布的原因)。

图像到文本

输入格式为“每行一个图像路径”,结果将打印到标准输出。

./scripts/image2text.sh

注意:该模型并未针对此任务进行优化,因此可能竞争力不足(但尚可接受)。未来我们将考虑发布一个在此任务上长期微调的版本。(待办事项)

后选

此应用仅接受文件输入,每行格式为 {text}\t{image_path1}\t{image_path2}\t{image_path3}...。 输出为 {output_path}/scores.txt,每一行对应输入的一行,并列出相应的分数。

./scripts/post_selection.sh

注意:在发布的代码中,为了简化起见,我们并未公开原始 API,而该 API 支持一些高级生成模式,例如文本和部分图像的结合。

训练

在这里,我们使用来自鸟兽数据集的一个子集作为教程材料。二进制数据集是由我们的 cogdata 工具包 生成的。请耐心等待 cogdata 的正式发布及其相关教程(尽管目前已有可用版本)。

单节点

下载数据集后,直接运行:

./scripts/pretrain_single_node.sh

多节点

如果你想在通过 InfiniBand 互连的多台服务器上训练模型,且没有共享文件系统(你可能需要 pdsh 来加速这一过程):

  1. 每台服务器上,使用 git clone 克隆本仓库,并确保将数据(LMDB 格式)移至 data 子文件夹中。
  2. 每台服务器上,执行 echo "ip1 ip2 <其他IP>" > ./docker/ip_list.txt,然后通过 ./env/start_docker.sh 启动 Docker 容器。
  3. 使用 docker exec -it bg-cogview bash 进入第一节点的 Docker 容器
  4. 进入 /root/cogview 目录,运行 ./scripts/pretrain_multiple_nodes.sh。你可能需要修改该 Shell 脚本中的配置(尤其是 OPTIONS_NCCL)。

有关训练的高级功能,请参阅 arguments.py待办

图库

更多样本

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|3天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

144.7k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|2天前
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|昨天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|2天前
语言模型图像Agent