尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
kohya_ss Textual Inversion 训练完全指南:token 嵌入学习、参数详解与推理调用
kohya_ss Textual Inversion 训练完全指南token 嵌入学习、参数详解与推理调用【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss本篇指南基于 kohya_ss 仓库的官方文档 docs/train_ti_README-ja.md 编写系统讲解 Textual Inversion文本反转这一轻量级概念学习技术的完整训练流程从数据准备、train_textual_inversion.py命令行训练、核心参数token_string、init_word、num_vectors_per_token的语义与调试方法到训练完成后如何通过gen_img_diffusers.py在推理阶段使用 embeddings。读完本文你将能够独立完成一次 TI 训练并理解其底层 token 替换机制在 kohya_ss 仓库中的完整实现链路。Textual Inversion 简介与适用场景Textual Inversion 是一种不修改扩散模型任何权重的概念学习技术它只学习一个或一组新的文本 token 对应的 embeddings 向量让模型在推理时能理解训练数据中反复出现的特定概念如某个角色、某种画风、某个物体。本仓库对 Textual Inversion 的支持体现在训练脚本train_textual_inversion.py中实现上参考了 HuggingFace diffusers 官方示例见 docs/train_ti_README-ja.md 开头说明。与 DreamBooth微调整个 U-Net或 LoRA微调低秩适配器不同TI 只训练新增 token 的 embedding因此显存占用小、训练速度快、产出文件极小通常只有几百 KB 到数 MB。学习产物是 embeddings 文件可被 Web UI 等外部工具直接加载使用原文档明确说明学習したモデルはWeb UIでもそのまま使えます。此外从 docs/train_README-ja.md 可见本仓库还支持进阶的 XTI:P 变体它同样基于 Textual Inversion 的 token 学习机制。训练前的准备环境搭建先按照仓库根目录 README.md 完成环境整备Python、PyTorch、CUDA/ROCm 对应版本、accelerate 配置等。TI 训练脚本与其他训练脚本共享同一套依赖与加速环境若已在仓库中跑通过 DreamBooth 或 LoRA 训练即可直接复用。数据准备训练数据准备方式与仓库内其他训练方法通用详见公共文档 docs/train_README-ja.md将学习数据图片放入任意文件夹支持.png、.jpg、.jpeg、.webp、.bmp基本无需预处理但建议避免极端小图或超大图通过.toml配置文件描述数据集批次大小、分辨率、bucketing、caption 等这是当前推荐的新格式对于 TI最简单稳妥的数据集形式是DreamBooth classidentifier 方式把token_string作为 identifier 放入 caption无需为每张图准备详细描述。原文档特别强调训练时的 prompt 必须包含token_string例如 token_string 为mychar4时caption 写mychar4 1girl否则该 token 在训练中不会被替换成新学习的 embedding等于什么都没学到。这一约束也在 docs/train_README-ja.md 的公共选项部分再次被提及Textual Inversion 不使用 caption shuffle因为 token string 必须保留在 caption 中。训练执行命令行完整示例训练使用train_textual_inversion.py通过accelerate launch启动。以下是原文档给出的 DreamBooth 方式命令行示例accelerate launch --num_cpu_threads_per_process 1 train_textual_inversion.py --dataset_configデータ準備で作成した.tomlファイル --output_dir学習したモデルの出力先フォルダ --output_name学習したモデル出力時のファイル名 --save_model_assafetensors --prior_loss_weight1.0 --max_train_steps1600 --learning_rate1e-6 --optimizer_typeAdamW8bit --xformers --mixed_precisionfp16 --cache_latents --gradient_checkpointing --token_stringmychar4 --init_wordcute --num_vectors_per_token4其中--token_string、--init_word、--num_vectors_per_token是 Textual Inversion 特有的三个核心参数下节详解其余参数与其他训练脚本DreamBooth、LoRA通用。Textual Inversion 核心参数与调试方法token_string新 token 的文本载体--token_string指定训练时使用的 token 字符串。训练时 prompt 中这一字符串位置会被替换为 Textual Inversion 的新 token 并参与学习。它要求不能使用 tokenizer 已存在的普通单词如常用英文词否则无法作为新 token插入推荐使用无实际含义的组合词如mychar4。用 --debug_dataset 验证 token 替换是否生效如何确认 prompt 中确实包含 token_string使用--debug_dataset参数训练脚本会打印出替换后的 token id 序列。原文档给出了一个典型输出input ids: tensor([[49406, 49408, 49409, 49410, 49411, 49412, 49413, 49414, 49415, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407, 49407]])解读这个输出49406是 CLIP 的起始 tokenBOS49407是填充 tokenpadding中间的49408至49415共 8 个 token id即新插入的 token 序列。判断标准只要看到49408及以上的 token id 存在而不是只有 49406/49407就说明 token_string 已被正确替换为新的学习 token。init_wordembedding 的初始化来源--init_word指定初始化 embeddings 时复制来源的 token 字符串。新 token 的 embedding 并非从零开始而是从init_word对应 token 的 embedding 复制后继续训练应选择与想学概念相近的单词如学猫选cat学可爱风格选cute只能指定一个 token两个及以上 token 组成的字符串不可用。num_vectors_per_tokentoken 数量与表现力的权衡--num_vectors_per_token决定为该 token 字符串分配多少个 token 向量数量越多表达力越强但会消耗更多 prompt token 配额例如设为 8 时prompt 的 77 token 上限中该字符串独占 8 个 token常规取 48 之间需在表现力与 token 配额之间取舍。参数默认值与行为提示原文档还给出几点通用建议--num_cpu_threads_per_process通常建议设为 1--max_train_steps示例中为 1600文档另一处提到可设 10000从 GUI 测试配置 test/config/TI-AdamW8bit-toml.json 看也支持通过 epoch、数据集规模自动推算步数--learning_rate示例为 1e-6另一处示例为 5e-6TI 只训练 embedding学习率通常比 LoRA 更低具体取值建议结合数据集规模实验。其他常用训练选项详解模型来源pretrained_model_name_or_pathpretrained_model_name_or_path指定追加学习的基础模型支持三种形式Stable Diffusion checkpoint 文件.ckpt或.safetensorsDiffusers 格式的本地模型目录Diffusers 模型 ID如stabilityai/stable-diffusion-2。输出控制output_dir / output_name / save_model_asoutput_dir训练后模型保存目录output_name输出文件名不含扩展名save_model_as保存格式示例中为safetensors。数据集dataset_configdataset_config指向.toml数据集配置文件详见 docs/train_README-ja.md 的数据准备章节。原文档提示初始阶段建议把配置文件中的 batch size 设为 1以控制显存占用显存充足后再增大。训练步数与学习率max_train_steps总训练步数示例 1600原文档另一处建议 10000需根据数据量、epoch、batch size 综合设定learning_rate学习率示例 1e-6另一处示例 5e-6。省显存与加速选项mixed_precisionfp16半精度训练。RTX 30 系列及以上显卡也可用bf16但需与 accelerate 环境配置保持一致gradient_checkpointing梯度检查点牺牲少量速度换取显存optimizer_typeAdamW8bit使用 8bit AdamW 优化器显著降低优化器显存占用这是优化器即训练时把模型向训练数据拟合的类8bit 版本内存占用更小xformers启用 xformers CrossAttention 加速省显存。若未安装 xformers 或报错某些环境如mixed_precisionno时可能出现可用mem_eff_attn替代省显存版 CrossAttention速度较慢cache_latents预缓存 VAE latent减少训练中重复编码开销。批次大小建议Textual Inversion 只训练 embedding显存占用远小于训练整个模型的 DreamBooth 或 fine tuning因此batch size 可以设得更大原文档专门以小节强调。显存允许时将.toml中的 batch size 从 1 提升到 8 左右可能带来提速与精度提升。按模型特性查阅对应选项以下场景需要查阅选项文档 docs/train_README-ja.md训练 Stable Diffusion 2.x 或其衍生模型训练以 clip skip 2 及以上为前提的模型使用超过 75 token 的 caption 训练。Textual Inversion 的其他主要选项除上述参数外原文档列出三个 TI 专属补充选项完整选项清单见公共文档选项说明--weights训练前加载已有的训练好 embeddings在此基础上追加训练即从既有 embedding 继续学习--use_object_template忽略 caption改用内置物体模板字符串如a photo of a {}训练与官方实现一致--use_style_template忽略 caption改用内置风格模板字符串如a painting in the style of {}训练与官方实现一致注意--use_object_template与--use_style_template会完全忽略 caption适用于不想写 caption、只想让模型记住这个 token 代表某物体/某风格的场景而--weights适合在已有概念上做增量训练。使用 GUI 进行 Textual Inversion 训练仓库提供了图形化训练界面。从源码 kohya_gui.py 可见主界面注册了Textual Inversion标签页具体实现位于 kohya_gui/textual_inversion_gui.py约 1400 行。从该 GUI 源码可以看到训练命令的完整生成逻辑训练脚本选择GUI 在sdxl开关开启时调用sd-scripts/sdxl_train_textual_inversion.py否则调用sd-scripts/train_textual_inversion.py见 kohya_gui/textual_inversion_gui.py 的train_model函数token_string、init_word、num_vectors_per_token均为必填校验项缺失时 GUI 会报错拒绝启动源码中if token_string /if init_word 分支template下拉框的object template/style template选项会被映射为use_object_template/use_style_template参数写入配置GUI 会将全部训练参数写入一个config_textual_inversion-时间戳.toml临时配置文件再以--config_file方式传给训练脚本输出目录默认落在仓库根目录的outputs文件夹。仓库测试 tests/test_textual_inversion_gui.py 还验证了一个实现细节TI 训练脚本不接受 DreamBooth 脚本才有的stop_text_encoder_training参数GUI 不会把它写入 TI 配置。测试配置 test/config/TI-AdamW8bit-toml.json 给出了一个可参考的完整 TI 配置token_stringzxc、init_word*、num_vectors_per_token8、templatestyle template、optimizerAdamW8bit等。训练后用 embeddings 进行图像生成训练完成后得到的 embeddings 文件如mychar4.safetensors可用于仓库内的图像生成脚本gen_img_diffusers.py通过--textual_inversion_embeddings选项指定 embeddings 文件可多次指定多个见 docs/gen_img_README-ja.md生成时在 prompt 中使用embeddings 文件名不含扩展名即可触发该概念用法与 Web UI 一致也可以在负面 prompt 中使用若训练的是 XTI:P 格式则改用--XTI_embeddings选项用法相同。参考命令来自 docs/gen_img_README-ja.md 的 TI/LoRA 组合示例python gen_img_diffusers.py --ckpt model.safetensors --scale 8 --steps 48 --outdir txt2img --xformers --W 512 --H 768 --fp16 --sampler k_euler_a --textual_inversion_embeddings goodembed.safetensors negprompt.pt --network_module networks.lora networks.lora --network_weights model1.safetensors model2.safetensors --network_mul 0.4 0.8 --clip_skip 2 --max_embeddings_multiples 1 --batch_size 8 --images_per_prompt 1 --interactive该命令同时展示了 TI embeddings 与 LoRA 叠加使用的方式且可通过--interactive进入交互模式、用--max_embeddings_multiples 1扩展 token 上限。总结TI 训练的核心链路一次完整的 Textual Inversion 训练闭环如下准备含token_string的 caption 数据集推荐 DreamBooth classidentifier 形式用--debug_dataset验证 token 替换正确看到49408及以上 token id配置init_word与num_vectors_per_token用train_textual_inversion.py训练通过--weights支持从既有 embedding 增量学习或通过模板选项跳过 caption训练产出 embeddings 文件用gen_img_diffusers.py --textual_inversion_embeddings在 prompt 中按文件名调用或直接导入 Web UI 使用。由于 TI 只学习 token embedding它对显存友好、训练快速、产物轻量适合快速固化单一概念也是理解 Stable Diffusion 文本编码器工作机制的绝佳入门实验。相关公共选项、数据集格式与生成脚本的完整细节可继续查阅 docs/train_README-ja.md 与 docs/gen_img_README-ja.md。【免费下载链接】kohya_ss项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

