[sd_scripts]之gen_img

news2024/9/24 3:27:17

https://github.com/kohya-ss/sd-scripts/blob/main/docs/gen_img_README-ja.mdicon-default.png?t=N7T8https://github.com/kohya-ss/sd-scripts/blob/main/docs/gen_img_README-ja.md1.图像生成

ckpt = "/home/image_team/image_team_docker_home/lgd/e_commerce_sd/stable-diffusion-webui/models/Stable-diffusion/DreamShaper_8_pruned.safetensors"
output = "/home/image_team/image_team_docker_home/lgd/e_commerce_sd/outputs/sd_scripts_output/"
python gen_img_diffusers.py --ckpt {ckpt} --outdir {output}  --fp16 --interactive

指定版本: 

--ckpt:在选项中指定模型(sd checkpoint或sd文件夹)。

--v2:使用sd 2.0,1.x版本无需指定。

--v_parameterization:如果使用的模型使用 v 参数化(768-v-ema.ckpt),和v2一起使用。

--vae:指定要使的VAE。

图像生成和输出:

--interactive:以交互模式运行。

--prompt:指定提示符。

--from_file:指定包含prompt的文件,每行写一个提示。

--W:指定图像的宽度,默认512。

--H:指定图像的高度,默认512。

--step:指定采样步数,默认50。

--scale:指定classifier free guidance scale,默认7.5。

--sampler:指定采样器,默认ddim,可以指定Diffusers提供的ddim、pndm、dpmsolver、dpmsolver+++、lms、euler、euler_a(后三个也可以用k_lms、k_euler、k_euler_a指定)。

--outdir:图像输出地址。

--images_per_prompt:指定每次提示生成的图片数,默认是1。

--clip_skip:指定要使用clip末尾的哪一层,省略则使用最后一层。

--max_embeddings_multiples:指定clip输入长度与默认值75的倍数,未指定,则默认75。若是3,则是225.

--negative_scale:指定位编码比例。

调整内存和加速:

--batch_size:批量大小,默认是1,大批量会消耗更多内存,但会生成更快的结果。

--vae_batch_size:指定VAE批量大小,默认和bs一样,VAE会消耗更多内存,去噪后步长到100%时,会耗尽内存。

--xformers:可以选择指定 xformers 的使用(如果不使用 xformers,则将其省略)。
--fp16:可选择以 fp16(单精度)执行推理。RTX 30 系列 GPU。
--bf16:可以选择执行 bf16 (bfloat16) 推理。

使用附加网络:

--network_module:指定要使用的网络,对于lora,---network_module networks.lora,多个lora,--network_module networks.lora networks.lora

--network_weights:指定要使用的网络权重文件,单个lora,--network_weights model.safetensors,对于多个lora,--network_weights model1.safetensors model2.safetensors model3.safetensors

--network_mul:指定要附加的网络权重的比例,默认是1。单个lora,---network_mul 0.8,多个lora,--network_mul 0.4 0.5 0.7

--network_merge:将附加权重和原始权重进行预先合并。

2.文生图 

使用textual inversion和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

相同指示一次生成64张,批量大小为4的图片:

python gen_img_diffusers.py --ckpt model.ckpt --outdir outputs 
    --xformers --fp16 --W 512 --H 704 --scale 12.5 --sampler k_euler_a 
    --steps 32 --batch_size 4 --images_per_prompt 64 
    --prompt "beautiful flowers --n monochrome"

3.图生图

python gen_img_diffusers.py --ckpt trinart_characters_it4_v1_vae_merged.ckpt 
    --outdir outputs --xformers --fp16 --scale 12.5 --sampler k_euler --steps 32 
    --image_path template.png --strength 0.8 
    --prompt "1girl, cowboy shot, brown hair, pony tail, brown eyes, 
          sailor school uniform, outdoors 
          --n lowres, bad anatomy, bad hands, error, missing fingers, cropped, 
          worst quality, low quality, normal quality, jpeg artifacts, (blurry), 
          hair ornament, glasses" 
    --batch_size 8 --images_per_prompt 32

--image_path:指定img2img图片,若指定文件夹,则以此使用该文件夹中图像

--strength:指定img2img强度,默认0.8.

3.inpaint

--mask_image:指定mask图像。

gen_img_diffusers.py

text_encoder, vae, unet = model_util.load_models_from_stable_diffusion_checkpoint(args.v2, args.ckpt)
- sd_scripts/library/model_util.py->load_models_from_stable_diffusion_checkpoint
- _, state_dict = load_checkpoint_with_text_encoder_conversion(ckpt_path, device)

