[linux-sd-webui]之txt2img

这篇具有很好参考价值的文章主要介绍了[linux-sd-webui]之txt2img。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从webui中抽离出txt2img的接口:

1.参数

id_task="task",
prompt="a highly detailed tower designed by Zaha hadid with few metal and lots of glass,roads around with much traffic,in a city with a lot of greenery,aerial view, stunning sunny lighting, foggy atmosphere, vivid colors, Photo-grade rendering, Realistic style,8k,high res,highly detialed, ray tracing,vray render,masterpiece, best quality,rendered by Mir. and Brick visual",
negative_prompt="", # v2模型才支持
prompt_styles=[],
steps=20, # sampling steps,去噪过长的采样步骤数,25
sampler_index=0, # sampling method,采样方法
restore_faces=False, # 应用了额外模型,该模型可以恢复面部缺陷
tiling=False, # 生成可以平铺的周期性图像
n_iter=1, # batch count,推理的次数
batch_size=1, # 一次推理生成的图片,batch count*batch_size是总生成图片数目
cfg_scale=7, # classifier free guidance scale,控制模型和prompt的匹配程度,1.忽视prompt,
3.更有创意,7,在prompt和freedom中取得平衡,15,遵守prompt,30,严格按照prompt
seed=-1, # 用于在潜空间中生成最张量的种子,控制图像的内容,每生成一个图像都有自己的种子值
subseed=-1, # 附加种子值,在extra中
subseed_strength=0, # 种子和variation seed之间的差值程度,如果生成了两张图,可以通过第一个
图为seed,第二个图为subseed,然后设置subseed strength在0-1之间的强度变化,那么会生成逐渐
过渡的两个图。
seed_resize_from_h=0, # 即便使用相同的seed,如果更改图片大小,图像也会发生变化,
因此在这里调整图片,图片内容变化不会太大
seed_resize_from_w=0,
seed_enable_extras=False, # True,subseed到seed_resize_from_w之间的都要填值
height=512, # v1模型一边至少是512
width=512,
enable_hr=False, # 使用high-resolution fix放大图片,sdv1.4是512,v2是768图片太小,
如果将宽度和高度设置的更高,比如1024,偏离原始分辨率会影响构图,例如生成带有两个头像的图片
denoising_strength=0.7, # 仅用于latent upscalers,该参数与image-to-image含义相同,
它控制在之星hires采样步骤之前添加到潜空间中的噪声,必须大于0.5,否则会尝产生模糊的图像,
使用latent的好处是没有像esrgan这种一样可能引入放大伪像,sd的解码器生成图像,确保风格一致,
缺点是在一定程度改变图像,这取决于去噪强度的值
hr_scale=0,  # 放大的倍数
hr_upscaler="Latent",  # 在潜空间中缩放图像,它是在文本到图像生成的采样步骤之后完成的,
类似于图像到图像
hr_second_pass_steps=0, # 采样步数
hr_resize_x=0, # 制定尺寸
hr_resize_y=0,
override_settings_texts=[],

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

photo of woman, dress, city night background

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

 photo of woman, dress, city night background, bracelet

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

 seed 1

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

seed 3

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git

1.代码流程

