当前位置: 首页 > wzjs >正文

舆情系统是什么seo手机端排名软件

舆情系统是什么,seo手机端排名软件,免费招聘模板下载,上海网店代运营外包【C#深度学习之路】如何使用C#实现Stable Diffusion的文生图功能 项目背景项目实现写在最后项目下载链接 本文为原创文章,若需要转载,请注明出处。 原文地址:https://blog.csdn.net/qq_30270773/article/details/147002073 项目对应的Github地…

【C#深度学习之路】如何使用C#实现Stable Diffusion的文生图功能

  • 项目背景
  • 项目实现
  • 写在最后
  • 项目下载链接

本文为原创文章,若需要转载,请注明出处。
原文地址:https://blog.csdn.net/qq_30270773/article/details/147002073
项目对应的Github地址:https://github.com/IntptrMax/StableDiffusionSharp
项目打包的Nuget地址:https://github.com/IntptrMax/StableDiffusionSharp
C#深度学习之路专栏地址:https://blog.csdn.net/qq_30270773/category_12829217.html
关注我的Github,可以获取更多资料,请为你感兴趣的项目送上一颗小星星:https://github.com/IntptrMax

另外本人已经在多平台上发现了不做任何修改直接照抄就发布我的文章的盗版行为,还将我的开源免费资源当成付费资源发布的行为,对此表示强烈的不满。这种“盗窃知识”的行为严重损害了开源项目作者的个人利益以及开源共享精神。

项目背景

本人已经在Github及CSDN上连续发布了C#训练和推理主流的Yolo版本的代码,受到了很多小伙伴的关注。由于YoloSharp的基本功能已经完成,本人对Stable Diffusion又比较感兴趣,所以开始了StableDiffusionSharp的开发。本文并不主要讲StableDiffusionSharp代码,而是先做个基本功能演示,代码会另外再讲解。
如果该资料对你有帮助,请在我的Github上送我一颗小星星。该项目的Github链接为https://github.com/IntptrMax/StableDiffusionSharp

项目实现

本文主要借助了本人开发的StableDiffusionSharp,该包已经发布到了Nuget上,所以直接拉取就可以用了。另外还需要环境依赖项,这个依赖项也需要再Nuget上拉取。
Nuget上拉取支持包
拉取完成后,就可以调用了。为了更直观,本文使用了Winform作为演示。需要使用.Net 8.0以上的环境支持。如果想要使用低版本的.net,请自行修改StableDiffusionSharp源码编译。

作为演示,主界面绘制得较为简单。

在这里插入图片描述

主要功能集中在Load Model 和 Generate两个按钮中。所有的功能代码均贴在下面了。其中Sd_StepProgress这个事件可以看到正在进行的步数和去噪的图像效果。

using StableDiffusionSharp;
using System.Diagnostics;namespace StableDiffusionDemo_Winform
{public partial class FormMain : Form{string modelPath = string.Empty;string vaeModelPath = string.Empty;StableDiffusionSharp.StableDiffusion sd;public FormMain(){InitializeComponent();}private void FormMain_Load(object sender, EventArgs e){ComboBox_Device.SelectedIndex = 0;ComboBox_Precition.SelectedIndex = 0;}private void Button_ModelScan_Click(object sender, EventArgs e){FileDialog fileDialog = new OpenFileDialog();fileDialog.Filter = "Model files|*.safetensors;*.ckpt;*.pt;*.pth|All files|*.*";if (fileDialog.ShowDialog() == DialogResult.OK){TextBox_ModelPath.Text = fileDialog.FileName;modelPath = fileDialog.FileName;}}private void Button_ModelLoad_Click(object sender, EventArgs e){if (File.Exists(modelPath)){SDDeviceType deviceType = ComboBox_Device.SelectedIndex == 0 ? SDDeviceType.CUDA : SDDeviceType.CPU;SDScalarType scalarType = ComboBox_Precition.SelectedIndex == 0 ? SDScalarType.Float16 : SDScalarType.Float32;Task.Run(() =>{base.Invoke(() => Button_ModelLoad.Enabled = false);sd = new StableDiffusionSharp.StableDiffusion(deviceType, scalarType);sd.StepProgress += Sd_StepProgress;sd.LoadModel(modelPath, vaeModelPath);base.Invoke(() =>{Button_ModelLoad.Enabled = true;Button_Generate.Enabled = true;Label_State.Text = "Model loaded.";});});}}private void Button_VAEModelScan_Click(object sender, EventArgs e){FileDialog fileDialog = new OpenFileDialog();fileDialog.Filter = "Model files|*.safetensors;*.ckpt;*.pt;*.pth|All files|*.*";if (fileDialog.ShowDialog() == DialogResult.OK){TextBox_VaePath.Text = fileDialog.FileName;vaeModelPath = fileDialog.FileName;}}private void Sd_StepProgress(object? sender, StableDiffusionSharp.StableDiffusion.StepEventArgs e){base.Invoke(() =>{Label_State.Text = $"Progress: {e.CurrentStep}/{e.TotalSteps}";if (e.VaeApproxImg != null){MemoryStream memoryStream = new MemoryStream();e.VaeApproxImg.Write(memoryStream, ImageMagick.MagickFormat.Jpg);base.Invoke(() =>{PictureBox_Output.Image = Image.FromStream(memoryStream);});}});}private void Button_Generate_Click(object sender, EventArgs e){string prompt = TextBox_Prompt.Text;string nprompt = TextBox_NPrompt.Text;int step = (int)NumericUpDown_Step.Value;float cfg = (float)NumericUpDown_CFG.Value;long seed = 0;int width = (int)NumericUpDown_Width.Value;int height = (int)NumericUpDown_Height.Value;int clipSkip = (int)NumericUpDown_ClipSkip.Value;Task.Run(() =>{Stopwatch stopwatch = Stopwatch.StartNew();base.Invoke(() =>{Button_ModelLoad.Enabled = false;Button_Generate.Enabled = false;Label_State.Text = "Generating...";});ImageMagick.MagickImage image = sd.TextToImage(prompt, nprompt, clipSkip, width, height, step, seed, cfg);MemoryStream memoryStream = new MemoryStream();image.Write(memoryStream, ImageMagick.MagickFormat.Jpg);base.Invoke(() =>{PictureBox_Output.Image = Image.FromStream(memoryStream);Button_ModelLoad.Enabled = true;Button_Generate.Enabled = true;Label_State.Text = $"Done. It takes {stopwatch.Elapsed.TotalSeconds.ToString("f2")} s";});GC.Collect();});}}
}

