使用篇(一):Ai绘图-Stable Diffusion WebUI

1.介绍

1.1 概述

Stable Diffusion Web UI是一个基于Stable diffusion AI模型的AI绘画软件。它是一个多功能的AI绘画软件,支持以下几个功能:

  1. 用户可以输入一堆关键词或一句话来生成图片。
  2. 它使用了图像加噪去噪过程中的生成模型—— Duffusion,能够在1000个步骤中将一张完全没有噪点的图像转化为一张充满噪点的无法辨认的图像。
  3. StableDiffusion是一种深度学习的文本到图像生成模型,而 Stable Diffusion Web UI则是对该模型进行封装并提供可操作界面的工具软件。
  4. Stable Diffusion Web UI中,面部修复适用于画真人、三次元的场景,在画全身时尤为有用;高清修复可以让低分辨率的图片变得清晰;而调参区则可以帮助用户调整参数以满足不同的需求。

目前 AI 有两个主流的方向,一个是以 Stable Diffusion 为代表的 AI 图像生成领域,一个是 ChatGPT 为代表的大语言模型领域。

1.2 背景

Stable Diffusion (稳定扩散) 是一个扩散模型,2022年8月由德国CompVis协同Stability AIRunway发表论文,并推出相关程序。

同年,AUTOMATIC1111开发了图形化界面:「Stable Diffusion WebUI」,这是能用AI技术生成图片的开源软件,只要给定一组描述文本,AI就会开始绘图;亦能模仿现有的图片,生成另一张图片。

2.安装运行

本人电脑环境是: Mac Os,内存16G

2.1 安装依赖

# 至于如何Homebrew这里不在叙述
$ brew install cmake protobuf rust python@3.10 git wget

2.2 安装源码:方式一

➜ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 28076, done.
remote: Counting objects: 100% (41/41), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 28076 (delta 20), reused 30 (delta 16), pack-reused 28035
Receiving objects: 100% (28076/28076), 32.57 MiB | 11.53 MiB/s, done.
Resolving deltas: 100% (19652/19652), done.

2.3 安装源码:方式二

安装方式一对于一些朋友来说,可能会由于网络的限制,而无法正常下载,即便上面下载成功,在运行的时候,可能还需要下载依赖项目和模型,之后在运行过程中又是各种坑,为此会把项目和模型进行压缩放到阿里云盘,通过以下方式可以获取

微信搜索【猿码记】公众号,回复stable-diffusion-webui,即可获取完整代码

2.4 运行

➜  ./webui.sh
...
Python 3.11.4 (main, Jul  5 2023, 08:41:25) [Clang 14.0.6 ]
Version: v1.6.0-2-g4afaaf8a
Commit hash: 4afaaf8a020c1df457bcf7250cb1c7f609699fa7
Launching Web UI with arguments: --skip-torch-cuda-test --upcast-sampling --no-half --use-cpu interrogate
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled
Loading weights [0873291ac5] from /Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/models/Stable-diffusion/AbyssOrangeMix2_nsfw.safetensors
Creating model from config: /Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/configs/v1-inference.yaml
Running on local URL:  http://127.0.0.1:7860

不出意外的话(大部分都会出意外,短短一行启动代码,到处都是辛酸泪:joy:),运行成功会主动在浏览器打开下面页面

alt

2.5 踩坑点

1.HTTP/2 stream 1 was not closed
# 报错信息如下
➜ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Cloning into 'stable-diffusion-webui'...

fatal: unable to access 'https://github.com/AUTOMATIC1111/stable-diffusion-webui.git/': HTTP/2 stream 1 was not closed cleanly before end of the underlying stream

解决方法: 执行:git config --global http.version HTTP/1.1

2.RuntimeError: Couldn't install requirements for CodeFormer
Installing requirements for CodeFormer
Traceback (most recent call last):
  File "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/launch.py", line 48, in <module>
    main()
  File "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/launch.py", line 39, in main
    prepare_environment()
  File "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/modules/launch_utils.py", line 389, in prepare_environment
    run_pip(f"install -r \"{os.path.join(repo_dir('CodeFormer'), 'requirements.txt')}\"""requirements for CodeFormer")
  File "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/modules/launch_utils.py", line 138, in run_pip
    return run(f'"{python}" -m pip {command} --prefer-binary{index_url_line}', desc=f"Installing {desc}", errdesc=f"Couldn't install {desc}", live=live)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/modules/launch_utils.py", line 115, in run
    raise RuntimeError("\n".join(error_bits))
