Juno for flux (by caith) - Overwatch 2

详情

模型描述

触发词:juno

可选触发词:太空头盔加厚靴子爆能枪

可选触发词仅在被明确提示时才会生效。

当前不支持站点生成器

(Civitai 尚不支持 LoKr)
----------

这是如何制作的?
----------

这是一个基于 115 张 jun o 图像训练的 LoKr。(约 40% 为游戏内截图,40% 为我自己用 T 姿势的 juno 模型渲染的图像,20% 为官方概念图)

该模型使用 SimpleTuner 在 A6000 显卡上训练了 5400 步,批量大小为 6。

训练策略:

我的目标是仅使用重复、质量平平的“凑合”数据,训练出一个真正灵活的 LoRa(LoKr)。

我将数据集严格限制在游戏截图、我自己制作的 Blender 渲染图和官方概念图范围内。

数据集示例:

此外,我发现虽然多分辨率训练很重要且必要,但并不需要在整个训练过程中都使用

因此,我的策略是:前 50% 的训练步数(即 2700 步)仅使用 512px 分辨率进行训练。待模型适应良好后,暂停训练,加入 768px 和 1024px 的数据集,再继续训练最后 3000 步。(虽然图像尺寸增大导致训练速度变慢,但总体效率仍提升)

结果如何?
巨大成功!

与我之前的其他 LoKr 测试相比,质量与灵活性丝毫未降,甚至训练速度显著加快!

标注策略:

  1. 概念图,juno

  2. 3D 渲染,太空头盔,juno,T 姿势,加厚靴子

  3. 3D 渲染,juno,加厚靴子

  4. 游戏内截图,爆能枪

  5. juno 的游戏内截图,爆能枪,太空头盔,加厚靴子

基本规则:仅说明风格和可见元素,无需过度详细。Flux 能推断大量信息,因此只需标注那些容易被误解的、或你希望明确触发的特定元素。

LyCORIS 设置:

{
    "algo": "lokr",
    "multiplier": 1.0,
    "linear_dim": 10000,
    "linear_alpha": 1,
    "factor": 12,
    "apply_preset": {
        "target_module": [
            "Attention",
            "FeedForward"
        ],
        "module_algo_map": {
            "Attention": {
                "factor": 12
            },
            "FeedForward": {
                "factor": 6
            }
        }
    }
}

config.env:

RESUME_CHECKPOINT='latest'
DATALOADER_CONFIG='config/juno.json'
ASPECT_BUCKET_ROUNDING='2'
TRAINING_SEED='42'
USE_EMA='false'
USE_XFORMERS='false'
MINIMUM_RESOLUTION='0'
OUTPUT_DIR='output/juno'
USE_DORA='false'
USE_BITFIT='false'
LORA_TYPE='lycoris'
LYCORIS_CONFIG='config/lycoris_config.json'
PUSH_TO_HUB='false'
PUSH_CHECKPOINTS='false'
MAX_NUM_STEPS='10000'
NUM_EPOCHS='0'
CHECKPOINTING_STEPS='100'
CHECKPOINTING_LIMIT='40'
HUB_MODEL_NAME='simpletuner-lora'
DEBUG_EXTRA_ARGS=''
MODEL_TYPE='lora'
MODEL_NAME='black-forest-labs/FLUX.1-dev'
FLUX='true'
KOLORS='false'
STABLE_DIFFUSION_3='false'
STABLE_DIFFUSION_LEGACY='false'
TRAIN_BATCH_SIZE='4'
USE_GRADIENT_CHECKPOINTING='true'
GRADIENT_ACCUMULATION_STEPS='1'
CAPTION_DROPOUT_PROBABILITY='0'
RESOLUTION_TYPE='pixel_area'
RESOLUTION='1024'
VALIDATION_SEED='42'
VALIDATION_STEPS='100'
VALIDATION_RESOLUTION='1024x1024'
VALIDATION_GUIDANCE='3.5'
VALIDATION_GUIDANCE_RESCALE='0.0'
VALIDATION_NUM_INFERENCE_STEPS='20'
VALIDATION_PROMPT='concept art of juno, space helmet, white background'
ALLOW_TF32='true'
MIXED_PRECISION='bf16'
OPTIMIZER=optimi-lion
LEARNING_RATE='5e-5'
LR_SCHEDULE='polynomial'
LR_WARMUP_STEPS='100'
BASE_MODEL_PRECISION='int8-quanto'
ACCELERATE_EXTRA_ARGS=''
TRAINING_NUM_PROCESSES='1'
TRAINING_NUM_MACHINES='1'
VALIDATION_TORCH_COMPILE='false'
TRAINER_DYNAMO_BACKEND='no'
TRAINER_EXTRA_ARGS='--lr_end=1e-8 --compress_disk_cache --optimizer_config=weight_decay=1e-3'

