Leather Dress Collection从零开始:LoRA微调入门——基于Leather Romper数据集

news2026/3/17 1:42:10
Leather Dress Collection从零开始LoRA微调入门——基于Leather Romper数据集1. 引言你有没有想过让AI帮你设计一套独一无二的皮革服装或者你是个服装设计师想快速生成不同款式的皮革服装概念图今天我要分享的就是一个能帮你实现这些想法的神奇工具——Leather Dress Collection。这是一个专门用来生成各种皮革服装风格的AI模型集合。简单来说你给它一些文字描述它就能画出对应的皮革服装设计图。无论是紧身连衣裙、工装裤还是旗袍只要是皮革材质的它都能生成。这个项目包含了12个不同的模型每个模型都擅长生成特定款式的皮革服装。今天我们要重点聊的是基于Leather Romper皮革连体裤数据集的LoRA微调入门教程。学完这篇教程你能掌握什么理解什么是LoRA微调为什么它这么受欢迎学会如何准备自己的服装数据集掌握LoRA模型训练的基本流程用训练好的模型生成专属的皮革服装设计解决训练过程中可能遇到的常见问题需要什么基础会用电脑知道怎么打开命令行对AI绘画有点兴趣不需要编程高手跟着步骤做就行2. LoRA微调到底是什么2.1 用大白话解释LoRA你可能听说过Stable Diffusion这是一个很厉害的AI绘画模型。但有时候你想让它专门画某种风格的东西比如皮革服装。这时候就有个问题从头训练一个模型太费时间、太费显卡了。LoRALow-Rank Adaptation就是为了解决这个问题而生的。你可以把它想象成给AI模型“打补丁”。打个比方原来的Stable Diffusion模型就像一个大厨什么菜都会做LoRA微调就是教这个大厨专门做一道新菜比如皮革服装你不需要重新培养一个大厨只需要教他一些新技巧这个“新技巧”文件很小只有几十MB加载起来特别快2.2 为什么LoRA这么受欢迎1. 文件小加载快一个完整的Stable Diffusion模型大概7GB而一个LoRA模型只有几十MB。这意味着下载快不占硬盘空间加载到内存里只要几秒钟可以同时加载很多个不同风格的LoRA2. 训练成本低不需要高端显卡普通游戏显卡就能训练训练时间短几小时就能出效果数据要求少几十张图片就能开始训练3. 效果好针对性强专门针对某个风格或主题优化生成质量比通用模型好很多可以精确控制生成内容2.3 Leather Dress Collection项目特点这个项目已经帮你做好了12个皮革服装的LoRA模型基础模型Stable Diffusion 1.5模型格式SafeTensors更安全加载更快覆盖款式从连衣裙到工装裤各种皮革服装都有总大小236MB平均每个不到20MB今天我们要做的就是学习如何基于其中的Leather Romper数据集训练自己的LoRA模型。3. 环境准备与快速部署3.1 硬件要求最低配置显卡NVIDIA GTX 1060 6GB或以上内存8GB RAM硬盘至少10GB可用空间推荐配置显卡NVIDIA RTX 3060 12GB或以上内存16GB RAM硬盘SSD硬盘至少20GB可用空间为什么需要这个配置训练LoRA需要显卡有足够显存来存储模型和计算内存不够的话训练过程可能会卡顿或崩溃SSD硬盘能加快模型加载和数据读取速度3.2 软件环境搭建步骤1安装Python和相关工具# 1. 安装Python 3.10推荐版本 # 可以从官网下载https://www.python.org/downloads/ # 2. 创建虚拟环境避免包冲突 python -m venv lora_env source lora_env/bin/activate # Linux/Mac # 或者 lora_env\Scripts\activate # Windows # 3. 安装PyTorch根据你的CUDA版本选择 # 如果你有NVIDIA显卡安装CUDA版本 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 如果没有显卡或使用AMD显卡安装CPU版本 pip install torch torchvision torchaudio步骤2安装训练所需的库# 安装基础的AI相关库 pip install diffusers transformers accelerate # 安装图像处理库 pip install pillow opencv-python # 安装训练相关工具 pip install xformers # 加速训练可选但推荐 pip install datasets # 用于数据处理步骤3下载项目代码# 克隆Leather Dress Collection项目 git clone https://github.com/stable-yogi/Leather-Dress-Collection.git cd Leather-Dress-Collection # 安装项目依赖 pip install -r requirements.txt3.3 快速测试环境安装完成后运行一个简单的测试脚本确保一切正常# test_environment.py import torch import diffusers import transformers print(fPyTorch版本: {torch.__version__}) print(fCUDA可用: {torch.cuda.is_available()}) if torch.cuda.is_available(): print(f显卡型号: {torch.cuda.get_device_name(0)}) print(f显存大小: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.2f} GB) print(fDiffusers版本: {diffusers.__version__}) print(fTransformers版本: {transformers.__version__}) # 测试Stable Diffusion基础模型加载 from diffusers import StableDiffusionPipeline print(环境测试通过可以开始LoRA训练了。)运行测试python test_environment.py如果看到类似下面的输出说明环境配置成功PyTorch版本: 2.1.0 CUDA可用: True 显卡型号: NVIDIA GeForce RTX 3060 显存大小: 12.00 GB Diffusers版本: 0.24.0 Transformers版本: 4.35.0 环境测试通过可以开始LoRA训练了。4. 数据准备构建Leather Romper数据集4.1 需要什么样的数据训练LoRA模型关键在于数据质量。对于Leather Romper皮革连体裤这个主题我们需要准备1. 图片数据数量20-50张高质量图片内容各种角度、各种款式的皮革连体裤质量清晰、光线均匀、背景简洁尺寸建议512x512或768x768像素2. 文本描述每张图片都需要对应的文字描述描述要详细但不过度复杂包含关键特征材质、款式、颜色、细节等4.2 数据收集与处理方法1自己拍摄或设计如果你有皮革连体裤的实物或设计图这是最好的数据源。方法2从网上收集可以从一些免费图库网站收集注意版权问题Unsplash、Pexels、Pixabay等搜索关键词leather romper, leather jumpsuit, leather overalls方法3使用AI生成先用基础的Stable Diffusion生成一些皮革连体裤图片然后用这些图片来训练更专业的模型。# generate_training_data.py # 用基础模型生成一些训练数据 from diffusers import StableDiffusionPipeline import torch from PIL import Image # 加载基础模型 pipe StableDiffusionPipeline.from_pretrained( runwayml/stable-diffusion-v1-5, torch_dtypetorch.float16 if torch.cuda.is_available() else torch.float32 ) if torch.cuda.is_available(): pipe pipe.to(cuda) # 定义一些皮革连体裤的提示词 prompts [ a leather romper, black color, fashion photography, studio lighting, brown leather jumpsuit, front view, clean background, red leather overalls, side view, professional photo, white leather romper, full body, simple background, design sketch of leather romper, technical drawing ] # 生成图片 for i, prompt in enumerate(prompts): print(f生成第{i1}张图片: {prompt}) # 生成图片 image pipe( prompt, num_inference_steps30, guidance_scale7.5, height512, width512 ).images[0] # 保存图片 image.save(ftraining_data/leather_romper_{i}.png) # 保存提示词到文本文件 with open(ftraining_data/leather_romper_{i}.txt, w) as f: f.write(prompt) print(数据生成完成)4.3 数据标注与整理步骤1图片预处理# preprocess_images.py import os from PIL import Image from pathlib import Path def preprocess_images(input_dir, output_dir, target_size512): 预处理图片调整大小、统一格式、增强质量 # 创建输出目录 Path(output_dir).mkdir(parentsTrue, exist_okTrue) # 支持的图片格式 image_extensions [.jpg, .jpeg, .png, .bmp, .webp] processed_count 0 for file in Path(input_dir).iterdir(): if file.suffix.lower() in image_extensions: try: # 打开图片 img Image.open(file) # 转换为RGB处理可能存在的透明度通道 if img.mode ! RGB: img img.convert(RGB) # 调整大小保持比例填充到正方形 width, height img.size if width ! height: # 创建正方形画布 size max(width, height) new_img Image.new(RGB, (size, size), (255, 255, 255)) # 计算粘贴位置居中 paste_x (size - width) // 2 paste_y (size - height) // 2 new_img.paste(img, (paste_x, paste_y)) img new_img # 调整到目标尺寸 img img.resize((target_size, target_size), Image.Resampling.LANCZOS) # 保存图片 output_path Path(output_dir) / fprocessed_{processed_count:03d}.jpg img.save(output_path, JPEG, quality95) print(f处理完成: {file.name} - {output_path.name}) processed_count 1 except Exception as e: print(f处理失败 {file.name}: {e}) print(f\n总共处理了 {processed_count} 张图片) # 使用示例 if __name__ __main__: preprocess_images(raw_images, processed_images)步骤2创建标注文件为每张图片创建对应的文本描述文件。文件名要对应比如processed_001.jpg对应processed_001.txtprocessed_002.jpg对应processed_002.txt文本文件内容示例a black leather romper, front view, studio lighting, fashion photography, high quality, detailed步骤3数据集结构整理最终的数据集文件夹应该这样组织leather_romper_dataset/ ├── images/ │ ├── processed_001.jpg │ ├── processed_002.jpg │ └── ... └── captions/ ├── processed_001.txt ├── processed_002.txt └── ...5. LoRA模型训练实战5.1 训练配置准备创建一个训练配置文件这样以后可以重复使用# train_config.py from dataclasses import dataclass dataclass class TrainingConfig: # 基础模型设置 pretrained_model_name_or_path: str runwayml/stable-diffusion-v1-5 # 数据集设置 train_data_dir: str ./leather_romper_dataset resolution: int 512 # 训练图片分辨率 # 输出设置 output_dir: str ./lora_output model_name: str leather_romper_lora # 训练参数 train_batch_size: int 4 # 根据显存调整 num_train_epochs: int 100 # 训练轮数 gradient_accumulation_steps: int 1 learning_rate: float 1e-4 lr_scheduler: str constant lr_warmup_steps: int 100 # LoRA特定参数 rank: int 4 # LoRA秩控制模型复杂度 alpha: int 32 # 缩放参数 # 保存设置 save_steps: int 500 # 每多少步保存一次 save_total_limit: int 5 # 最多保存几个检查点 # 日志设置 logging_dir: str ./logs logging_steps: int 10 # 其他设置 seed: int 42 mixed_precision: str fp16 # 如果显卡支持的话 gradient_checkpointing: bool True # 节省显存 config TrainingConfig()5.2 开始训练使用Diffusers库的Trainer进行训练# train_lora.py import os import torch from torch.utils.data import Dataset from PIL import Image from pathlib import Path from train_config import config class LeatherRomperDataset(Dataset): 自定义皮革连体裤数据集 def __init__(self, data_dir, transformNone): self.data_dir Path(data_dir) self.image_dir self.data_dir / images self.caption_dir self.data_dir / captions # 获取所有图片文件 self.image_files sorted(list(self.image_dir.glob(*.jpg))) # 验证图片和标注文件对应 self.valid_files [] for img_path in self.image_files: caption_path self.caption_dir / f{img_path.stem}.txt if caption_path.exists(): self.valid_files.append((img_path, caption_path)) print(f找到 {len(self.valid_files)} 个有效的图片-标注对) self.transform transform def __len__(self): return len(self.valid_files) def __getitem__(self, idx): img_path, caption_path self.valid_files[idx] # 加载图片 image Image.open(img_path).convert(RGB) # 加载标注 with open(caption_path, r, encodingutf-8) as f: caption f.read().strip() # 应用变换 if self.transform: image self.transform(image) return {image: image, caption: caption} def main(): # 设置环境 os.makedirs(config.output_dir, exist_okTrue) os.makedirs(config.logging_dir, exist_okTrue) # 检查CUDA device cuda if torch.cuda.is_available() else cpu print(f使用设备: {device}) if device cuda: print(f显卡: {torch.cuda.get_device_name(0)}) print(f可用显存: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.2f} GB) # 准备数据集 from torchvision import transforms transform transforms.Compose([ transforms.Resize((config.resolution, config.resolution)), transforms.ToTensor(), transforms.Normalize([0.5], [0.5]) ]) dataset LeatherRomperDataset(config.train_data_dir, transformtransform) if len(dataset) 0: print(错误没有找到训练数据) print(请确保数据集结构正确) print(leather_romper_dataset/) print(├── images/ # 存放.jpg图片) print(└── captions/ # 存放对应的.txt标注文件) return print(f数据集大小: {len(dataset)}) # 创建数据加载器 from torch.utils.data import DataLoader train_dataloader DataLoader( dataset, batch_sizeconfig.train_batch_size, shuffleTrue, num_workers2 ) # 加载预训练模型 from diffusers import StableDiffusionPipeline, UNet2DConditionModel print(加载预训练模型...) pipe StableDiffusionPipeline.from_pretrained( config.pretrained_model_name_or_path, torch_dtypetorch.float16 if config.mixed_precision fp16 else torch.float32 ) # 准备LoRA from diffusers.loaders import AttnProcsLayers from diffusers.models.attention_processor import LoRAAttnProcessor # 创建LoRA层 unet pipe.unet unet_lora_attn_procs {} for name, attn_processor in unet.attn_processors.items(): # 创建LoRA注意力处理器 cross_attention_dim None if name.endswith(attn1.processor) else unet.config.cross_attention_dim if name.startswith(mid_block): hidden_size unet.config.block_out_channels[-1] elif name.startswith(up_blocks): block_id int(name[len(up_blocks.)]) hidden_size list(reversed(unet.config.block_out_channels))[block_id] elif name.startswith(down_blocks): block_id int(name[len(down_blocks.)]) hidden_size unet.config.block_out_channels[block_id] unet_lora_attn_procs[name] LoRAAttnProcessor( hidden_sizehidden_size, cross_attention_dimcross_attention_dim, rankconfig.rank, ) unet.set_attn_processor(unet_lora_attn_procs) lora_layers AttnProcsLayers(unet.attn_processors) # 设置优化器 optimizer torch.optim.AdamW( lora_layers.parameters(), lrconfig.learning_rate, betas(0.9, 0.999), weight_decay1e-2, eps1e-08 ) # 学习率调度器 from diffusers.optimization import get_scheduler lr_scheduler get_scheduler( config.lr_scheduler, optimizeroptimizer, num_warmup_stepsconfig.lr_warmup_steps, num_training_stepslen(train_dataloader) * config.num_train_epochs ) # 训练循环 print(开始训练...) global_step 0 for epoch in range(config.num_train_epochs): print(f\nEpoch {epoch 1}/{config.num_train_epochs}) for step, batch in enumerate(train_dataloader): # 将数据移到设备 images batch[image].to(device) captions batch[caption] # 编码文本 text_inputs pipe.tokenizer( captions, paddingmax_length, max_lengthpipe.tokenizer.model_max_length, truncationTrue, return_tensorspt ) text_embeddings pipe.text_encoder(text_inputs.input_ids.to(device))[0] # 准备潜在变量 latents pipe.vae.encode(images).latent_dist.sample() latents latents * pipe.vae.config.scaling_factor # 添加噪声 noise torch.randn_like(latents) timesteps torch.randint(0, pipe.scheduler.num_train_timesteps, (latents.shape[0],), devicedevice) noisy_latents pipe.scheduler.add_noise(latents, noise, timesteps) # 预测噪声 noise_pred unet(noisy_latents, timesteps, encoder_hidden_statestext_embeddings).sample # 计算损失 loss torch.nn.functional.mse_loss(noise_pred, noise) # 反向传播 loss.backward() optimizer.step() lr_scheduler.step() optimizer.zero_grad() global_step 1 # 打印日志 if global_step % config.logging_steps 0: print(fStep {global_step}, Loss: {loss.item():.4f}) # 保存检查点 if global_step % config.save_steps 0: save_path os.path.join(config.output_dir, f{config.model_name}_step_{global_step}) lora_layers.save_attn_procs(save_path) print(f保存检查点到: {save_path}) # 每个epoch结束后保存 save_path os.path.join(config.output_dir, f{config.model_name}_epoch_{epoch1}) lora_layers.save_attn_procs(save_path) print(fEpoch {epoch1} 完成模型保存到: {save_path}) # 训练完成保存最终模型 final_path os.path.join(config.output_dir, f{config.model_name}_final) lora_layers.save_attn_procs(final_path) print(f\n训练完成最终模型保存到: {final_path}) if __name__ __main__: main()5.3 开始训练运行训练脚本python train_lora.py训练过程中你会看到类似这样的输出使用设备: cuda 显卡: NVIDIA GeForce RTX 3060 可用显存: 12.00 GB 找到 35 个有效的图片-标注对 数据集大小: 35 加载预训练模型... 开始训练... Epoch 1/100 Step 10, Loss: 0.4521 Step 20, Loss: 0.3215 ... Epoch 1 完成模型保存到: ./lora_output/leather_romper_lora_epoch_1训练时间估计20-50张图片训练100个epochRTX 3060 12GB大约2-4小时更强大的显卡时间会更短6. 使用训练好的LoRA模型6.1 加载和使用LoRA训练完成后你可以这样使用你的LoRA模型# use_lora.py import torch from diffusers import StableDiffusionPipeline from PIL import Image def generate_with_lora(): # 加载基础模型 pipe StableDiffusionPipeline.from_pretrained( runwayml/stable-diffusion-v1-5, torch_dtypetorch.float16 if torch.cuda.is_available() else torch.float32, safety_checkerNone # 可选加快生成速度 ) if torch.cuda.is_available(): pipe pipe.to(cuda) # 加载LoRA权重 lora_path ./lora_output/leather_romper_lora_final pipe.unet.load_attn_procs(lora_path) # 生成图片 prompts [ a beautiful black leather romper, fashion photography, studio lighting, high quality, red leather jumpsuit, front view, professional photo, detailed, white leather romper with gold zippers, fashion design, clean background ] for i, prompt in enumerate(prompts): print(f生成图片 {i1}: {prompt}) # 生成图片 image pipe( prompt, num_inference_steps30, guidance_scale7.5, height512, width512, negative_promptlow quality, blurry, distorted, bad anatomy ).images[0] # 保存图片 image.save(fgenerated/leather_romper_{i}.png) print(f图片保存到: generated/leather_romper_{i}.png) print(生成完成) if __name__ __main__: generate_with_lora()6.2 调整生成参数LoRA模型生成图片时可以调整一些参数来获得更好的效果# advanced_generation.py def generate_with_parameters(): # ... 加载模型代码同上 ... # 不同的生成参数组合 configs [ { name: default, steps: 30, guidance: 7.5, negative: low quality, blurry }, { name: high_quality, steps: 50, guidance: 8.0, negative: low quality, blurry, distorted, bad anatomy, ugly }, { name: fast, steps: 20, guidance: 7.0, negative: worst quality } ] prompt a fashionable leather romper, studio photography, professional lighting for config in configs: print(f使用配置: {config[name]}) image pipe( prompt, num_inference_stepsconfig[steps], guidance_scaleconfig[guidance], negative_promptconfig[negative], height512, width512 ).images[0] image.save(fgenerated/leather_romper_{config[name]}.png) print(f图片保存到: generated/leather_romper_{config[name]}.png)6.3 与其他LoRA模型组合一个很酷的功能是你可以把多个LoRA模型组合使用# combine_loras.py def combine_loras(): # 加载基础模型 pipe StableDiffusionPipeline.from_pretrained( runwayml/stable-diffusion-v1-5, torch_dtypetorch.float16 ).to(cuda) # 加载多个LoRA lora_paths [ ./lora_output/leather_romper_lora_final, # 皮革连体裤 ./other_loras/leather_texture_lora, # 皮革纹理 ./other_loras/fashion_style_lora # 时尚风格 ] for lora_path in lora_paths: pipe.unet.load_attn_procs(lora_path, weight_namepytorch_lora_weights.safetensors) # 生成组合效果的图片 prompt a leather romper with detailed texture, fashion photography, vogue style image pipe( prompt, num_inference_steps40, guidance_scale8.0 ).images[0] image.save(generated/combined_lora_result.png) print(组合LoRA生成完成)7. 常见问题与解决方案7.1 训练过程中的问题问题1显存不足CUDA out of memory解决方案# 在训练配置中调整这些参数 config.train_batch_size 2 # 减小批次大小 config.gradient_accumulation_steps 2 # 增加梯度累积步数 config.gradient_checkpointing True # 启用梯度检查点 config.mixed_precision fp16 # 使用半精度浮点数问题2训练损失不下降可能原因和解决方案学习率太高或太低尝试调整learning_rate一般在1e-5到1e-4之间数据质量不好检查图片是否清晰标注是否准确数据量太少增加训练图片数量到30-50张训练轮数不够增加num_train_epochs到150-200问题3生成的图片过拟合只会复制训练图片解决方案# 在训练配置中添加数据增强 from torchvision import transforms transform transforms.Compose([ transforms.Resize((512, 512)), transforms.RandomHorizontalFlip(p0.5), # 随机水平翻转 transforms.ColorJitter(brightness0.2, contrast0.2), # 颜色抖动 transforms.ToTensor(), transforms.Normalize([0.5], [0.5]) ])7.2 生成图片的问题问题1生成的皮革服装不像皮革解决方案在提示词中明确材质black leather romper, leather texture visible使用负面提示词排除其他材质not fabric, not cotton, not silk调整guidance_scale到8.0-9.0之间让模型更遵循提示词问题2服装款式不准确解决方案在训练数据中增加更多角度的图片在提示词中详细描述款式leather romper with short sleeves, front zipper, belt details尝试不同的随机种子generatortorch.Generator().manual_seed(123)问题3图片质量不高解决方案# 使用高质量的生成参数 image pipe( prompt, num_inference_steps50, # 增加步数 guidance_scale8.0, # 提高引导系数 height768, # 提高分辨率 width768, negative_promptlow quality, blurry, distorted, bad anatomy, ugly, deformed ).images[0]7.3 性能优化技巧技巧1加快生成速度# 启用xformers加速如果安装了 pipe.enable_xformers_memory_efficient_attention() # 使用更快的调度器 from diffusers import DPMSolverMultistepScheduler pipe.scheduler DPMSolverMultistepScheduler.from_config(pipe.scheduler.config) # 减少推理步数但保持质量 image pipe( prompt, num_inference_steps20, # 使用更少的步数 guidance_scale7.5 ).images[0]技巧2节省显存# 启用模型卸载 pipe.enable_model_cpu_offload() # 使用注意力切片 pipe.enable_attention_slicing() # 使用序列化 pipe.enable_sequential_cpu_offload()8. 总结8.1 学习回顾通过这篇教程我们从头到尾走了一遍LoRA微调的完整流程理解了LoRA是什么它不是重新训练整个模型而是给现有模型添加一个轻量级的补丁让模型学会新的风格或主题。准备好了训练环境从硬件要求到软件安装确保一切就绪。收集和处理了数据学会了如何准备高质量的皮革连体裤数据集包括图片收集、预处理和标注。完成了模型训练配置了训练参数运行了训练脚本得到了专属的皮革连体裤LoRA模型。使用和优化了模型学会了如何加载LoRA模型生成图片以及如何调整参数获得更好的效果。解决了常见问题掌握了训练和生成过程中可能遇到的问题及其解决方案。8.2 关键要点数据质量决定模型质量训练LoRA模型最重要的是数据。20-50张高质量、多样化的图片配上准确的文字描述比100张随意的图片效果更好。参数调整需要耐心学习率、训练轮数、批次大小这些参数需要根据你的数据和硬件慢慢调整。没有一套参数适合所有情况。生成技巧很重要同样的模型不同的提示词和参数生成的效果可能天差地别。多尝试不同的组合找到最适合你需求的设置。LoRA可以组合使用你可以训练多个专门的LoRA模型比如一个负责材质一个负责款式一个负责风格然后组合使用获得更精细的控制。8.3 下一步建议如果你已经掌握了基础可以尝试这些进阶方向训练更复杂的模型尝试训练其他服装款式的LoRA比如皮革外套、皮裙等然后组合使用。优化训练流程尝试不同的训练策略比如渐进式训练、课程学习等。开发实际应用将训练好的模型集成到服装设计软件、电商平台等实际应用中。探索其他模型架构除了Stable Diffusion 1.5还可以尝试SDXL、DALL-E等模型的LoRA微调。分享你的模型将训练好的LoRA模型分享到模型社区帮助其他人也能获得反馈改进模型。8.4 最后的建议LoRA微调是一个实践性很强的技术。最好的学习方法就是动手去做。不要怕失败每个错误都是学习的机会。从简单的开始用少量数据训练一个基础模型看到效果后再逐步增加复杂度。记住即使是专业的AI研究人员也需要多次尝试才能得到理想的结果。现在你已经掌握了LoRA微调的基本技能。接下来就是发挥你的创意训练出属于你自己的独特模型了。祝你训练顺利生成出惊艳的皮革服装设计获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…