agentleFS
DaNiuNaiDaNiuNai/skills/sdxl-lora-tag-edit/SKILL.md

sdxl-lora-tag-edit

Skill14 starsChanged 24 days agoMITView on GitHub

辅助为 Stable Diffusion SDXL 的 LoRA 训练准备/编辑图像数据集的标签(caption / tag)。当用户提到 「LoRA 训练」「打标」「打标签」「tag 数据集」「wd14 标签」「触发词 / trigger word」「炼丹的标」 「角色 / 画风 / 概念 / 功能性 LoRA」「数据集 txt」或要整理一个「一图一 txt」的图片目录用于训练时, 务必使用本 skill。它会先确认 LoRA 类型,再按「打少标 / 只打触发词、绝不打全标」的核心哲学, 去除目标特征的锚点标签、保留环境/动作/水印等标签,把特征绑定到触发词上。即使用户没有明确说「用 skill」, 只要任务是在为生图模型训练整理标签,就应触发。

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 1

    1. DaNiuNai/milk-skills★ 14100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository4 other files it gives its agents.

The file

Files
SKILL.md

LoRA 标签编辑(SDXL)

帮助用户为 SDXL LoRA 训练编辑图像数据集的标签。本 skill 只负责 caption / 标签 这一环,不涉及分辨率、分桶、训练参数等其他训练步骤。

核心原理(最重要,先读懂)

打标 = 给特征「分配名字」。给一个特征打上标签,模型就认为「这个特征已经有名字了」,会把它绑到那个标签词上;不给它打标签,模型找不到名字,就只能把它塞进触发词。

所以处理每一个特征时,只问一个问题:「我想不想让这个 LoRA / 触发词学会这个特征?」

  • 想让它学会(角色的脸/发/眼/体型等本体特征、要复刻的概念、要复刻的画风)→ 不要给它打标签(已有则删掉)。特征没有名字 → 被迫绑到触发词。
  • 不想让它学进去(任何动作姿势、任何镜头视角、背景环境、想换的服装、水印 logo)→ 一定要给它打标签。让它绑到自己的词上,从而可被分离、可控制、生成时不写这个词就不出现。

⚠ 术语提醒(极易搞反,务必看清):本文档里的「保留」「删除」永远指的是「标签」,不是「特征」。

  • 「保留某标签」= 把这个词留在 txt 里。
  • 「删除某标签」= 把这个词从 txt 里去掉。

注意方向是相反的:你想让 AI 学会的特征 → 要「删掉」它的标签;你不想学进去的东西 → 要「保留」它的标签。 用户口中的「保留这个特征(让它进 LoRA)」对应的操作是「删掉这个标签」。

绝对不要打全标(wd14 原样不动)。 全标会让每个特征都绑到大模型已有的词上,触发词学不到东西,练出来「不像」。这是最常见也最严重的错误。

两种推荐做法(效果都远好于全标,二者效果接近)

  1. 只打触发词:caption 里只放一个触发词,其余什么都不打。完全依赖大模型的图像理解,让它自动把图里的特征关联到触发词。对角色 / 概念 LoRA 意外地好用,最省事。
  2. 少标(wd14 减法):先有 wd14 全标,再删掉目标特征的锚点标签,保留其余(基础词、环境、动作、水印等)。可控性更强,是大多数情况下的推荐甜点区。

不确定时,对角色/概念默认走「少标」,并可建议用户也试一版「只打触发词」对比。

逐标签处理速查表(按此机械执行即可)

下表是角色 LoRA的默认处理(其他类型按后文「按类型的删/留策略」调整)。对 txt 里的每一个标签对号入座:

标签属于…怎么处理标签
触发词放最前,保留
数量/基础词:1girl, 1boy, solo, 2girls…保留
任何动作 / 姿势:standing, sitting, lying, walking, looking at viewer, arms up, holding…(哪怕只是「站着、坐着」这种最普通的动作,也一定要打)保留
任何镜头 / 视角 / 构图 / 特殊镜头:from side, from above, from below, upper body, full body, cowboy shot, close-up, dutch angle, wide shot…保留
背景 / 环境:outdoors, indoors, sky, night, grass…保留
水印 / logo / 文字 / 签名保留 / 补打(务必)
想换的、非日常的服装保留
角色本体锚点特征:发色发型、瞳色、体型肌肉、耳/角/尾、肤色…(= 你想让 AI 学会的)删除
角色的招牌固定服装(想让角色总穿它出现)删除
质量元词:masterpiece, best quality…删除

特别强调(最常被漏):任何动作(哪怕只是站着、坐着)和任何镜头/视角/特殊构图,都一定要打标。 漏打动作或镜头,这些信息会被错误地学进触发词,导致出来的图姿势僵化、构图固定。