modules.sd_models.setup_model()->
list_models()->cmd_ckpt=shared.cmd_opts.ckpt加载模型->
modules.txt2img.txt2img->
modules.scripts.ScriptRunner.run()-> 实际上在挑scripts,txt2img有三个scripts,一些工具
modules/txt2img.py->process_image(p) 58
modules/processing.py->process_images_inner(p) 503
modules/processing.py->sampler.sample() 871
modules/sd_samplers_kdiffusion.py->sample->launch_sampling() 359
repositories/k-diffusion/k_diffusion/sampling.py->model() 146
modules/sd_samplers_kdiffusion.py->CFGDenoiser->forward()->inner_model 126
repositories/k-diffusion/k_diffusion/external.py->DiscreteEpsDDPMDenoiser->forward() 112
repositories/k-diffudion/k_diffusion/external.py->
moudles/sd_hijack_utils.py->
repositories/stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py->self.model() 858
ddpm.py DiffusionWrapper diffusion_model 1330
- modules/diffusionmodules/openaimodel.py->
repositories/k-diffudion/k_diffusion/external.py->forward()
modules/sd_samplers_kdiffusion.py->CFGDenoiser->forward()->denoised:[4,4,64,64]
modules/sampling/sample_euler_ancestral->self.model()
modules/processing/StableDiffusionProcessingText2Img().sample() return samples 874
modules/processing->decode_first_stage()->
repositories/stable-diffusion-stability-ai/ldm/models/diffusion/ddpm.py decode_first_stage
- ldm/models/autoencoder.py AutoencoderKL.decode->self.post_quant_conv()->
extensions-builtin/lora/lora.py->lora_conv2d_forward()->
repositories/stable-diffusion-stability-ai/ldm/modules/diffusionmodules/model.py Decoder 621->
x_sample_ddim
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DPM++ 2S a
DPM++ 2M
DPM++ SDE
DPM fast
DPM adaptive
LMS Karras
DPM2 Karras
DPM2 a Karras
DPM++ 2S a Karras
DPM++ 2M Karras
DPM++ SDE Karras
DDIM
PLMS

main.py

import sys
import cv2
import torch
import logging

logging.getLogger("xformers").addFilter(lambda record: 'A matching Triton is not available' not in record.getMessage())
import numpy as np
from modules import paths, timer, import_hook, errors

startup_timer = timer.Timer()

from modules import shared, devices, sd_samplers, upscaler, extensions, localization, ui_tempdir, ui_extra_networks
import modules.scripts
import modules.sd_models
import modules.txt2img

from modules.shared import cmd_opts
from torchvision.utils import save_image

def initialize():

    extensions.list_extensions()
    localization.list_localizations(cmd_opts.localizations_dir)
    startup_timer.record("list extensions")

    modules.sd_models.setup_model() # 加载模型
    startup_timer.record("list SD models")

    modules.scripts.load_scripts()
    startup_timer.record("load scripts")

    try:
        modules.sd_models.load_model()
    except Exception as e:
        errors.display(e, "loading stable diffusion model")
        print("", file=sys.stderr)
        print("Stable diffusion model failed to load, exiting", file=sys.stderr)
        exit(1)
    startup_timer.record("load SD checkpoint")


def webui():
    initialize()

    image, _, _, _ = modules.txt2img.txt2img(
        id_task="task",
        prompt="a highly detailed tower designed by Zaha hadid with few metal and lots of glass,roads around with much traffic,in a city with a lot of greenery,aerial view, stunning sunny lighting, foggy atmosphere, vivid colors, Photo-grade rendering, Realistic style,8k,high res,highly detialed, ray tracing,vray render,masterpiece, best quality,rendered by Mir. and Brick visual",
        negative_prompt="",
        prompt_styles=[],
        steps=20,
        sampler_index=0,
        restore_faces=False,
        tiling=False,
        n_iter=1,
        batch_size=1,
        cfg_scale=7,
        seed=-1,
        subseed=-1,
        subseed_strength=0,
        seed_resize_from_h=0,
        seed_resize_from_w=0,
        seed_enable_extras=False,
        height=512,
        width=512,
        enable_hr=False,
        denoising_strength=0.7,
        hr_scale=0,
        hr_upscaler="Latent",
        hr_second_pass_steps=0,
        hr_resize_x=0,
        hr_resize_y=0,
        override_settings_texts=[],
    )

    for i in range(len(image)):
        image[i].save(f"{i}.png")

if __name__ == "__main__":
    webui()

modules/txt2img.py