RuntimeError: Couldn't install requirements for CodeFormer.
# 这里是生成后的运行脚本
Command: "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/venv/bin/python3" -m pip install -r "/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/repositories/CodeFormer/requirements.txt" --prefer-binary

这里比较奇怪的是,生成的命令用的python3不是我本地的环境,它自己在项目里又创建了一个,然后就变成了/Users/liuqh/ProjectItem/AiItem/stable-diffusion-webui/venv/bin/python3,我这边的解决方法是,找到 stable-diffusion-webui/modules/launch_utils.py文件在138行,加上-i https://mirrors.aliyun.com/pypi/simple

alt
3. RuntimeError: Input type (float) and bias type (c10::Half) should be the same

修改stable-diffusion-webui/webui-macos-env.sh,

# 把-no-half-vae改成 -no-half 
#export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half --use-cpu interrogate"

3.使用

3.1 生成图片

访问http://127.0.0.1:7860/

@注意:不指定端口的时候,如果上次的后台进程未能正常退出,再次打开端口会变

alt

3.2 页面参数说明

  • Stable Diffusion checkpoint:选择具体的模型
  • Prompt:正向提示词,描述你想要的图片,比如: girl,long hair,black clothes,big eyes(长发黑衣服大眼睛的女孩)@注意:不支持中文
  • Negative prompt:反向提示次,不想要在图像中出现的词,比如: low quality(低质量)
  • Sampling Method :抽样法,常用于去噪,内置多种算法可供选择。比如 DPM++ 2M Karras,可以很好地平衡了速度和质量。
  • Sampling Steps: 采样步骤数。虽然越多越好,但是值越大生成的时间越长。大部分情况选择: 20 ~ 25
  • Width & Height:输出图像的大小长和宽。长宽也不是随意设置;目前使用 v1 模型时,至少将一变设置为 512。目前已知可选的组合有: 512*512、512*768、768*512
  • Batch Count: 批次数量。
  • Batch size:每一批次要生成的图像数量。
  • CFG scale: 用于控制模型生成的图片,和提示词的符合度。默认为 7,数值越小 AI自由发挥的空间就越大,数值越大相对来说就越刻板(严格按照提示词);
  • Seed:指定一个随机种子,用于初始化图像生成过程。相同的种子值每次都会产生相同的图像集,这对于再现性和一致性很有用,如果将值设置为-1,则每次运行都会生成一个随机种子。
  • Hires.Fix: 高清修复,主要是提高生成的图像的分辨率, 注意:开启后生成图片会很慢;其他选项说明:
    • Upscaler:指的是放大算法,内置了很多算法,其中 R-ESRGAN 4x+:擅长写实图片、R-ESRGAN 4x+ Anime6B:擅长二次元图片
    • Hires setps:高清修复的步数和 Sampling Steps代表的意义一样;
    • Denoising strength: 重绘幅度, AI的自由发挥空间,值越大AI就越放飞自我,值越小就越按照原图重绘;
    • Upscale by: 放大的倍数,和下面两个互斥;
    • Resize width to: 指的是把图片放大后,宽度的像素;
    • Resize height to: 指的是把图片放大后,高度的像素;

更多配置说明可参见文档: https://stable-diffusion.org.cn/t/topic/22

3.3 在线生图

如果你觉得本地部署太麻烦,又想体验下下生图,推荐使用这个网站:在线免费生成图片: www.liblib.ai

1.编写提示词

这里可以写中文,支持一键翻译成英文.

image-20231109150041304
image-20231109150041304
2.设置参数

当勾选面部修复、高分辨率修复后,下面一些参数自动就会生成,无需再一一设置

alt
3. 生成结果

跟本地部署的生成的相比果然清楚好多,侧面说明我们还不太会使用

alt

4.启动参数

4.1 配置参数

-h, --help:显示帮助信息并退出。

--exit:安装后立即终止。

--data-dir:指定存储所有用户数据的基本路径,默认为"./"

--config:用于构建模型的配置文件路径,默认为 "configs/stable-diffusion/v1-inference.yaml"

--ckpt:稳定扩散模型的检查点路径;如果指定,该检查点将被添加到检查点列表并加载。

--ckpt-dir:稳定扩散检查点的目录路径。

--no-download-sd-model:即使没有找到模型,也不下载SD1.5模型。

--vae-dir:变分自编码器模型的路径。

--gfpgan-dir:GFPGAN目录。

--gfpgan-model:GFPGAN模型文件名。