deck.gl 3D Tiles 可视化实战:Tile3DLayer 加载、TerrainController 地形导航与 TerrainExtension 图层贴合

deck.gl 3D Tiles 可视化实战:Tile3DLayer 加载、TerrainController 地形导航与 TerrainExtension 图层贴合

deck.gl 3D Tiles 可视化实战:Tile3DLayer 加载、TerrainController 地形导航与 TerrainExtension 图层贴合 【免费下载链接】deck.gl WebGL2 powered visualization framework 项目地址: https://gitcode.com/GitHub_Trending/de/deck.gl deck.gl 对 OGC 3D…

📅 2026/9/15 9:49:37
InsForge 确定性跨仓库 E2E 发布门禁:`e2e-testing` 技能的实现与使用全指南

InsForge 确定性跨仓库 E2E 发布门禁:`e2e-testing` 技能的实现与使用全指南

InsForge 确定性跨仓库 E2E 发布门禁:e2e-testing 技能的实现与使用全指南 【免费下载链接】InsForge The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI ga…

📅 2026/9/15 9:49:37
dsh-web:从聊天界面到插件化开发工作台的架构实践

dsh-web:从聊天界面到插件化开发工作台的架构实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/15 9:49:37
MORE NEWS

更多资讯

📰

SpeechBrain 文档系统构建指南:Sphinx 文档、API 自动生成与 Jupyter 教程集成

