Diffusion 模型微调的苦涩回忆
时间:2024-04 ~ 2024-06
项目描述:
- 基于Stable Diffusion 模型,使用本地需求的图像数据集进行微调训练,从而达到使微调的模型可以定向生成项目组需求方想要的类型图像;
- 针对怪物猎人风格的图像进行微调训练;
本文主要内容:
- 数据集构建的苦涩回忆
- 基于需求,收集原始图像数据
- 构建高质量的怪物猎人数据集,Midjourney数据合成
- 高质量Prompt的构建尝试
- 看看你的数据
- Diffusion模型微调原理及实验细节说明
- 微调的原理说明
- 实验的细节记录及分析
- 模型评估方法及性能提升记录
- Diffusion模型评估的技术现状
- 本项目中采用的微调模型的评估方法
- 如何更好评估模型性能的思考
- 一些经验教训,不足和遗憾
- 项目中的经验教训
- 本实验的不足,局限性
- 未来的展望
- 参考资料-Reference
1、数据集构建的苦涩回忆
在决定对Diffusion模型的UNet网络进行全量微调后,首要事情就是寻找 txt2img
的开源数据集,我们发现Hugging Face上的开源数据并不多,或者该开源数据质量很低,尽管CivitAI 、Hugging Face等网站上有很多成功的LoRA微调的模型和经验分析,但是对于数据集构建的说明却闭口不言,这让我们在准备数据时候有些迷惑。
后续的很多时间都因为对数据的认知不足而进展缓慢,随着我们收集到的图像数据越来越多,我们才逐渐深化对数据集的理解,包括图像质量、高质量prompt的重要性,以及CLIP的文本编辑器的长度限制等。
开源数据集-Pxovela 的初试牛刀
- Dataset: pxovela/cosmopolitan
- 训练介绍文章该数据集简介:11,475 对图像-文本,将该数据集分为训练集和验证集,留出了 1722 张图片作为验证数据(占总数的 15%)。
有了标杆,我们随后便开始在该数据集上进行微调实验,采用了如下的模型:
- sd-1-5;
- sd-2-1;
- SDXL;
由于经验不足,加之LLM的实践经验与文生图的训练差异,导致前期的进展不理想,直到202405开始调整思路:
- 针对高质量的开源数据集:
- 挑选高质量数据200张(来源:imgsys),进行过拟合训练,200 epochs(这个数字在后面看来,依然过于保守了);
- 针对本地需求的怪物猎人数据集:
- 挑选本地收集的怪物猎人高质量 100张(从当时来看质量较高,其实后来再看,依旧较差),进行过拟合微调训练,300 epochs。
针对上述的思路调整,一共进行了5次不同的微调模型测试(2024-04-15 ~ 2024-05-10),分别如下:
- run-001
- 实验设计基础模型:SDXL,对扩展数据集
pxovela_2778_images_size_1024_v2
进行更长时间的微调训练,50 epochs –> 100 epochs; - 模型结果评估过拟合的效果不及预期,模型能够复现训练数据的 70% 左右的图像表现。
- 实验设计基础模型:SDXL,对扩展数据集
- run-002
- 实验设计基础模型:SDXL,针对挑选的
imgsys-200_size_1024
进行 200 epochs 的过拟合训练; - 模型结果评估微调后的模型能够对高质量的开源数据集进行较高效的学习,
txt2img
对训练数据集的复现程度达到了85%; - 此处的补充推理测试说明:为了证明模型对训练数据集学习的有效性,此处专门准对未微调的基础模型SDXL,使用相同的Prompt,在同样的采样参数设置下进行图像生成,从生成的图像与训练数据集的巨大差异性的结果,说明了微调训练的有效性。
- 实验设计基础模型:SDXL,针对挑选的
- run-003
- 实验设计基础模型:SDXL,使用本地挑选的
monster-hunter_100_size_1024
进行 300 epochs 的微调训练; - 模型结果评估模型的学习能力较差吗针对细节和噪声背景的去除能力不足,不过微调的模型确实进行了有效的学习,基本学到了训练数据集图像的基本特征,但较为粗糙(此时依旧没有意识到图像质量对微调的根本性影响)。
- 实验设计基础模型:SDXL,使用本地挑选的
- run-004
- 实验设计基础模型:SDXL,数据集的设计:此时使用混合数据集,分别为:1、200 张 imgsys 高质量数据集,2、100张本地的怪物猎人数据集,图像尺寸为768 x 768,200 epochs;本实验主要用于验证使用不同源(核心是图像质量差异)的数据集进行微调,微调模型的性能差异;
- 模型结果评估微调模型在高质量的开源数据集上的表现非常优秀,但在质量差的本地怪物猎人数据集上的表现很差。
- run-005
- 实验设计为了进一步补充说明实验 run-31 的结论,本实验沿用混合数据集但进行了更长时间的微调训练:600 epochs;
- 模型结果评估效果:针对开源数据集的学习效果较好,还原度达到 90%以上;针对本地怪物猎人数据的微调,模型难以学习,生成图像的质量很差;
在以上实验的苦涩结果上,我们团队开始逐渐认识到训练数据集中图像质量的重要性,关于如何构建基于怪物猎人主题的高质量数据集将是接下来的重点。
Midjourney数据合成–构建高质量的怪物猎人数据集
此处我们使用了图像生成领域最成功的闭源模型:Midjouney Niji ,来进一步提升我们本地收集的低质量的怪物猎人数据集。
本地数据的清洗
在使用Midjourney进行图像合成之前,我们需要对本地的手机的怪物猎人数据做一些处理,主要包括:使用Photoshop、图像超分技术等进行处理,从而获取到背景纯净的人物立绘图像,这些处理消耗了不少人力(在本身团队人员不多的情况下)。在完成此步骤后,我们又使用该数据集做了一些微调训练,结果表明纯净的数据有利于模型的微调。
开始 Midjourney 合成测试
就在我们推进使用 Midjourney 进行图像数据合成时,惊喜的发现 midjourney.com/imagine
网页端有了图像合成的功能,这将使我们摆脱 Discord的约束,能够多人同时进行图像合成操作,从而加速提升我们在数据合成上的效率。
在使用Midjourney Niji-v6 模型进行图像合成时,我们测试了多种合成数据的方式,最终得出了我们想要的怪物猎人合成效果的Prompt和图像,然后我们就通过图像搭配、混合等多种方式生成多样性的高质量合成数据。
这部分的实践经验表明,当我们在本地难以获取高质量的多样性图像数据时,我们能够通过闭源模型来辅助我们完成自己的数据集构建的任务,这也是非常高效和有效的。
高质量Prompt的构建尝试
在达芬奇项目中,使用Stable Diffusion模型进行游戏图像生成,需要将不同的图像进行分类打标签,在后期模型生成中,将使用这些Labels-taggers进行图像生成,标签的精准性将直接影响后续图像生成的质量,所以需要对该功能进行研究。