import modules.scripts
from modules import sd_samplers
from modules.generation_parameters_copypaste import create_override_settings_dict
from modules.processing import StableDiffusionProcessing, Processed, StableDiffusionProcessingTxt2Img, \
    StableDiffusionProcessingImg2Img, process_images
from modules.shared import opts, cmd_opts
import modules.shared as shared
import modules.processing as processing
from modules.ui import plaintext_to_html


def txt2img(id_task: str, prompt: str, negative_prompt: str, prompt_styles, steps: int, sampler_index: int,
            restore_faces: bool, tiling: bool, n_iter: int, batch_size: int, cfg_scale: float, seed: int, subseed: int,
            subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, seed_enable_extras: bool,
            height: int, width: int, enable_hr: bool, denoising_strength: float, hr_scale: float, hr_upscaler: str,
            hr_second_pass_steps: int, hr_resize_x: int, hr_resize_y: int, override_settings_texts, *args):
    args = (
    0, False, False, 'positive', 'comma', 0, False, False, '', 1, '', 0, '', 0, '', True, False, False, False, 0)
    override_settings = create_override_settings_dict(override_settings_texts)

    p = StableDiffusionProcessingTxt2Img(
        sd_model=shared.sd_model,
        outpath_samples=opts.outdir_samples or opts.outdir_txt2img_samples,
        outpath_grids=opts.outdir_grids or opts.outdir_txt2img_grids,
        prompt=prompt,
        styles=prompt_styles,
        negative_prompt=negative_prompt,
        seed=seed,
        subseed=subseed,
        subseed_strength=subseed_strength,
        seed_resize_from_h=seed_resize_from_h,
        seed_resize_from_w=seed_resize_from_w,
        seed_enable_extras=seed_enable_extras,
        sampler_name=sd_samplers.samplers[sampler_index].name,
        batch_size=batch_size,
        n_iter=n_iter,
        steps=steps,
        cfg_scale=cfg_scale,
        width=width,
        height=height,
        restore_faces=restore_faces,
        tiling=tiling,
        enable_hr=enable_hr,
        denoising_strength=denoising_strength if enable_hr else None,
        hr_scale=hr_scale,
        hr_upscaler=hr_upscaler,
        hr_second_pass_steps=hr_second_pass_steps,
        hr_resize_x=hr_resize_x,
        hr_resize_y=hr_resize_y,
        override_settings=override_settings,
    )

    p.scripts = modules.scripts.scripts_txt2img
    p.script_args = args

    if cmd_opts.enable_console_prompts:
        print(f"\ntxt2img: {prompt}", file=shared.progress_print_out)

    processed = modules.scripts.scripts_txt2img.run(p, *args)
    #     processed = None

    if processed is None:
        processed = process_images(p)

    p.close()

    shared.total_tqdm.clear()

    generation_info_js = processed.js()
    if opts.samples_log_stdout:
        print(generation_info_js)

    if opts.do_not_show_images:
        processed.images = []

    return processed.images, generation_info_js, plaintext_to_html(processed.info), plaintext_to_html(
        processed.comments)

[linux-sd-webui]之txt2img,大模型、多模态和生成,人工智能,深度学习,git  文章来源地址https://www.toymoban.com/news/detail-580665.html

