AI 绘图早已不是设计师的专属工具。今天,一个电商后台可以自动生成上千张产品图,一个 CMS 系统能为每篇博客配图,一个工业软件能根据设备参数渲染 3D 示意图——这些能力背后,不再是昂贵的外包或复杂的 Photoshop 脚本,而是一段十几行的 C# 代码。

关键变化在于:国产大模型的崛起,让图像生成真正“可用、可控、可集成”。通义万相、腾讯混元、百度文心一言等平台,不仅支持中文提示词、响应速度快、价格透明,还提供了标准 REST API,与 .NET 生态天然契合。开发者无需懂 Stable Diffusion 部署,也不用科学&上网调海外服务,用熟悉的 HTTP 客户端就能接入高质量图像生成能力。


.NET 里怎么接?三类方案,按需选择

目前主流有三种集成方式,各有适用场景:

第一类:调用国产大模型 API(推荐大多数场景)
通义万相(阿里)、混元(腾讯)、文心一言(百度)都开放了标准 HTTP 接口,用 HttpClient 即可调用。优势是:无需 GPU、免运维、按量付费,且中文理解强。比如“水墨风山水画,留白多”,通义万相比英文模型更懂“留白”意味着什么。

第二类:本地部署开源模型(适合数据敏感场景)
如 Stable Diffusion WebUI + ONNX Runtime,可部署在企业内网服务器。优势是数据不出域,但需配 GPU、调参数、做工程化封装,适合有专职算法团队的公司。

第三类:混合方案(高阶玩法)
先用 RAG(检索增强)从知识库找出相似设计稿,再交给大模型做风格迁移或细节优化——这类方案已在部分智能设计平台落地,但复杂度较高。

对绝大多数 .NET 开发者而言,第一类是最佳起点:开发快、成本低、风险小。


实战:用 .NET 调通义万相生成一张图

整个过程只需四步,无需额外 NuGet 包(标准库 HttpClient 足够):

第一步:注册阿里云账号,开通通义万相服务
在 DashScope 控制台 获取 API Key(有免费额度,够个人项目试用)。

第二步:构造请求体(JSON Payload)

var requestBody = new
{
    model = "qwen-image-plus",
    input = new
    {
        messages = new[]
        {
            new
            {
                role = "user",
                content = new[]
                {
                    new { text = "一副典雅庄重的对联悬挂于厅堂之中,房间是个安静古典的中式布置……" }
                }
            }
        }
    },
    parameters = new
    {
        negative_prompt = "",
        prompt_extend = true,
        watermark = false,
        size = "1328*1328"
    }
};

string json = JsonSerializer.Serialize(requestBody);
var content = new StringContent(json, Encoding.UTF8, "application/json");

第三步:发起调用并解析结果

// 🔧 关键修正:URL 末尾不能有空格!
conststring API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation";

usingvar client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
client.DefaultRequestHeaders.Add("Content-Type", "application/json");

var response = await client.PostAsync(API_URL, content);

// 检查响应
if (!response.IsSuccessStatusCode)
{
    var error = await response.Content.ReadAsStringAsync();
    thrownew Exception($"请求失败 ({response.StatusCode}): {error}");
}

第四步:下载并保存图片

var responseText = await response.Content.ReadAsStringAsync();
using var doc = JsonDocument.Parse(responseText);

// 提取 output.results[0].url
var url = doc.RootElement
    .GetProperty("output")
    .GetProperty("results")[0]
    .GetProperty("url")
    .GetString();

Console.WriteLine($"✅ 图片生成成功:{url}");
// 输出示例:https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx.png?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx

全程不到 30 行代码,就能生成一张高清图。整个过程无需 Base64 解码、无需复杂错误处理——通义万相直接返回 CDN 图片链接,比 OpenAI 的 Base64 更友好。(代码仅供参考,详情请看API说明文档)

效果图:

图片

API地址:bailian.console.aliyun.com/?spm=5176.29597918.J_SEsSjsNv72yRuRFS2VknO.2.3b007b08qTqa5X&tab=api#/api/?type=model&url=2975126

不能踩的坑:经验之谈

  • 提示词(Prompt)要具体
    “好看的设计” → 失败;
    “深蓝色渐变背景,左上角放公司 Logo,中间白色大字‘开工大吉’,底部金色祥云纹样” → 成功。

  • 尺寸别贪大
    1024×1024 对多数场景已足够;2048×2048 不仅贵一倍,还可能触发 CDN 限流。

  • 务必加缓存
    同一提示词生成的图,结果高度一致。建议用 MD5(prompt + size) 做 Key,缓存到 Redis 或本地文件,避免重复调用。

  • 前端别直接调 API
    API Key 必须由后端保管。前端只传描述,后端校验、限流、记日志后再转发请求。

  • 留好兜底方案
    AI 服务可能临时不可用。可预存几套默认图,或返回“生成中,请稍候”,别让用户看到错误页。


结语:技术已就绪,就差一次尝试

图像生成不再是“炫技玩具”,而是提升生产力的基础设施。对 .NET 开发者而言,门槛已经降到最低:

  • 不需要学 Python;

  • 不需要买显卡;

  • 不需要研究扩散模型原理;

  • 只需会写 HTTP 请求,就能让应用拥有“画图”能力。

国产大模型的成熟,恰恰给了我们一次“弯道并行”的机会——不必追赶海外技术栈,直接基于通义万相、混元等平台,构建属于自己的智能应用。

下一步,不妨从一个小需求开始:比如给内部 Wiki 加个“自动生成概念图”按钮。你会发现,AI 离生产环境,真的只差一次 HttpClient.PostAsync

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