EvolveDirector:阿里联合南洋理工推出文本到图像生成模型的高效训练技术

简介: EvolveDirector是由阿里巴巴和南洋理工大学联合推出的文本到图像生成模型的高效训练技术。该框架通过与高级模型的API交互获取数据对,并利用预训练的大型视觉语言模型(VLMs)动态优化训练数据集,显著减少了数据量和训练成本。EvolveDirector能够从多个高级模型中选择最佳样本进行学习,使最终训练出的模型在多个方面超越现有高级模型。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

创新框架:阿里巴巴和南洋理工大学联合推出的文本到图像生成模型训练技术。
高效训练:通过API交互和预训练VLMs动态优化数据集,减少数据量和训练成本。
性能提升:从多个高级模型中选择最佳样本,提升生成图像的质量和多样性。

正文(附运行示例)

EvolveDirector 是什么

公众号: 蚝油菜花 - EvolveDirector

EvolveDirector是由阿里巴巴和南洋理工大学联合推出的创新框架,旨在通过公开资源和高级模型的API接口训练一个高性能的文本到图像生成模型。该框架的核心在于通过与现有高级模型的API交互获取数据对,并利用预训练的大型视觉语言模型(VLMs)动态优化训练数据集,从而显著减少所需的数据量和训练成本。

EvolveDirector能够从多个高级模型中选择最佳样本进行学习,使最终训练出的模型在多个方面超越现有的高级模型。这种创新的方法不仅提高了模型的生成质量,还大大降低了训练成本和时间。

EvolveDirector 的主要功能

  • 文本到图像生成:将文本描述转换成高质量的图像。
  • API交互:基于与高级文本到图像模型的API交互,获取文本-图像数据对,训练基础模型。
  • 数据集优化:利用预训练的大型视觉语言模型(VLMs)动态优化训练数据集,基于智能选择、扩展、删除和变异操作。
  • 模型进化:指导基础模型的进化,模拟、超越高级模型的生成能力。
  • 多模型学习:从多个高级模型中选择最佳样本进行学习,提升生成图像的质量和多样性。
  • 在线训练:基于在线训练策略,让基础模型持续不间断地训练,同时动态更新训练数据集。

EvolveDirector 的技术原理

  • API数据获取:基于与高级模型的公共API交互,获取大量的文本-图像数据对。
  • VLM评估与指导:利用预训练的VLMs对生成的图像进行评估,选择与文本描述最匹配的图像,指导数据集的构建。
  • 动态数据集维护:在训练过程中,VLM持续评估基础模型的性能,根据评估结果动态更新训练数据集。
  • 智能选择:VLM选择与文本提示最匹配的图像,保留高质量数据,删除低质量或冗余数据。

如何运行 EvolveDirector

环境配置

  1. 首先克隆本仓库。
  2. 为EvolveDirector构建虚拟环境:
    conda create -n evolvedirector python=3.9
    conda activate evolvedirector
    pip install --upgrade pip
    pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu121
    pip install -r requirements.txt
    pip install -U transformers accelerate diffusers SentencePiece ftfy beautifulsoup4
    
  3. 为LLava构建虚拟环境:
    git clone https://github.com/haotian-liu/LLaVA.git
    cd LLaVA
    conda create -n llava python=3.10 -y
    conda activate llava
    pip install --upgrade pip
    pip install -e .
    

模型权重

  1. 下载Edgen模型权重、VAE和T5权重:https://huggingface.co/ruizhaocv/Edgen。在脚本"AdGenerator/base_img_gen.py"、"AdGenerator/extract_features.py"和训练配置中更改权重路径。
  2. 下载LLava权重:https://huggingface.co/liuhaotian/llava-v1.6-34b。在脚本"VLM/vlm_script.py"中更改权重路径。下载clip:https://huggingface.co/openai/clip-vit-large-patch14-336,并将其放在与LLava权重相同的父文件夹下。
  3. 下载高级模型权重,例如Playground 1.5:https://huggingface.co/playgroundai/playground-v2.5-1024px-aesthetic。在脚本"AdGenerator/advanced_gen_scripts/img_gen_playground.py"中更改权重路径。