写在最后

使用C#深度学习项目是很多人所希望的。不过在该方向上资料很少,开发难度大。常规使用C#进行深度学习项目的方法为使用Python训练,转为Onnx模型再用C#调用。
目前我希望能够改变这一现象,希望能用纯C#平台进行训练和推理。这条路还很长,也很困难,希望有兴趣的读者能跟我一起让让C#的深度学习开发环境更为完善,以此能帮助到更多的人。

另外随着项目的关注度增多,已经开始有人盗版我的项目并将免费开源的项目当成付费项目在卖了。这种行为极其恶劣,请各位小伙伴积极抵制这种行为,还开源项目一片干净的环境,也让开源项目开发者有动力继续贡献更多的项目。

我在Github上已经将完整的代码发布了,项目地址为:https://github.com/IntptrMax/StableDiffusionSharp,期待你能在Github上送我一颗小星星。在我的Github里还GGMLSharp这个项目,这个项目也是C#平台下深度学习的开发包,希望能得到你的支持。

项目下载链接

https://download.csdn.net/download/qq_30270773/90566451

http://www.dtcms.com/wzjs/311048.html

相关文章:

  • 网站开发日常工作营销培训课程
  • 做h5网站的公司新闻发布最新新闻
  • 方维网站后台提示验证码错误计算机培训机构
  • 云南省交通投资建设集团有限公司网站精准营销的成功案例
  • php 做网站xml地图宁波seo搜索引擎优化公司
  • 生活中优秀的产品设计seo整站优化报价
  • 海淀地区网站建设阿里巴巴关键词排名优化
  • 做纸箱在什么网站找客户百度获客平台
  • 三线城市做网站需求友情链接交换要注意哪些问题
  • 濮阳做网站的公司常州百度关键词优化
  • 网站建设供需福州关键词排名优化
  • 信誉好的东莞网站建设万网官网首页
  • c 网站做微信收款功能品牌seo推广咨询
  • 站点与网站有什么区别鄞州seo整站优化服务
  • 网站产品要如何做详情中国十大电商公司排名
  • 免费新建网站网络宣传渠道有哪些
  • linux网站建设2345网址导航设置
  • 美国做汽车配件的网站网站要怎么创建
  • 你买域名我送网站南昌seo排名优化
  • 深圳福田保税区seo代码优化包括哪些
  • 张掖高端网站建设公司百度图像搜索
  • 山东川畅科技做网站多少钱广告优化师的工作内容
  • 大连 响应式网站制作长沙seo关键词排名优化
  • 软件开发和网站开发什么是优化师
  • 免费网站模板带后台网站收录是什么意思
  • index.html网站怎么做电商平台网站
  • 网站安全建设模板青岛网站设计
  • 个网站做淘宝客推广可以吗seo排名优化公司价格
  • 域名做网站成都网络营销搜索推广
  • 外贸商城网站建设搜索引擎营销的特点是