WD-tagger生成的tags与使用该tags调用MJ模型生成图像,然后,再对MJ生成的突袭那个进行反向tagger推理,发现两者的taggers具有较强的相似性,WD-tagger在二次元数据上的tags推理的效果较好;基于现有的 CLIP/WD_1.4-tagger/BLIP/DeepSeek-VL/LlaVa等开源模型对图像数据的理解力,构建stable diffusion模型训练所需的高质量数据集的Prompts–提示词;
后期的方向调整
由于后续使用Midjourney对数据进行合成,随着数据集的增加,难以再使用人工修改的方式进行Prompt生成,所以后续专为使用GPT4-V进行打标签,这样基本上保证了生成的Prompt质量不会过低,一定程度上维持了训练数据集的质量。
看看你的数据 – Look at the dataset
2、Diffusion模型原理及微调实验细节说明
Diffusion模型原理
- Paper: 《High-Resolution Image Synthesis with Latent Diffusion Models》

Diffusion模型的组成部分
- VAE自动编码器模型,用于将潜空间向量解码到图像空间;
- Tokenizer & Text_encoder文本标记器和文本编码器,对文本进行标记化和编码;
- UNet用于生成潜变量的UNet模型;
- Scheduler-噪声调度器;
The Autoencoder (AE,自动编码器)
自动编码器经过训练,可以讲图像压缩成更小的表示形式,然后再根据压缩后的版本重建图像;例如:以 一副 3 * 512 * 512 的图像为例,将其压缩为 4 * 64 * 64 的潜向量,这样输入图像中的每个 3*8*8 像素的体积被压缩成4个数字 (4*1*1)。
使用自动编码器的原因说明:
- 我们可以在像素空间中进行扩散–模型将所有图像数据作为输入,并产生相同形状的输出预测,但这意味着要处理大量的数据,因此生成高分辨率的图像的计算成本非常高。有些解决方法是在低分辨率下进行扩散(例如 64px),然后训练一个单独的模型来重复放大(DALLE 2 / Imagen)。而潜在扩散则是在“潜在空间”中进行扩散处理,使用的是AE的压缩表示而不是原始图像。这些表征信息丰富,而且小到足以在消费级硬件上进行处理,一旦我们生成了新的“图像”作为潜像表示,自动编码器就可以将这些最终的潜像输出转化为实际像素。
The UNet and CFG
实际的扩散模型是一个典型的UNet模型,它接收噪声潜变量(x) 并预测噪声。我们使用一个条件模型,该模型也将时间步(t) 和文本嵌入(又称为,编码器隐藏状态) 作为条件,将所有这些输入模型的过程如下:
Noise_pred = unet(latents, t, encoder_hidden_states=text_embeddings)["sample"]
在对扩散模型进行微调时,通常主要调整UNet模型的参数,而保持其他组件不变,原因如下:
- UNet是扩散模型的核心组件,负责逐步去噪和生成图像,调整UNet可以直接影响模型生成特定领域或风格图像的能力;
- 只调整UNet可以显著减少需要更新的参数的数量,降低计算资源的需求,从而加快微调过程;
- VAE(变分自编码器)、Tokenizer和text encoder通常在预训练阶段就已经学习到了较为通用的特征表示。保持它们不变可以保留模型的基础能力,避免出现灾难性遗忘等问题;
- 对于特定任务的微调,UNet的调整通常就足以适应新的数据分布或风格,而无需改变整个模型架构。
基于怪物猎人数据集的微调实验
在进行进一步的微调时,高质量怪物猎人数据的制作是不断迭代的,第一阶段:初级制作100张,随后增加到300张数据,用于验证高质量怪物猎人数据进行微调的有效性;第二阶段:对数据进行扩展,分别达到800张和随后的1400张;第三阶段:为了进一步提升生成图像在面部细节、服装细节等方面的质量,使用Midjourney Niji模型扩增400张高质量的半身图像,通过将全身立绘图像与高质量的半身图像进行混合,让模型能否在后续的生成图像中对人物的细节表现力进行提升。
在经历前期在数据集制作和探索阶段的不断尝试后,后期已经获取到 1.8k 高质量的怪物猎人风格的数据集,且前期的时间经验表明,相较于sd-v2-1 & SDXL,sd-v1-5更加易于微调且学习的效果也更好,所以后续的微调模型以sd-v1-5为主。
实验记录如下:
- Run-20240513
- 实验设计使用MJ Niji-v6 扩展的100张高质量怪物猎人风格图像,基础模型选择 sd-v1-5;
- 模型性能评估确认以下事项:1、高质量的合成数据,对微调模型性能提升较为显著;2、原始低质量数据难以进行快速有效的学习;
- Run-20240514
- 实验设计选择sd-v1-5基础模型,通过对 1294张本地的怪物猎人数据集(512 x 512)的数据进行微调训练 600 epochs下,分别对不同epochs下微调后的模型进行评估;
- 模型性能评估确认以下事项:1、模型能够进一步学习,但后期开始过拟合,效果变差;2、微调后的模型对Prompt提示词的跟随性较好,说明模型能够高效的进行学习;
- Run-20240522
- 实验设计选择sd-v1-5基础模型,本实验使用MJ Niji-v6 扩展的500+怪物猎人数据,挑选了其中的300+高质量数据进行微调训练;
- 模型性能评估评估结论:相比于之前使用原始怪物猎人数据的微调run-36实验来说,在生成细节的质量有了较大的提升,说明了使用Midjourney进行高质量数据合成对微调训练的有效性。
- Run-20240523-mix-datasets
- 实验设计选择sd-v1-5基础模型,本实验使用了三种质量不同的图像数据,分别是:1原生怪物猎人数据集、2使用Midjourney生成的怪物猎人数据集、3其他开源高质量数据集,数据集质量一次提高;
- 模型性能评估从评估结果来看:越高质量的图像的学习效果越好,启发:后续需要进一步研究使用midjourney对怪物猎人的数据集进行高质量的扩充,从而提升模型对怪物猎人立绘数据的学习效果。
- Run-20240531
- 实验设计选择sd-v1-5基础模型,本实验使用MJ Niji-v6 模型合成的850张高质量的怪物猎人数据集(768 x 768),训练数据集一共微调了1000 epochs,batch-size设置为16,一共微调 52,000 steps;
- 模型性能评估从评估结果来看,微调模型对训练数据集完成了很好的学习效果,在人物姿态、图像颜色、服装样式等方面都达到了新的高度,生成图像的背景也较为纯净;
- 改进:
- 服装、武器、人物的细节生成效果进一步改善;
- 模型对 Prompt的跟随性能进一步改善;
- 杂乱的背景噪声进一步减少;
- 不足:
- 脸部细节有待进一步提升优化;
- 男性角色的生成质量 比女性角色差;
- 改进:
- Run-20240602
- 实验设计选择sd-v1-5基础模型,采用与run-20240531相同的数据集,降低了微调步数(600 epochs, 22000 steps),提升了模型的batch-size 和学习率大小;
- 模型性能评估
- 改进:
- 相比于 run-20240531 模型,run-20240602模型对Prompt 的跟随性能进一步改善,稳定性较好;
- 背景噪声进一步减少;
- 不足:
- 细节的学习效果差于 run-20240531 模型;
- 改进:
- Run-20240614-mix-datasets
- 实验设计选择sd-v1-5基础模型,数据集采用了 1.4 k 完整的人物立绘图像和 400+高清半身人物图像的混合,微调600 epochs,实验目标是验证:带有更多细节的高清半身人物图像是否可以对微调模型在完整立绘人物的生成效果上有所提升;
- 模型性能改进微调模型的学习效果较好,全身立绘图像的性能有待进一步学习;模型对半身图像和全身图像的生成结果的控制性不好,由于混合数据的出现,导致模型的预期输出变得可控性降低;
- Run-20240616-mix-datasets
- 实验设计继续沿用Run-20240614-mix-datasets实验中的训练数据和基础模型,调整了学习率等超参数的设置,观察是否对微调模型的最终性能有较大的影响;
- 模型性能改进降低学习率,使得模型对细节的学习能力增强,在半身人物图像的合成上达到了较好的效果,但模型对于全身立绘图像与半身人物图像的生成可控性较差的问题依旧保留,但有了一定程度的改善;
通过上述的微调实验,可以得出下面的结论:
- 图像的质量和多样性依旧是制约模型的微调性能提升的关键因素,在进行本地化的微调训练时,一定要有足够的办法来收集或制作出与最终需求一致的大量高质量图像;在有了高质量、多样性的数据的基础上,对模型的微调才能推进下去;
- 在进行模型的微调训练之前,一定要注意循序渐进的实验方法,通过一些少量但快速的实验来验证自己的想法,比如:想要验证使用MJ合成的图像进行微调是否有用,不需要先大量合成1000张以上的图像再去做实验,因为如果你们团队的人很少,那么手工制作1000张图像可能需要耗费一周左右的时间,这里面并不是说使用MJ合成的1000张图像就是全部可以投入使用的,这里面还需要挑选和淘汰,能有50%的合格率就很不错了;因此,你可以先制作300张的图,然后挑选100张高质量的图来进行过拟合的微调训练,然后检查微调模型是否在少量数据集上达到较好的效果,如果没有达到,说明微调实验的设置或代码有Bug,需要进一步的排查;
- 设计实验时候,一定要思路清晰,知道自己的实验目的,如果没有明确的实验目的就盲目的运行实验,你可能既无法理解实验结果也无法准确评估并给出结论,从而一无所获,但如果你设计实验的目的明确,那么就可以带着明确的问题去寻找答案,这才能使实验本身有效;
微调超参数设置的注意点
对于微调实验本身,超参数的设置主要有下面几个:
- learning rate
1e-5
的学习率能够更快的拟合数据,Loss曲线下降较快,但对于图像数据的学习细节需要注意,可能学习的不够好;3e-6
的学习率往往需要更长的时间进行训练,Loss曲线的下降较慢,但是一般对训练集图像的细节学习效果更好,最终需要过需要进行更详细的评估;5e-7
的学习率更低,需要更长的时间进行微调训练,Loss曲线的下降更慢,在实际的微调训练中,需要直接评估来确定最终效果
- batch size
- 结合本地的GPU情况,进行具体分析,尽量以较高的设置来最大限度的利用GPU的加速效果;
- num_train_epochs
- 扩散模型的微调与LLM大模型的微调存在较大的差异,不能简单的将彼此的经验进行迁移,要想扩散模型对图像数据进行很好的学习,往往需要更多的epochs(500 ~1000不等,甚至可能更多);
要想在实际的扩散模型的微调中取得最好的效果,往往需要多做实验、多多验证自己的想法,从而找到最佳的微调方法,这方面需要经验的积累和交流,而非直接照搬别人的实践经验。
3、模型评估方法及性能提升记录
Diffusion模型评估的现状
- 图像质量评估
- 定量方法
- FID (Frechet Inception Distance)
- IS (Inception Score)
- SSIM (Structural Similarity Index)
- PSNR (Peak Signal-to-Noise Ratio)
- 定性方法
- 人工评估
- A/B测试
- 现状分析
- FID 和 IS 仍然是最常见的指标,但有一定的局限性;
- 研究者正在探索更好的评估指标,如 Clean FID 和 Improved Precision and Recall;
- 定量方法
- 文本-图像一致性评估
- 方法
- CLIP Score
- CLIP-I
- 现状
- 这些方法能较好的评估生成图像与文本描述的一致性,但仍然存在局限,对复杂寓意的理解力不足;
- 方法
- 多样性评估
- 方法
- LPIPS (Learned Perceptual Image Patch Similarity)
- Diversity Score
- 现状
- 多样性评估对于衡量模型的创造性和泛化能力很重要,但是现有方法无法完全捕获人类感知的多样性;
- 方法
在实际的扩散模型的微调实验中,研究者通常会采用一些相对直接和实用的方法来评估微调后模型的性能,人工视觉评估仍然是一种不可或缺的方法。研究者和开发者会直接比较微调前后生成的图像,观察图像质量、细节表现和风格一致性的变化。
总的来说,实际的评估通常会结合多种方法,既考虑定量指标,也重视定性评估。选择哪些评估方法往往取决于具体的应用场景、可用资源和研究目标。重要的是要确保评估方法能够全面地反映模型在目标任务上的性能提升。
本项目中采用的微调模型的评估方法
对于现有评估方法的局限性,本实验基本采用人工评估的方法,尽管需要耗费一定的时间成本,但是可以确保评估的客观性和准确性。
采用的开源推理框架
该框架提供了丰富的采样策略,能够较为全面的对微调模型的性能进行评估,基本保证了现有评估方法的有效性;针对微调模型,采用多种常用的采样策略,通过调节采样步数和CFG Scale参数等方法,来测试微调模型对训练数据集的学习情况;在挑选生成图像时,基本采用1/2 或 1/3 的挑选率进行记录(1/3,即一个Prompt一次生成3张图像,选择效果最好的一张进行记录)。
如何更好评估模型性能的思考
我在Twitter上也关注了一些做 diffusion模型微调的研究员,包括:@cloneofsimo,@meltenx等,通过他们对一些信息的分享,了解到更多的有效信息:
- @meltenx我对扩散模型进行了微调,Proteus 模型在超过400K 张gpt4V 带有标注的图像上进行了训练,而DPO 则为10K。Proteus 是对 OpenDalleV1.1 的复杂增强,利用其核心功能来提供卓越的结果。进步的关键领域包括提高对提示的响应能力和增强的创造力。为了实现这一目标,它使用来自无版权库存图像(包括一些动漫)的约 220,000 张 GPTV 字幕图像进行了微调,然后将其标准化。此外,通过收集 10,000 个精心挑选的人工智能生成的高质量图像对,采用了 DPO(直接偏好优化)。高质量数据集的组成:
- 精美的图像数据
- 数量级:220k
- 高质量的prompt-提示词
- GPT4-vision进行打标签
- 精美的图像数据
- @cloneofsimoLavenderflow 6.8B just reached Dalle-3 level on GenEval, but I suspect this was lucky run. Still, its going somewhere close to Dalle-3 (and SD3-8B) which makes me happy. Going to do Parti-prompts GPT-V eval soon!!! (+ GenEval is not a solid nor comprehensive benchmark so i dont want to overhype.)Task breakdown:
- single object
- colors
- color attr
- counting
- position
- two object
从目前的diffusion技术发展来看,评估模型性能的方法还在不断探索中,此时较为真实客观的评估微调模型的性能的方法还是人工判断,通过人的观察来直接感知模型的微调效果。
4、经验教训和一些不足之处
经验教训
在推进 diffusion模型微调的工作时,首先我想到 HuggingFace Datasets 上寻找一些可供微调参考的数据集,但随后发现这方面的数据寥寥,尽管CivitAI 上有大量的微调模型,但是针对数据集的分享也同样很少,这其实已经从侧面说明了 数据本身的重要价值,因此收集高质量、多样性的图像数据是进行扩散模型微调的最重要的事情。永远不要忽视数据,Look at your dataset 不仅仅是一个笑话。
随着时间的推进,进入五月之后,渐渐有些微调经验和开源数据出现在Twitter上,这给我们带来了很多有价值的信息,也再次确认了对基础进行全量微调的有效性。但是,针对本地的需求:微调一个怪物猎人风格的diffusion模型,我们尽管已经收集了很多图像数据(2k+),但是这些数据本身的质量、重复性等问题也在随后的微调实验中深深拖累微调模型的性能提升。
在引入Midjourney模型对现有数据进行质量提升后,情况才有所好转,但是Midjourney合成的图像本身也受制约Niji-v6 模型自身训练数据集的约束,所以也难以持续的对怪物猎人数据进行提升,而这也将成为我们扩散模型微调性能的天花板。如果我们能够继续探索进一步提升本地怪物猎人数据集的方法,那么微调模型的性能依旧可以可续提升,这部分的功能可能需要留在未来进行探索了。
一些不足之处
本团队的扩散模型的微调实践存在非常大的局限性,具体表现在如下方面:
- 训练数据集的大小局限本团队最终制作的monster hunter-怪物猎人风格的数据集的大小为 1.8k 人物立绘图像,这远远未达到Twitter上其他博主做扩散模型微调的数据集量级;
- 训练图像的质量局限本团队的数据依托于Midjoueney Niki-v6的模型对本地数据集进行了 img2img 合成和质量提升,但受制于Niji-v6模型本身的能力,质量无法持续提升,且最终训练数据集的质量从客观评估来看,质量中等,不能算很高质量的图像数据集;
- Prompt质量的局限由于团队人员较少,且对 diffusion方向的技术积累不是很深,所以对Prompt工程和质量提升的实践能力一般,后期数据集打标签依托于 GPT4-V 模型的打标签功能,这样的Prompt质量很难评估,对比人工修改调整的Prompt相比,质量可以进一步提升;由于人力的局限,这部分并未继续推进。
本实验代码采用于 HuggingFace 的 diffusers库,由于本实验主要聚焦于diffusion模型中UNet网络模型的参数优化,所以未对代码进行较大的修改,但这部分应该不是实践的bottleneck。
本实践的大部分时间,都是使用 768 x 768尺寸的图像进行微调,这主要受制于硬件方面的约束。
5、参考资料-Reference
高质量开源数据集
Hugging Face -Datasets
- pxovela/MJ_Discord_Datasets (已下载✅)
- pxovela/cosmopolitan (已下载✅)
- 参考链接源:
- 数据集简介:11,475 个图像-文本对,将该数据集拆分为训练集和验证集,从而留出 1,722 张图像作为验证数据(占全部图像的 15%),压缩数据集文件为:16GB。
- 微调模型地址:
Diffusion 模型微调经验参考
- Medium: Fine-Tuning Satble Diffusion With Validation
- Medium: The LR Finder Method for Stable Diffusion
- Blog: Find Optimal Learning Rates for Stable Diffusion Fine-tunes
开源微调框架参考
- Hugging Face Diffusers 微调库文档,GitHub 代码仓库;
- Hugging Face Blogs – Diffusion models fine-tune:
- Hugging Face Stable diffusion : Dataset create;
- GitHub :
- Colab:
Image-to-labels 功能实践
- WD-tagger-v1.4
- Github:
- Blip / blip2
- GitHub: salesforce / LAVIS / projects / blip2
- Hugging Face Space: tonyassi/blip-image-captioning-large
- Hugging Face Models: Salesforce/blip-image-captioning-large
- LLaVA
- GitHub: camenduru / LLaVA-colab
- Colab