--codeformer-models-path:Codeformer模型文件的目录路径。

--gfpgan-models-path:GFPGAN模型文件的目录路径。

--esrgan-models-path:ESRGAN模型文件的目录路径。

--bsrgan-models-path:BSRGAN模型文件的目录路径。

--realesrgan-models-path:RealESRGAN模型文件的目录路径。

--scunet-models-path:ScuNET模型文件的目录路径。

--swinir-models-path:SwinIR和SwinIR v2模型文件的目录路径。

--ldsr-models-path:LDSR模型文件的目录路径。

--lora-dir:Lora网络的目录路径。

--clip-models-path:CLIP模型文件的目录路径。

--embeddings-dir:用于文本逆向的嵌入目录,默认为 "embeddings"

--textual-inversion-templates-dir:文本逆向模板的目录。

--hypernetwork-dir:超网络目录。

--localizations-dir:本地化目录。

--styles-file:用于样式的文件名,默认为 "styles.csv"

--ui-config-file:用于UI配置的文件名,默认为 "ui-config.json"

--no-progressbar-hiding:不隐藏Gradio UI中的进度条(默认隐藏,因为在浏览器中使用硬件加速会降低机器学习速度)。

--max-batch-count:UI的最大批次计数值,默认为16。

--ui-settings-file:用于UI设置的文件名,默认为 "config.json"

--allow-code:允许从Web UI执行自定义脚本。

--share:使用Gradio的share=True,并使UI通过其网站访问(对我来说不起作用,但您可能会更幸运)。

--listen:使用0.0.0.0作为服务器名称启动Gradio,允许响应网络请求。

--port:使用给定的服务器端口启动Gradio,需要根/管理员权限才能使用1024以下的端口,默认为7860(如果可用)。 34. --hide-ui-dir-config:从Web UI中隐藏目录配置。

--freeze-settings:禁用编辑设置。

--enable-insecure-extension-access:无论其他选项如何,都启用扩展选项卡。

--gradio-debug:使用--debug选项启动Gradio。

--gradio-auth:设置Gradio身份验证,如 "username:password";或逗号分隔多个,如 "u1:p1,u2:p2,u3:p3"

--gradio-auth-path:设置Gradio身份验证文件路径,例如 "/path/to/auth/file",与--gradio-auth的格式相同。

--disable-console-progressbars:不在控制台输出进度条。

--enable-console-prompts:在使用txt2img和img2img生成时,在控制台打印提示。

--api:使用API启动Web UI。

--api-auth:设置API身份验证,如 "username:password";或逗号分隔多个,如 "u1:p1,u2:p2,u3:p3"

--api-log:启用所有API请求的日志记录。

--nowebui:仅启动API,不启动UI。

--ui-debug-mode:不加载模型以快速启动UI。

--device-id:选择要使用的默认CUDA设备(可能需要在此之前设置CUDA_VISIBLE_DEVICES=0,1等环境变量)。

--administrator:管理员权限。

--cors-allow-origins:以逗号分隔的列表形式允许的CORS来源(无空格)。

--cors-allow-origins-regex:以单个正则表达式的形式允许的CORS来源。

--tls-keyfile:部分启用TLS,需要--tls-certfile才能完全生效。

--tls-certfile:部分启用TLS,需要--tls-keyfile才能完全生效。

--server-name:设置服务器主机名。

--gradio-queue:使用Gradio队列;实验性选项;破坏重新启动UI按钮。

--skip-version-check:不检查torch和xformers的版本。

--no-hashing:禁用检查点的sha256哈希,以提高加载性能。

4.2 通用参数

--autolaunch:在启动时使用系统的默认浏览器打开WebUI URL。

--theme:在WebUI中使用指定的主题(“light”或“dark”)。如果未指定,则使用浏览器的默认主题。

--use-textbox-seed:在UI中使用文本框输入种子(没有上/下箭头,但可以输入长种子)。

--disable-safe-unpickle:禁用对PyTorch模型的恶意代码检查。

--ngrok:用于ngrok的自动令牌,是gradio --share的替代方案。

--ngrok-region:ngrok应该在其中启动的区域。

4.3 性能参数


--xformers:启用xformers以加速跨注意层。

--reinstall-xformers:强制重新安装xformers。在升级后使用,但升级后请移除,否则将一直重装xformers。

--force-enable-xformers:无论检查代码是否认为可以运行,都强制启用xformers的跨注意层;如果运行失败,请勿提交错误报告。

