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

C# danbooru Stable Diffusion 提示词反推 Onnx Demo

目录

说明

效果

模型信息

项目

代码

下载 


C# danbooru Stable Diffusion 提示词反推 Onnx Demo

说明

模型下载地址:https://huggingface.co/deepghs/ml-danbooru-onnx

效果

模型信息

Model Properties
-------------------------
---------------------------------------------------------------

Inputs
-------------------------
name:input
tensor:Float[-1, 3, -1, -1]
---------------------------------------------------------------

Outputs
-------------------------
name:output
tensor:Float[-1, 12547]
--------------------------------------------------------------- 

项目

代码

using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace Onnx_Demo
{public partial class Form1 : Form{public Form1(){InitializeComponent();}string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";string image_path = "";DateTime dt1 = DateTime.Now;DateTime dt2 = DateTime.Now;string model_path;Mat image;SessionOptions options;InferenceSession onnx_session;Tensor<float> input_tensor;List<NamedOnnxValue> input_container;IDisposableReadOnlyCollection<DisposableNamedOnnxValue> result_infer;DisposableNamedOnnxValue[] results_onnxvalue;Tensor<float> result_tensors;StringBuilder sb = new StringBuilder();public string[] class_names;private void button1_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = fileFilter;if (ofd.ShowDialog() != DialogResult.OK) return;pictureBox1.Image = null;image_path = ofd.FileName;pictureBox1.Image = new Bitmap(image_path);textBox1.Text = "";image = new Mat(image_path);}private void button2_Click(object sender, EventArgs e){if (image_path == ""){return;}button2.Enabled = false;textBox1.Text = "";sb.Clear();Application.DoEvents();image = new Mat(image_path);// 将图片转为RGB通道Cv2.CvtColor(image, image, ColorConversionCodes.BGR2RGB);// 输入Tensorinput_tensor = new DenseTensor<float>(new[] { 1, 3, image.Height, image.Width });// 输入Tensorfor (int y = 0; y < image.Height; y++){for (int x = 0; x < image.Width; x++){input_tensor[0, 0, y, x] = image.At<Vec3b>(y, x)[0] / 255f;input_tensor[0, 1, y, x] = image.At<Vec3b>(y, x)[1] / 255f;input_tensor[0, 2, y, x] = image.At<Vec3b>(y, x)[2] / 255f;}}//将 input_tensor 放入一个输入参数的容器,并指定名称input_container.Add(NamedOnnxValue.CreateFromTensor("input", input_tensor));dt1 = DateTime.Now;//运行 Inference 并获取结果result_infer = onnx_session.Run(input_container);dt2 = DateTime.Now;// 将输出结果转为DisposableNamedOnnxValue数组results_onnxvalue = result_infer.ToArray();// 读取第一个节点输出并转为Tensor数据result_tensors = results_onnxvalue[0].AsTensor<float>();var result_array = result_tensors.ToArray();double[] scores = new double[result_array.Length];for (int i = 0; i < result_array.Length; i++){double score = 1 / (1 + Math.Exp(result_array[i] * -1));scores[i] = score;}List<ScoreIndex> ltResult = new List<ScoreIndex>();ScoreIndex temp;for (int i = 0; i < scores.Length; i++){temp = new ScoreIndex(i, scores[i]);ltResult.Add(temp);}//根据分数倒序排序,取前10个var SortedByScore = ltResult.OrderByDescending(p => p.Score).ToList().Take(10);foreach (var item in SortedByScore){sb.Append(class_names[item.Index] + ",");}sb.Length--; // 将长度减1来移除最后一个字符sb.AppendLine("");sb.AppendLine("------------------");// 只取分数最高的// float max = result_array.Max();// int maxIndex = Array.IndexOf(result_array, max);// sb.AppendLine(class_names[maxIndex]+" "+ max.ToString("P2"));sb.AppendLine("推理耗时:" + (dt2 - dt1).TotalMilliseconds + "ms");textBox1.Text = sb.ToString();button2.Enabled = true;}private void Form1_Load(object sender, EventArgs e){model_path = "model/ml_danbooru.onnx";// 创建输出会话,用于输出模型读取信息options = new SessionOptions();options.LogSeverityLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_INFO;options.AppendExecutionProvider_CPU(0);// 设置为CPU上运行// 创建推理模型类,读取本地模型文件onnx_session = new InferenceSession(model_path, options);//model_path 为onnx模型文件的路径// 创建输入容器input_container = new List<NamedOnnxValue>();image_path = "test_img/2.jpg";pictureBox1.Image = new Bitmap(image_path);image = new Mat(image_path);List<string> str = new List<string>();StreamReader sr = new StreamReader("model/lable.txt");string line;while ((line = sr.ReadLine()) != null){str.Add(line);}class_names = str.ToArray();}}
}

下载 

源码下载

相关文章:

C# danbooru Stable Diffusion 提示词反推 Onnx Demo

目录 说明 效果 模型信息 项目 代码 下载 C# danbooru Stable Diffusion 提示词反推 Onnx Demo 说明 模型下载地址&#xff1a;https://huggingface.co/deepghs/ml-danbooru-onnx 效果 模型信息 Model Properties ------------------------- ----------------------…...

Windows系统搭建Cloudreve结合内网穿透打造可公网访问的私有云盘

目录 ⛳️推荐 1、前言 2、本地网站搭建 2.1 环境使用 2.2 支持组件选择 2.3 网页安装 2.4 测试和使用 2.5 问题解决 3、本地网页发布 3.1 cpolar云端设置 3.2 cpolar本地设置 4、公网访问测试 5、结语 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff…...

upload-labs 0.1 靶机详解

下载地址https://github.com/c0ny1/upload-labs/releases Pass-01 他让我们上传一张图片&#xff0c;我们先尝试上传一个php文件 发现他只允许上传图片格式的文件&#xff0c;我们来看看源码 我们可以看到它使用js来限制我们可以上传的内容 但是我们的浏览器是可以关闭js功能的…...

react 综合题-旧版

一、组件基础 1. React 事件机制 javascript 复制代码<div onClick{this.handleClick.bind(this)}>点我</div> React并不是将click事件绑定到了div的真实DOM上&#xff0c;而是在document处监听了所有的事件&#xff0c;当事件发生并且冒泡到document处的时候&a…...

基于ElasticSearch存储海量AIS数据:AIS数据索引机制篇

文章目录 引言I 预备知识1.1 索引结构1.2 AIS信息项II AIS数据索引2.1 AIS数据静态数据索引2.2 AIS数据动态信息索引2.3 引入静态信息的AIS数据轨迹信息索引引言 AIS数据信息根据其不同更新频率可分为静态和动态信息。索引结构设计包含了静态、动态和轨迹信息索引。同时,为了…...

IDEA中返回上一步和下一步快捷键失效【Ctrl+Alt+左箭头】

原因与解决方法 快捷键失效的缘故&#xff0c;和其它软件的快捷键冲突。方法:改变快捷键。如果不知道哪个软件影响的&#xff0c;一个一个关闭软件&#xff0c;然后再去IDEA中尝试快捷键是否生效。 【提示&#xff1a;我的是QQ音乐软件打开影响的】...

Hubspot 2023年推荐使用的11个AI视频生成器

视频是任何营销活动不可或缺的一部分&#xff1b;然而&#xff0c;如果你不懂编辑或时间紧迫&#xff0c;它们可能会很乏味&#xff0c;很难创建。一只手从电脑里伸出来&#xff0c;拳头碰到另一只手&#xff1b;代表AI视频生成器。 幸运的是&#xff0c;你可以利用许多人工智能…...

Python 导入Excel三维坐标数据 生成三维曲面地形图(体) 5-2、线条平滑曲面且可通过面观察柱体变化(二)

环境和包: 环境 python:python-3.12.0-amd64包: matplotlib 3.8.2 pandas 2.1.4 openpyxl 3.1.2 scipy 1.12.0 代码: import pandas as pd import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.interpolate import griddata fro…...

[2024年]-flink面试真题(四)

(上海) Flink与Spark有什么主要区别&#xff1f;(上海) 关于Flink的流处理和批处理&#xff0c;你了解多少&#xff1f;(上海) 你能解释一下Flink的架构吗&#xff1f;(上海) Flink是如何处理事件时间&#xff08;Event Time&#xff09;和处理时间&#xff08;Processing Time…...

基于SpringBoot+Druid实现多数据源:原生注解式

前言 本博客姊妹篇 基于SpringBootDruid实现多数据源&#xff1a;原生注解式基于SpringBootDruid实现多数据源&#xff1a;注解编程式基于SpringBootDruid实现多数据源&#xff1a;baomidou多数据源 一、功能描述 配置方式&#xff1a;配置文件中实现多数据源&#xff0c;非…...

AJAX 03 XMLHttpRequest、Promise、封装简易版 axios

AJAX 学习 AJAX 3 原理01 XMLHttpRequest① XHR 定义② XHR & axios 关系③ 使用 XHR④ XHR查询参数案例&#xff1a;地区查询&#xff08;URLSearchParams&#xff09;⑤ XHR数据提交 POST 02 PromisePromise 使用Promise - 三种状态案例&#xff1a;使用Promise XHR 获取…...

如何将办公资料文件生成二维码?扫码可看详情

日常办公的时候&#xff0c;经常会需要应用二维码来向同事或者客户发送和展示一些资料。比如包含企业介绍和产品介绍的资料、一些操作流程的资料、产品展示宣传视频、活动安排详情、比赛流程、会议资料… 这些都能通过一个文件二维码来展示。 文件二维码支持将PDF文件生成二维…...

【Streamlit学习笔记】实现包含多个sheet的excel文件下载

1、什么是Streamlit Streamlit是一个免费的开源框架&#xff0c;用于快速构建和共享漂亮的机器学习和数据科学Web应用程序&#xff0c;官网链接 Streamlit Streamlit API链接 API reference 实际项目中遇到的问题&#xff1a;包含多个sheet的excel文件下载&#xff0c;下面将给…...

[Redis]——主从同步原理(全量同步、增量同步)

目录 Redis集群&#xff1a; 主从同步原理&#xff1a; replid和offset: 全量同步和增量同步&#xff1a; repl_baklog文件&#xff1a; 主从集群的优化&#xff1a; Redis集群&#xff1a; 部署多台Redis我们称之为Redis集群&#xff0c;他有一个主节点(负责写操作)&…...

Buildroot 之二 详解构建架构、流程、external tree、示例

构建系统 Buildroot 中的构建系统使用的是从 Linux Kernel(4.17-rc2) 中移植的 Kconfig(配置) + Makefile & Kbuild(编译)这套构建系统,移植后的源码位于 support/kconfig/ 目录下。Buildroot 本身是一个构建系统,与直接编译源码不同,因此,它对这套系统进行了比较…...

牛客小白月赛61-C-小喵觅食

很经典的bfs,就是从猫咪和MM的坐标开始bfs搜索 不过这题有些小细节需要注意 1.认真审题,注意,猫一旦闻到小鱼干的味道,开始动,此时MM就不动了,一开始没仔细审题,很不好的习惯 2.注意移动的条件,vis,不是墙,距离是MM的移动距离范围内 3.这个猫咪的r2是闻味道的r2,不是移动距…...

200 名专家编写报告:AI 发展可能对人类构成「灭绝级威胁」

3 月 14 日消息&#xff0c;美国国务院委托编写了一份新报告&#xff0c;警告 AI 正呈指数级发展&#xff0c;可能会对人类构成「灭绝级威胁」。 这份报告全称为《提高先进人工智能安全保障的行动计划》&#xff0c;要求美国政府必须迅速、果断地采取行动&#xff0c;以避免 A…...

学习Android的第二十九天

目录 Android Service 与 Activity 通讯 范例 Android Service Alarm 定时广播 Alarm Alarm 使用流程 范例 Android IBinder Binder 为什么是 Binder ? Android Service 与 Activity 通讯 Activity 与 Service 通信的媒介就是 Service 中的 onBind() 方法&#xff0…...

SpringMVC重点记录

目录 1.学习重点2.回顾MVC3.回顾servlet4.初始SpringMVC4.1.为什么要学SpringMVC?4.2.SpringMVC的中重点DispatcherServlet4.3.SpringMVC项目的搭建4.4.MVC框架要做哪些事情?4.5.可能会遇到的问题 5.SpringMVC的执行原理6.使用注解开发SpringMVC7.Controller控制总结8.RestF…...

一条 SQL 更新语句如何执行的

Server 层 存储引擎层 总流程 查询语句 连接器 查询缓存 分析器 优化器 执行器 更新语句 redo log&#xff08;节省的是随机写磁盘的 IO 消耗&#xff08;转成顺序写&#x…...

量子Jacobi-Davidson方法:电子结构计算的高效算法

1. 量子Jacobi-Davidson方法&#xff1a;电子结构计算的新范式在量子计算领域&#xff0c;电子结构计算一直被视为最具潜力的应用方向之一。传统经典计算机在处理多体量子系统的哈密顿量对角化时&#xff0c;面临着计算复杂度随系统规模指数增长的困境。作为一名长期关注量子算…...

多模态融合与多任务学习在智慧农业视觉系统的实战应用

1. 项目概述与核心价值 在可控环境农业&#xff08;Controlled-Environment Agriculture, CEA&#xff09;里&#xff0c;比如我们熟悉的垂直农场、智能温室&#xff0c;作物生长环境是高度可控的&#xff0c;但随之而来的管理复杂度也呈指数级上升。传统上&#xff0c;一个种植…...

5分钟搞定视频号批量下载:开源工具让效率提升20倍

5分钟搞定视频号批量下载&#xff1a;开源工具让效率提升20倍 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否还在为下…...

React 性能优化:从 3 秒卡顿到 60 帧流畅,我做了这 5 件事

摘要 React 应用越做越大&#xff0c;卡顿问题越来越严重&#xff1f;本文分享 5 个亲测有效的性能优化方案&#xff0c;包括 React.memo 正确使用姿势、useMemo 依赖陷阱、虚拟列表实战、代码分割策略和 Profiler 调试技巧。每个方案都附带真实代码对比&#xff0c;帮你把页面…...

从零入门 OpenAI Codex|登录、权限、终端、记忆配置全实操

我先来简单介绍一下Codex。 Codex是 OpenAI 推出的 AI 编程模型与工具系列。Codex 最初于 2021 年作为 OpenAI API 的一部分发布&#xff0c;基于 GPT 架构专门针对代码数据进行了训练。2024 至 2025 年间&#xff0c;OpenAI 推出了独立的 Codex CLI命令行工具&#xff0c;使其…...

Midjourney V6调色板设置失效的5大隐性原因:从--sref误用到色域压缩陷阱,一文终结色彩失真

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Midjourney V6调色板设置失效的全局认知 Midjourney V6 引入了更严格的色彩语义解析机制&#xff0c;导致此前在 V5.x 中广泛使用的 --palette 参数&#xff08;如 --palette vibrant 或 --palette muted&…...

潜变量扩散模型原理解析:从宝可梦生成看LDM工程落地

1. 项目概述&#xff1a;用宝可梦讲清楚潜变量扩散模型&#xff0c;不是比喻游戏&#xff0c;是真能跑通的原理复现你有没有试过让AI画一只“皮卡丘和喷火龙杂交出来的电火属性神兽”&#xff1f;不是简单拼贴&#xff0c;而是真正理解“电系的毛发质感火系的鳞片过渡神兽级别的…...

PyTorch神经网络初始化实战:解决梯度消失、对称性陷阱与LSTM失谐

神经网络初始化看似只是模型训练前的一个“小动作”&#xff0c;但我在带团队做工业级视觉检测项目时&#xff0c;亲眼见过三次因初始化不当导致的全线返工&#xff1a;一次是产线缺陷识别模型在验证集上准确率突然掉到42%&#xff0c;查了三天才发现权重全初始化为0.1&#xf…...

工厂MES数据自动采集怎样用AI完成?资深架构师的非侵入式集成落地指南

摘要&#xff1a; 我是架构师老王。在2026年工业数字化转型的深水区&#xff0c;工厂MES数据自动采集已不再是简单的“连线接口”&#xff0c;而是演变为一场关于“感知、决策与执行”的架构革命。面对老旧系统API缺失、烟囱式架构林立以及信创环境下严苛的安全合规要求&#x…...

为开源Agent框架OpenClaw快速接入Taotoken的多模型能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为开源Agent框架OpenClaw快速接入Taotoken的多模型能力 应用场景类&#xff0c;针对使用OpenClaw等开源Agent框架的开发者&#xf…...