标签格式规则

  • 分隔符:标签之间用英文逗号 , 分隔(建议逗号后加一个空格,如 1girl, solo, outdoors)。不要用中文逗号「,」。
  • 优先用 Danbooru / e621 的真实标签:直接来自 Danbooru、e621 的标签,表现效果比自创词更强。需要补打特定概念/角色/服装/物体的标签时,推荐去这两个网站搜索确认标准写法,而不是凭空造词(触发词例外,触发词就是要自造)。
  • 从这两个网站抄来的标签必须先处理再用(它们原始是「下划线分词、括号未转义」):
    1. 下划线 _ → 空格:oil_painting → oil painting。
    2. 括号转义:( → \(,) → \)。
    • 例:Danbooru 的 tashkent_(azur_lane) → 用作 tashkent \(azur lane\)。
    • 脚本的 normalize 会一次性做完这两步。
  • 普通标签不应带括号:绝大多数标签没有括号。除非用户明确要求,不要让标签里出现括号。如果确实必须出现(如带消歧后缀的角色名/系列名),则只能用转义括号 \( \),绝不能出现裸括号 ( )——裸括号在提示词里会被当成强调权重,污染训练。
  • 不加其它特殊字符:除非用户特意要求,不要给标签加下划线、引号等。

删掉无效元标签(meta tag)

Danbooru 的元标签(meta tag)描述的是「帖子/文件」而非画面内容,很多对训练毫无作用,应删掉。判断标准:这个标签描述的是「画面里有什么 / 画面长什么样」,还是「这个帖子的元信息」——后者一律删。

  • 与画面无关、必删:commentary, commentary_request, translation_request, translated, check_translation, bad_id, bad_pixiv_id, md5_mismatch, artist_request, tagme, dated 等。
  • 描述画面形式的(如 oil painting \(medium\), monochrome, greyscale, sketch):若正是你要复刻的特征,按对应类型处理(保留或删除以绑到触发词);否则也删。
  • 纯质量/分辨率词(highres, absurdres, lowres, masterpiece, best quality):训练 caption 里一般无意义,删。

工作流程

第 1 步:确认 LoRA 类型(必须先问)

问用户要训练哪一类,不同类型的「想学的东西」不同,删/留策略完全不同:

  • 角色(character):复刻一个特定角色/人物/生物的外观。
  • 画风(style):复刻一种作画风格(线条、上色、笔触、整体观感)。
  • 概念(concept):复刻一个姿势、动作、特定物体、构图、特效等。
  • 功能性(functional):控制某个维度,如细节增强、光照控制、景深等。

各类型的具体策略见下方「按类型的删/留策略」。

第 2 步:定位并扫描数据集

请用户给出数据集目录路径,然后用脚本扫描,了解现状(图片数、一图一 txt 的配对情况、缺失项,以及标签词频)。

scripts/tag_tools.js 是配套工具,需要本机装有 Node.js(node 命令)。先确认是否可用:若 node --version 跑不起来,直接告诉用户「需要安装 Node.js 才能用这个批量脚本」,然后改为手工编辑少量文件,或等用户装好再继续——不要在这上面卡住。

node "<skill目录>/scripts/tag_tools.js" scan "<数据集目录>"

标签词频是找锚点特征的利器:在一个角色数据集里,出现在大多数图片里的高频标签,往往就是该角色的固有特征(发色、瞳色、体型、耳朵尾巴等)= 应该删掉的锚点。把词频报告读给用户看,一起圈定要删的词。

第 3 步:判断是否需要先生成初始全标

本 skill 默认只做纯文本读写(读写 txt),不主动读取图片。 原因:① 不是所有模型都支持多模态;② 数据集动辄成百上千张图,逐张看图既慢又贵、根本不现实。所以默认让 wd14 产生标签,模型只负责编辑文本。

  • 已是「一图一 txt」(wd14 已打全标):直接进入第 4 步编辑。这是最常见、也是推荐的情况。
  • 只有图片、没有 txt:默认请用户先用 wd14 / WD Tagger 打一遍全标(stable-diffusion-webui、kohya_ss、ComfyUI 的 WD14 Tagger 节点等都行),得到「一图一 txt」后再回来编辑。
    • 只有当用户明确要求「让你看图打标」时,才用 Read 逐张看图生成 danbooru 风格、逗号分隔的标签写入同名 .txt。即便如此也要先提醒:图多时这样做很慢、且需要多模态模型;看图时务必留意水印 / logo / 签名 / 文字 / artist name 并打上对应标签(见下)。

第 4 步:确认触发词

  • 触发词放在 caption 最前面。
  • 尽量避开常用词(不要用 girl、cat、style 这类已被大模型占用的词),否则会污染已有概念。
  • 推荐自造一个几乎不存在的 token,例如 1s5x6g8a、xkz9q、ohwx<名字> 之类。
  • 一个 LoRA 通常用一个触发词(角色/概念/风格各一个)。