--opt-split-attention:强制启用Doggettx的跨注意层优化。默认情况下,对于启用CUDA的系统,此选项已开启。

--opt-split-attention-invokeai:强制启用InvokeAI的跨注意层优化。默认情况下,当CUDA不可用时,此选项已开启。

--opt-split-attention-v1:启用旧版本的分割注意力优化,该版本不会消耗所有可用的显存。

--opt-sub-quad-attention:启用内存高效的子二次交叉注意力层优化。

--sub-quad-q-chunk-size:子二次交叉注意力层优化使用的查询块大小。

--sub-quad-kv-chunk-size:子二次交叉注意力层优化使用的kv块大小。

--sub-quad-chunk-threshold:子二次交叉注意力层优化使用的显存使用率阈值。

--opt-channelslast:为4d张量启用备选布局,仅在具有Tensor核心的Nvidia显卡(16xx及更高版本)上可能导致更快的推理。

--disable-opt-split-attention:强制禁用跨注意层优化。

--disable-nan-check:不检查生成的图像/潜在空间是否包含nan值;在持续集成中运行时无需检查点。

--use-cpu:对指定模块使用CPU作为torch设备。

--no-half:不将模型切换为16位浮点数。

--precision:以此精度进行评估。

--no-half-vae:不将VAE模型切换为16位浮点数。

--upcast-sampling:向上采样。与 --no-half 无效。通常产生与 --no-half 类似的结果,但在使用较少内存的情况下性能更好。

--medvram:启用稳定扩散模型优化,牺牲一点速度以减少显存使用。

--lowvram:启用稳定扩散模型优化,牺牲大量速度以极低的显存使用。

--lowram:将稳定扩散检查点权重加载到显存而非RAM。

--always-batch-cond-uncond:禁用使用 --medvram 或 --lowvram 时为节省内存而启用的条件/无条件批处理。

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Xilinx FPGA SPIx4 配置速度50M约束语句(Vivado开发环境)

qspi_50m.xdc文件&#xff1a; set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] set_property CONFIG_VOLTAGE 3.3 [curren…

【Unity细节】Json序列化时出现:An item with the same key has already been added. Key:

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

【Unity细节】如何让组件失活而不是物体失活

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

揭秘!2024年热门的图标设计工具

在这个瞬息万变的世界里&#xff0c;设计师们对创新和实用的工具的渴望日益热切。我们需要时刻紧跟潮流&#xff0c;发掘和尝试最新&#xff0c;最有价值的图标设计工具&#xff0c;才能在剧烈的市场竞争中引人注目。以下是我们细心挑选的2024年图标设计工具的热门推荐&#xf…

OpenAI开发者大会掀起风暴:GPT模型价格狂降50%,应用商店即将亮相,AI技术将引爆全球!

OpenAI首届开发者大会召开了&#xff01; 关键信息&#xff1a; GPT-4升级版GPT-4 Turbo来了&#xff0c;上下文窗口达到128k&#xff0c;为GPT-4的4倍&#xff1b;OpenAI还降低了几乎所有模型的API使用价格&#xff0c;整体便宜了一半多&#xff1b;GPT-4系列的多模态能力向B…

2023年11月PHP测试覆盖率解决方案

【题记&#xff1a;最近进行了ExcelBDD PHP版的开发&#xff0c;查阅了大量资料&#xff0c;发现PHP测试覆盖率解决方案存在不同的历史版本&#xff0c;让我花费了蛮多时间&#xff0c;为了避免后人浪费时间&#xff0c;整理本文&#xff0c;而且网上没有给出Azure DevOps里面P…

ElementUI之el-progress动态修改进度条里面文本颜色与进度条色块统一

1.效果&#xff1a; 2.实现方式 通过行内style样式动态给整个progress赋颜色 再在样式里给进度条文字单独设置颜色为默认继承父级颜色就ok啦 <el-progress class"custom-progress" stroke-linecap"square" :style"{color:item.color}" :colo…

cpu 支持内存带宽与内存最大长度的关系《鸟哥的 Linux 私房菜》

鸟哥的 Linux 私房菜 -- 计算机概论 -- 計算机&#xff1a;辅助人脑的好工具 同理&#xff0c;64 位 cpu 一次接受内存传递的 64bit 数据&#xff0c;内存字节地址用 64 位记录&#xff0c;最多能记录2^64个字节2^64Bytes2^34GB17179869184GB2^24TB&#xff0c;理论上&#xff…

使用 AIGC ,ChatGPT 快速合并Excel工作薄