- # Convert the UNet2DConditionModel model.
- unet_config = create_unet_diffusers_config(v2, unet_use_linear_projection_in_v2)
{'sample_size': 64, 'in_channels': 4, 'out_channels': 4, 'down_block_types': ('CrossAttnDownBlock2D', 'CrossAttnDownBlock2D', 'CrossAttnDownBlock2D', 'DownBlock2D'), 'up_block_types': ('UpBlock2D', 'CrossAttnUpBlock2D', 'CrossAttnUpBlock2D', 'CrossAttnUpBlock2D'), 'block_out_channels': (320, 640, 1280, 1280), 'layers_per_block': 2, 'cross_attention_dim': 768, 'attention_head_dim': 8}
- converted_unet_checkpoint = convert_ldm_unet_checkpoint(v2, state_dict, unet_config)
- unet = UNet2DConditionModel(**unet_config).to(device)
- info = unet.load_state_dict(converted_unet_checkpoint)

- # Convert the VAE model.
- vae_config = create_vae_diffusers_config()
{'sample_size': 256, 'in_channels': 3, 'out_channels': 3, 'down_block_types': ('DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D'), 'up_block_types': ('UpDecoderBlock2D', 'UpDecoderBlock2D', 'UpDecoderBlock2D', 'UpDecoderBlock2D'), 'block_out_channels': (128, 256, 512, 512), 'latent_channels': 4, 'layers_per_block': 2}
- converted_vae_checkpoint = convert_ldm_vae_checkpoint(state_dict, vae_config)
- vae = AutoencoderKL(**vae_config).to(device)
- info = vae.load_state_dict(converted_vae_checkpoint)

- text_model = CLIPTextModel._from_config(cfg)
- info = text_model.load_state_dict(converted_text_encoder_checkpoint)

replace_unet_modules(unet, mem_eff, args.xformers, args.sdpa)
replace_vae_modules(vae, mem_eff, args.xformers, args.sdpa)

tokenizer = train_util.load_tokenizer(args)
- tokenizer = CLIPTokenizer.from_pretrained(original_path)

scheduler_module = diffusers.schedulers.scheduling_ddpm

scheduler = scheduler_cls(
        num_train_timesteps=SCHEDULER_TIMESTEPS,
        beta_start=SCHEDULER_LINEAR_START,
        beta_end=SCHEDULER_LINEAR_END,
        beta_schedule=SCHEDLER_SCHEDULE,
        **sched_init_args,
    )


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

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

相关文章

数据结构-静态查找、二分查找、分块查找

静态查找 在静态查找表中,我们只允许下面两件事: 1.在查找表中查找某个记录是否在表中 2.查找表中记录的各个属性 动态查找 在动态查找表中,我们允许四件事: 1.在查找表中查找某个记录是否在表中 2.查找表中记录的各个属性…

代理模式-静态动态代理-jdk动态代理-cglib动态代理

代理模式 静态代理 动态代理:jdk动态代理 cglib动态代理 注意 :下面的代码截图 要配合文字去看 我对代码的每一步都做了解释 所以需要配合图片观看提取吗1111https://pan.baidu.com/s/1OxQSwbQ--t5Zvmwzjh1T0A?pwd1111 这里直接把项目文件 及代码 …

Linux 使用随记

Linux 使用随记 shell 命令行模式登录后所取得的程序被成为shell,这是因为这个程序负责最外层的跟用户(我们)通信工作,所以才被戏称为shell。 命令 1、命令格式 command [-options] parameter1 parameter2 … 1、一行命令中第…

FNPLicensingService.exe 总提示要联网

目录预览 一、问题描述二、原因分析三、解决方案:四、参考链接 一、问题描述 FNPLicensingService.exe 总提示要联网 找到路径如下: C:\Program Files (x86)\Common Files\Macrovision Shared\FlexNet Publisher然而从文件目录来看,并没有…

成都优优聚美团代运营:打造高效电商运营的利器

一、引人注目的标题 在繁杂的电商市场中,成都优优聚美团代运营以其专业的服务,为商家提供了一站式的解决方案。那么,这个备受瞩目的代运营平台有何特别之处呢?今天,我们就来一探究竟。 二、平台背景与优势 成都优优聚…

Electronica Samtec展台连接器Demo回顾 | 224Gbps PAM4:令人瞠目的速率