使用示例

  1. 512px单尺度训练:

    CUDA_VISIBLE_DEVICES=0 python Synchronizer/server.py --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=0 python AdGenerator/base_img_gen.py --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=1 python AdGenerator/advanced_img_gen.py --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=1 python AdGenerator/advanced_gen_scripts/img_gen_playground.py --task_stamp dynamic_0000 --rank 0
    CUDA_VISIBLE_DEVICES=2 python VLM/vlm_server.py --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=2 python VLM/vlm_script.py --task_stamp dynamic_0000 --rank 0
    CUDA_VISIBLE_DEVICES=3 python /mnt/data/ruizhao/code/EvolveDirector/AdGenerator/extract_features.py --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=4 python Train/train.py configs/evolve_director_512.py --work-dir output/evolve_director_512 --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=4,5,6,7 python -m torch.distributed.launch --nproc_per_node=4 Train/train.py configs/evolve_director_512.py --work-dir output/EvolveDirector_512 --task_stamp dynamic_0000
    
  2. 1024px多尺度训练:

    CUDA_VISIBLE_DEVICES=2 python VLM/vlm_script.py --task_stamp dynamic_0000 --rank 0 --multi_scale
    CUDA_VISIBLE_DEVICES=3 python /mnt/data/ruizhao/code/EvolveDirector/AdGenerator/extract_features.py --task_stamp dynamic_0000 --img_size 1024 --multi_scale
    CUDA_VISIBLE_DEVICES=4 python Train/train.py configs/evolve_director_1024.py --work-dir output/evolve_director_1024 --task_stamp dynamic_0000
    CUDA_VISIBLE_DEVICES=4,5,6,7 python -m torch.distributed.launch --nproc_per_node=4 Train/train.py configs/evolve_director_1024.py --work-dir output/evolve_director_1024 --task_stamp dynamic_0000
    
  3. 推理:

    python Inference/inference.py --image_size=1024 \
     --t5_path "/path/to/Edgen" \
     --tokenizer_path "/path/to/Edgen/sd-vae-ft-ema" \
     --txt_file "Inference/text_prompts.txt" \
     --model_path "/path/to/Edgen/ckpt.pth" \
     --save_folder "output/test_model"
    

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
自然语言处理 搜索推荐 API
通义千问API:用4行代码对话大模型
本章将通过一个简单的例子,让你快速进入到通义千问大模型应用开发的世界。
通义千问API:用4行代码对话大模型
|
机器学习/深度学习 API 开发工具
通义千问API入门教程
本教程将带你从零开始,快速了解如何通过 API 使用通义千问大模型,并尝试使用大模型 API 开发一些简单的应用应用到工作中,提升效率。
|
5月前
|
Python Windows
Python 3.13 安装教程:环境变量配置+自定义路径
Python是简洁易学、开源跨平台的面向对象编程语言,成熟稳定,广泛用于大型项目开发。本文详解Python 3.13在64位Windows系统的下载、以管理员身份安装、PATH环境变量配置、自定义路径及IDLE验证全流程,助你快速完成本地开发环境搭建。(239字)
1566 0
|
4月前
|
数据可视化 算法 搜索推荐
多模态文档水印的精细化嵌入与溯源体系:互成软件可见-隐式双模水印技术解析
互成软件推出多模态文档水印体系,支持文字、点阵、图片、二维码、隐式五类水印,覆盖Word/PDF/Excel/图片等全格式,兼具高可见性与强鲁棒性。通过动态变量、跨平台嵌入引擎及频域/排版级隐式编码,实现打印、拍照、扫描后仍可精准溯源,构建事前威慑与事后追责闭环。(239字)
|
存储 安全 Cloud Native
阿里云支持米哈游新游《绝区零》全球开服!
阿里云支持米哈游新游《绝区零》全球开服!
4576 5
|
消息中间件 前端开发 JavaScript
如何开发工程项目部管理系统中的WBS分解板块(附架构图+流程图+代码参考)
本文详细解析了如何将工程项目中的WBS(工作分解结构)系统化,通过拆解“大工程”为可执行的小单元,实现责任明确、变更可控、联动管理与风险降低。内容涵盖系统架构、业务流程、数据模型、前后端实现、关键路径算法及最小可跑代码(MVP),并提供数据库设计、接口定义与React前端示例,助力快速落地工程项目管理系统。
|
人工智能 API 计算机视觉
AI-ClothingTryOn:服装店老板连夜下架试衣间!基于Gemini开发的AI试衣应用,一键生成10种穿搭效果
AI-ClothingTryOn是基于Google Gemini技术的虚拟试衣应用,支持人物与服装照片智能合成,可生成多达10种试穿效果版本,并提供自定义提示词优化功能。
1329 18
AI-ClothingTryOn:服装店老板连夜下架试衣间!基于Gemini开发的AI试衣应用,一键生成10种穿搭效果
|
自然语言处理 JavaScript 前端开发
什么是闭包
【10月更文挑战第12天】什么是闭包
|
消息中间件 运维 Kubernetes
工作中用Go: Go中异步任务怎么写
工作中用Go: Go中异步任务怎么写
4073 0
工作中用Go: Go中异步任务怎么写
|
Linux Go 网络安全
goland 远程调试 remote debug
goland 远程调试 remote debug
1044 0

热门文章

最新文章