前 3000 步数据集配置:

[
    {
        "id": "juno-512",
        "type": "local",
        "instance_data_dir": "/mnt/md/0/DATASET/juno",
        "crop": false,
        "resolution": 512,
        "resolution_type": "pixel_area",
        "minimum_image_size": 512,
        "prepend_instance_prompt": false,
        "instance_prompt": "",
        "only_instance_prompt": false,
        "caption_strategy": "textfile",
        "cache_dir_vae": "/mnt/md/0/AI/SimpleTuner/SimpleTuner-Cache/vae-cache/juno-512",
        "probability": 1.0,
        "repeats": 2,
        "preserve_data_backend_cache": true,
        "cache_file_suffix": "-juno-512"
    },
    {
        "id": "juno-text-embeds",
        "type": "local",
        "dataset_type": "text_embeds",
        "default": true,
        "cache_dir": "/mnt/md/0/AI/SimpleTuner/SimpleTuner-Cache/embed-cache/juno",
        "disabled": false,
        "write_batch_size": 128
  }
]

第 3000 至 5400 步数据集配置:

[
        {
        "id": "juno-1024",
        "type": "local",
        "instance_data_dir": "/mnt/md/0/DATASET/juno",
        "crop": false,
        "resolution": 1024,
        "resolution_type": "pixel_area",
        "minimum_image_size": 1024,
        "prepend_instance_prompt": false,
        "instance_prompt": "",
        "only_instance_prompt": false,
        "caption_strategy": "textfile",
        "cache_dir_vae": "/mnt/md/0/AI/vae-cache/juno-1024",
        "probability": 1.0,
        "repeats": 1,
        "preserve_data_backend_cache": true,
        "cache_file_suffix": "-juno-1024"
    },{
        "id": "juno-768",
        "type": "local",
        "instance_data_dir": "/mnt/md/0/DATASET/juno",
        "crop": false,
        "resolution": 768,
        "resolution_type": "pixel_area",
        "minimum_image_size": 768,
        "prepend_instance_prompt": false,
        "instance_prompt": "",
        "only_instance_prompt": false,
        "caption_strategy": "textfile",
        "cache_dir_vae": "/mnt/md/0/AI/vae-cache/juno-768",
        "probability": 1.0,
        "repeats": 2,
        "preserve_data_backend_cache": true,
        "cache_file_suffix": "-juno-768"
    },{
        "id": "juno-512",
        "type": "local",
        "instance_data_dir": "/mnt/md/0/DATASET/juno",
        "crop": false,
        "resolution": 512,
        "resolution_type": "pixel_area",
        "minimum_image_size": 512,
        "prepend_instance_prompt": false,
        "instance_prompt": "",
        "only_instance_prompt": false,
        "caption_strategy": "textfile",
        "cache_dir_vae": "/mnt/md/0/AI/vae-cache/juno-512",
        "probability": 1.0,
        "repeats": 2,
        "preserve_data_backend_cache": true,
        "cache_file_suffix": "-juno-512"
    },
    {
        "id": "juno-text-embeds",
        "type": "local",
        "dataset_type": "text_embeds",
        "default": true,
        "cache_dir": "/mnt/md/0/AI/embed-cache/juno",
        "disabled": false,
        "write_batch_size": 128
  }
]

此模型生成的图像

未找到图像。