【摘要/前言】 最近,我们正在为大家带来2023慕尼黑上海电子展虎家展台Demo演示回顾系列。 今天虎家工程师团队再次为大家带来系列第一期: 我们邀请到了合作伙伴Keysight,与我们一同带来了Samtec NovaRay高密度、高性能阵列连接器以及Keysig…

微信小程序用户隐私API

用户隐私保护 由于用户隐私保护的政策执行,我们在调用涉及到用户隐私的API时,未更新用户隐私保护协议是无法直接调用的,小程序会默认判断是否更新用户隐私保护 ,并根据用户隐私保护中的协议来判断是否可以调用对应的API&#xff…

Generated Key 的功能

Generated Key 简介 一. 前言现场报错原因解决扩展 二. Generated Key简介:作用使用 一. 前言 现场报错 在客户现场遇到如下报错,现象是无法使用调度系统进行数据库的 insert 操作: 原因 数据库版本太老,而 insert 语句是使…

高性能图表库LightningChart JS v5.0 - 轻松实现图表自定义布局

LightningChart JS是Web上性能最高的图表库具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画。 点击获取LightningChart JS v5.0正式版下载 LightningChart JS …

如何压缩文件?学会这4个简单方法!

“我有一些文件需要发送,但是文件太大了无法发送,我想把它们压缩但是不知道怎么操作。怎么压缩文件呢?谁能帮我出出主意呀?” 在数字化时代,文件传输和存储变得日益重要。压缩文件是一种有效的方式,可以减小…

清单式管理提高巡检质量——巡检管理系统体系化管理

巡检管理系统采用体系化的清单式管理方法,减少巡检工作中人为因素的误差,让巡检工作落实到细节,并有迹可查。 清单式管理是一种高效、系统化的巡检方法,广泛应用于各种行业和领域。通过制定详细的巡检清单,明确巡检内容…

MATLAB Simulink和SMART PLC水箱液位高度PID控制联合仿真

SMART PLC 向导PID的详细介绍请查看下面文章链接: S7-200 SMART PLC PID向导详细介绍(如何实现P、PD、PID控制器)-CSDN博客文章浏览阅读1k次。这篇博客主要介绍SMART PLC PID向导的使用,PID控制相关的其它内容请查看专栏系列文章,常用链接如下:SMART PLC PID负压控制(过程…

简洁高效的微信小程序分页器封装实践

前言 在现今的移动应用开发中,微信小程序已经成为了一个备受欢迎的平台。然而,随着应用的复杂性增加,数据的管理和加载成为了一个问题。本文将探讨微信小程序中的一个关键概念:封装分页器,它是提升小程序性能和用户体验…

windows qos api使用示例

简介 本文给出C版以及Rust版调用windows API实现QOS的示例,并提出一些注意事项。QOS可以用来区分socket 优先级、实现带宽控制等诸多功能。 UDP版本 该示例的重要部分是客户端应用程序。客户端代码的工作方式如下: 1. 通过套接字连接到目标 IP 地址。…

手把手教你数据流图如何画,轻松搞定!

数据流图是一种强大的工具,用于可视化和分析系统中的数据流动和处理过程。它不仅能够帮助我们更好地理解系统的功能和流程,还能够帮助我们发现和解决潜在的问题。在本篇文章中,我们将手把手教你掌握数据流图。 一、数据流图的概念和构成元素 …

合合信息亮相新加坡科技周——Big Data AI World Expo展示AI驱动文档数字化的前沿能力

展会规模背景: 2023年10月11日-12日,合合信息在TECH WEEK SINGAPORE(新加坡科技周)亮相,并在人工智能世界博览会(Big Data & AI World)展示合合信息核心人工智能文字识别技术能力。合合信息…

cadence virtuoso 导出电路图

去掉网格:option-display file-export image

FPGA高端项目:图像采集+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案 3、设计思路框架设计框图视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX …

如何在电脑和手机设备上编辑只读 PDF

我们大多数人更喜欢以 PDF 格式共享和查看文件,因为它更专业、更便携。但是,通常情况下您被拒绝访问除查看之外的内容编辑、复制或评论。如果您希望更好地控制您的 PDF 或更灵活地编辑它,请弄清楚为什么您的 PDF 是只读的,然后使用…

Final Cut Pro X for Mac:打造专业级视频剪辑的终极利器

随着数字媒体技术的不断发展,视频剪辑已经成为各行各业不可或缺的一部分。Final Cut Pro X for Mac作为一款专业的视频剪辑软件,凭借其强大的功能和易用性,已经成为Mac用户的首选。本文将向您详细介绍Final Cut Pro X for Mac的优势、功能以及…