SpeechBrain 文档系统构建指南:Sphinx 文档、API 自动生成与 Jupyter 教程集成 【免费下载链接】speechbrain A PyTorch-based Speech Toolkit 项目地址: https://gitcode.com/GitHub_Trending/sp/speechbrain SpeechBrain 是建立在 PyTorch 之上的开源全栈语…

📰

C# WPF半导体设备晶圆与石墨岛搬移上位机系统实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

认知协同技术如何提升文献综述效率与质量

1. 项目概述:当文献综述遇上认知协同革命本科阶段的学术写作往往陷入"资料堆砌观点拼凑"的困境。去年指导毕业论文时,我发现一个有趣现象:学生A用传统方式完成的文献综述耗时86小时却只获得B-评价,而学生B采用认知协同方…

📰

Java面试八股文核心考点全解析:从HashMap到JVM的追问链与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Django智慧社区平台开发实战:从需求到部署

1. 项目概述:Django智慧社区管理平台全栈开发实录这个基于Django框架的智慧社区管理平台项目,是我去年为本地某大型社区交付的数字化解决方案。整套系统从需求分析到上线部署历时6个月,最终实现了物业工单处理效率提升300%、业主投诉率下降65…

📰

ajs17网站建设:保姆级建站教程教你解决没人访问难题

ajs17网站建设:保姆级建站教程教你解决没人访问难题 网站上线三个月,后台每天只有三个访问,全是机器人。这种“死寂”是绝大多数中小企业老板最头疼的事。你花了大几万做站点,结果成了摆设,这就是典型的 网站做好了没人访问…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