第 5 步:先确认口径,再批量执行(重要)

不要一上来就批量改全部文件。先挑 1–2 张代表性图片,把它的标签按「保留 / 删除」分类列给用户看(像下面示例那样分组),让用户确认删留口径对不对,再批量套用到整个数据集。这样能避免成百上千张文件一次性改错。

批量操作用脚本(原地修改):

# 规整为提示词格式:下划线转空格 + 括号转义(wd14 若是下划线/裸括号格式先做这一步;已是空格+转义括号则无变化)
node "<skill目录>/scripts/tag_tools.js" normalize "<目录>"

# 给所有 txt 最前面加触发词(已存在则跳过,幂等)
node "<skill目录>/scripts/tag_tools.js" add-trigger "<目录>" --trigger "1s5x6g8a"

# 从所有 txt 中删除一批锚点标签(逗号分隔;括号/下划线/大小写均不敏感,所以传 "mountain (arknights)" 也能匹配到 "mountain \(arknights\)")
node "<skill目录>/scripts/tag_tools.js" remove "<目录>" --tags "muscular,bara,tiger ears,white fur,mountain (arknights)"

第 6 步:原地写回并汇总

按用户选择原地修改原 txt。动手前提醒用户:建议先备份目录或用 git,删改不可逆。完成后给一份简短汇总:触发词是什么、各类标签分别怎么处理的、提醒抽查几张确认。

按类型的删/留策略

详细的 danbooru 标签分类与大量示例见 references/tag-categories.md,下面是各类型的纲领。

角色 character

  • 目标 = 角色本体(脸、发、眼、肤、体型、耳/角/尾/翼等固有特征、招牌固定服装)。
  • 删除:本体锚点特征标签 + 角色的招牌/固定服装(想固定就删,想可换装就留)。
  • 保留:1girl/1boy/solo 等基础数量词、环境背景、动作/姿势/视角/构图、该图特有的非日常服装、水印 logo 文字。
  • 更激进可选:只打触发词。

画风 style

  • 目标 = 画风。画风几乎无法用离散标签描述,所以这里「删标」没意义,思路反过来:
  • 保留:wd14 的内容标签基本都留(主体、物体、构图、颜色等),好让内容各自归位,剩下无法被标签描述的「风格」自动绑到触发词。
  • 不要添加任何风格描述词或画师名。
  • 删除:质量元词(masterpiece、best quality 等)和明显错误的标签。
  • 数据集要内容多样,避免某类内容反复出现被误当成风格。

概念 concept(姿势/动作/物体/构图/特效…)

  • 目标 = 这个概念本身。
  • 删除:描述该概念的标签(如学某个特定姿势,就删掉 wd14 里描述该姿势的词)。
  • 保留:角色特征、服装、环境等所有会变化的东西(数据集这些维度要多样,否则会被一起学进触发词)。
  • 水印 logo 照打。

功能性 functional(细节/光照/景深控制等)

  • 思路同概念:删掉描述目标维度的标签让它绑到触发词,其余维度尽量保留且在数据集中保持多样。
  • 例:光照控制 → 删掉 wd14 里的光照相关词(dramatic lighting、rim light、backlighting…),保留内容/构图/角色,让光照效果绑到触发词。
  • 这类 LoRA 常配合对比 / 配对数据与正负向(滑块)训练方式,本 skill 只负责 caption;若涉及配对或滑块训练,提醒用户对应处理数据组织。

水印 / logo / 文字一定要打标

水印、logo、签名、artist name、网址、用户名、画框边框等——这些是你不想学进触发词的东西。按核心哲学,给它们打上标签才能让它们绑到自己的词上,从而在生成时(不写这些词)不会出现。常见标签:watermark, signature, logo, artist name, text, english text, web address, username, dated, border, letterboxed。编辑现有 txt 时确保这些标签在;自己看图打标时发现就加。

标准示例(角色,少标做法)

1s5x6g8a,                                    ← 触发词,放最前,自造避开常用词
1boy,solo,furry,                             ← 必要基础词:保留
starry sky,outdoors,sky,night,night sky,shooting star,star \(sky\),grass,   ← 环境描写:保留(注意括号转义)
looking up,upper body,from side,             ← 行为/动作/视角:保留
shirt,black shirt,                           ← 该图特有的非日常服装:保留
(以下为本体锚点特征,全部删除:)
muscular,bara,muscular male,furry male,male focus,tail,horns,purple eyes,long hair,braid,animal ears,white hair,pectorals,
  • 触发词、基础词、环境、动作、特殊服装 → 保留
  • 角色本体锚点特征(体型、肌肉、耳角尾、瞳色、发色发型等)→ 删除,让它们绑到触发词 1s5x6g8a

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.