职场数据处理&#xff0c;数据分析汇报与统计的过程中&#xff0c;经常会遇到这样的一个问题那就是需要统计的数据源在多个文件中&#xff0c;多个工作薄中&#xff0c;如果要进行数据处理&#xff0c;汇总的时候会很不方便 例如&#xff1a; 如果要汇总6个月的数据可能就得需…

CSS实现透明度效果的两种方法—— opacity 和 rgba()

在实际开发过程中&#xff0c;为了给用户呈现一些效果&#xff0c;我们需要控制元素的透明度。CSS 提供了 opacity 属性和 rgba() 函数给我们控制透明度&#xff0c;接下来通过一个例子来感受一下两种方法的区别。 <style>.transparentBox {display: inline-block;width…

文生图模型评测之PickScore

文章目录 1. 简介2. 构建数据集2.1 Pick-a-Pic web App2.2 Pick-a-Pic Dataset3. PickScore3.1.1模型结构和损失函数3.2 模型训练3.3 验证模型4. 作用4.1 作为验证模型的验证集4.2 用于模型选择5. 小结论文链接:Pick-a-Pic: An Open Dataset of User Preferences for Text-to-…

LinuxMySql

结构化查询语言 DDL&#xff08;数据定义语言&#xff09; 删除数据库drop database DbName; 创建数据库create database DbName; 使用数据库use DbName; 查看创建数据库语句以及字符编码show create database 43th; 修改数据库属性&#xff08;字符编码改为gbk&#xff09;…

Python教程之字典(Dictionary)操作详解

文章目录 前言一、创建字典二、访问字典里的值三、访问字典里的值四、删除字典元素五、字典键的特性六、字典内置函数&方法七、字典练习代码关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Py…

docker---dockerfile相关知识

第 3 章 Docker 高级实践 在这一部分我们主要来介绍一些Docker的高级内容&#xff1a; Dockerfile 和 Docker compose 3.1 Dockerfile Dockerfile我们从下面的几个方面来介绍&#xff1a; Dockerfile简介 Dockerfile快速入门 Dockerfile详解 Dockerfile简单 实践 3.1.1 Docke…

JavaEE平台技术——预备知识(Maven、Docker)

JavaEE平台技术——预备知识&#xff08;Maven、Docker&#xff09; 1. Maven2. Docker 在观看这个之前&#xff0c;大家请查阅前序内容。 &#x1f600;JavaEE的渊源 &#x1f600;&#x1f600;JavaEE平台技术——预备知识&#xff08;Web、Sevlet、Tomcat&#xff09; 1. M…

Canal

canal译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费。 1.canal 工作原理 canal 模拟 MySQL slave 的交互协议&#xff0c;伪装自己为 MySQL slave &#xff0c;向 MySQL master 发送dump 协议MySQL master 收到…

mac 安装 selenium + chrome driver

前言 使用 selenium 模拟浏览器渲染数据&#xff0c;需要依赖各浏览器的驱动才能完成&#xff0c;因此需要单独安装chrome driver 查看本地 chrome 浏览器的版本 可以看到我这里已经是 arm 架构下最新的版本了 下载对应的 chrome driver 访问下面的地址&#xff1a; Chrome…

Redis7--基础篇2(Redis的十大数据类型及常用命令)

1. Redis的十大数据类型及常用命令 Redis是key-value键值对类型的数据库&#xff0c;我们所说的数据类型指的是value的数据类型&#xff0c;key的数据类型都是字符串。 1.1 字符串&#xff08;String&#xff09; string是redis最基本的类型&#xff0c;一个key对应一个val…

easyscholar配置秘钥连接Zotero-style,更方便的了解文献!

如果你不知道什么是easyScholar,以及怎么安装easyScholar? 请参见文章 easyScholar 一、easyscholar配置秘钥 1.首先打开easyscholar插件&#xff0c;并登录 2.点击自定义数据集 3.依次点击 用户信息-开放接口 4.点击刷新 5.在Zoter中 编辑-首选项-高级-编辑器 6.点击…

[C]环境(0/0)→ 环境配置

这里写目录标题 0x00 额环境下载解压 0x00 额 写了那么多C的入门&#xff0c;就是没写C语言的环境配置&#xff0c;乘此机会写了吧。 环境下载 直接在我这下载就好了&#xff0c;毕竟用了挺久没啥问题的 C语言环境&#xff08;gcc version 8.1.0&#xff09; 解压 最后得到…