到了这里,关于[linux-sd-webui]之txt2img的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stable-diffusion txt2img参数整理

    Sampling steps :采样步骤”:“迭代改进生成图像的次数;较高的值需要更长的时间;非常低的值可能会产生糟糕的结果”, 指的是Stable Diffusion生成图像所需的迭代步数。每增加一步迭代,都会给AI更多的机会去比对提示和当前结果,并进行调整。更高的迭代步数需要更多的计

    2024年02月11日
    浏览(54)
  • 图文教程:stable-diffusion的基本使用教程 txt2img(多图)

    之前我介绍了SD的安装过程,那么这篇将介绍怎么使用SD SD安装好之后,我们只有一个默认的模型。这个模型很难满足我们的绘图需求,那么有2种方法。 1是自己训练一个模型(有门槛)2是去网站上找一个别人练好的模型。 很显然的,我需要选择第二种方法。 那么现在最主流

    2024年02月03日
    浏览(69)
  • win10部署NovelAI绘画,Stable Diffusion,Chilloutmix,实现txt2img,img2img(含调参)

    1、Stable Diffusion是什么 Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词​(英语)指导下产生图生图的翻译。 Stable Diffusion是由德国慕尼黑大学机器视觉

    2024年01月18日
    浏览(43)
  • AIGC专栏2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例

    用了很久的Stable Diffusion,但从来没有好好解析过它内部的结构,写个博客记录一下,嘿嘿。 https://github.com/bubbliiiing/stable-diffusion 喜欢的可以点个star噢。 Stable Diffusion是比较新的一个扩散模型,翻译过来是稳定扩散,虽然名字叫稳定扩散,但实际上换个seed生成的结果就完全不

    2024年02月10日
    浏览(53)
  • [linux-sd-webui]api化之训练lora

    lora的训练使用的文件是https://github.com/Akegarasu/lora-scripts lora训练是需要成对的文本图像对的,需要准备相应的训练数据。 1.训练数据准备 使用deepbooru/blip生成训练数据,建筑类建议使用blip来生成。 2.lora在linux上环境 cuda 10.1 p40 python3.7 accelerate==0.15.0 应该只能在虚拟环境中,在

    2023年04月16日
    浏览(33)
  • Stable diffusion WebUI img2img使用教学

    图生图 (img2img) 相较于文生图 (txt2img),因存在参考图片的基础上创作,其可控性自然更强。下面从图生图的几个应用方向出发,详述其功能特性。 顾名思义,就是通过图片反推,不过作为附加功能首次使用时,需在线下载相应的模型包。有可能退出来的描述信息并不是

    2024年02月16日
    浏览(45)
  • Stable Diffusion WebUI 图生图(img2img):图生图/涂鸦绘制/局部重绘/有色蒙版/上传蒙版/批量处理/反推提示词

    本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本篇文章我们介绍 Stable Diffusion WebUI 的图生图功能,主要包括:图生图、图生图(手绘修正)/涂鸦绘制、局部重绘、局部重绘(有色蒙版)、局部重绘(上传

    2024年04月10日
    浏览(50)
  • Diffusion扩散模型学习3——Stable Diffusion结构解析-以图像生成图像(图生图,img2img)为例

    用了很久的Stable Diffusion,但从来没有好好解析过它内部的结构,写个博客记录一下,嘿嘿。 https://github.com/bubbliiiing/stable-diffusion 喜欢的可以点个star噢。 Stable Diffusion是比较新的一个扩散模型,翻译过来是稳定扩散,虽然名字叫稳定扩散,但实际上换个seed生成的结果就完全不

    2024年02月15日
    浏览(65)
  • 免费使用支持离线部署使用的 txt2video 文本生成视频大模型(Text-to-Video-Synthesis Model)

    免费使用支持离线部署使用的 txt2video 文本生成视频大模型(Text-to-Video-Synthesis Model)。 文本生成视频大模型(Text-to-Video-Synthesis Model)是一种基于深度学习技术的人工智能模型,它可以将自然语言文本描述转换为相应的视频。即通过输入文本描述,自动生成符合描述内容的视频。

    2024年02月22日
    浏览(50)
  • Stable Diffusion高级教程 - 图生图(img2img)模式

    前言 现在终于可以介绍 Stable Diffusion 除了文生图 (txt2img) 之外最重要的功能:图生图 (img2img)。顾名思义,除了根据正向和反向提示词之外,还需要基于一张图片生成图。这个模式下功能很多我们挨个说 img2img 图生图模式下的默认功能,我们先看一下主界面: 上面还是正面提示

    2024年04月26日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包