Python——生成AIGC图像

文章目录

一、背景介绍

二、效果图展示

三、完整代码

四、分步解释

五、实用建议

1)提示词技巧

2)性能优化

3)常见问题处理

4)扩展功能建议

六、注意事项

1. 硬件要求

2. 法律合规

3. 模型安全

一、背景介绍

AIGC(AI-Generated Content),即由人工智能生成的内容,涵盖了文本、图像、音频、视频等各种形式。通过深度学习、生成对抗网络(GAN)和扩散模型等技术,AIGC 能够生成高度逼真、具有艺术性的内容。

最初的AIGC主要集中于文本生成,如自动回复、新闻摘要等。但随着技术的进步,AIGC逐渐进入了图像、音频、视频生成等领域。尤其是近年来图像生成技术的突破,让AIGC成为了视觉内容生产的新利器,实现了从文本描述到图像生成的跨越。本文以当下最流行的Stable Diffusion深度学习模型,写一个python脚本实现AIGC图像。

二、效果图展示

三、完整代码

以下是一个使用 Stable Diffusion 模型生成图像的 Python 示例脚本,包含详细注释和解释:

# -*- coding: utf-8 -*-
"""
AIGC图像生成脚本(需要NVIDIA GPU和至少8GB显存)
使用 Hugging Face 的 diffusers 库实现
"""# 安装依赖(首次运行需要执行)
# pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
# pip install diffusers transformers accelerateimport torch
from diffusers import StableDiffusionPipeline
from datetime import datetimedef generate_image(prompt: str,                   # 生成提示词negative_prompt: str = None,   # 负面提示词save_path: str = "./outputs",  # 保存路径height: int = 512,             # 图像高度width: int = 512,              # 图像宽度steps: int = 20,               # 生成步数guidance_scale: float = 7.5,   # 提示词相关性num_images: int = 1            # 生成数量
):# 1. 创建模型管道pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",torch_dtype=torch.float16,  # 使用半精度减少显存占用safety_checker=None,        # 禁用安全检查(可生成更广泛内容)).to("cuda")# 2. 执行生成images = pipe(prompt=prompt,negative_prompt=negative_prompt,height=height,width=width,num_inference_steps=steps,guidance_scale=guidance_scale,num_images_per_prompt=num_images,).images# 3. 保存结果timestamp = datetime.now().strftime("%Y%m%d%H%M%S")for i, img in enumerate(images):filename = f"{save_path}/{timestamp}_{i}.png"img.save(filename)print(f"Saved: {filename}")return imagesif __name__ == "__main__":# 示例参数PROMPT = "A beautiful sunset over snow mountains, digital art, vibrant colors"NEGATIVE_PROMPT = "blurry, low quality, deformed"# 执行生成generated_images = generate_image(prompt=PROMPT,negative_prompt=NEGATIVE_PROMPT,steps=25,guidance_scale=8.0,num_images=2)

四、分步解释

  1. 依赖安装

    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118
    pip install diffusers transformers accelerate

  • torch:PyTorch深度学习框架

  • diffusers:Hugging Face的扩散模型库

  • transformers:自然语言处理模型

  • accelerate:分布式训练加速库

      2. 模型加载

pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",torch_dtype=torch.float16,safety_checker=None
).to("cuda")
  • 使用Hugging Face模型中心的官方Stable Diffusion v1-5版本

  • torch.float16:使用半精度浮点数,减少显存占用(需要RTX系列GPU)

  • safety_checker=None:禁用内容过滤器(允许生成更多类型内容)

     3. 核心参数说明

height=512, width=512    # 图像分辨率(推荐512x512或768x768)
num_inference_steps=20   # 生成步数(20-50,质量vs速度)
guidance_scale=7.5       # 提示词相关性(7-12,值越大越严格)
num_images_per_prompt=1  # 单次生成数量

    4. 生成过程

images = pipe(...).images
  • 实际执行文本到图像的扩散过程

  • 过程包含约20次迭代去噪步骤

  • 生成PIL格式图像列表

五、实用建议

1)提示词技巧

  • 使用英文描述(模型对英文理解更好)

  • 包含艺术风格描述(如:"digital art", "oil painting")

  • 添加质量关键词(如:"4k", "ultra detailed")

  • 示例:"A cyberpunk cityscape at night, neon lights, raining, 4k resolution, cinematic lighting"

2)性能优化

  • 降低分辨率(如:384x384)可减少显存需求

  • 设置num_images=1减少批次生成显存消耗

  • 使用torch.float16需要至少RTX 20系列显卡

3)常见问题处理

  • 显存不足:尝试减小分辨率或使用torch.float32

  • 生成速度慢:减少num_inference_steps到20以下

  • 图像质量差:增加guidance_scale到9-12之间

4)扩展功能建议

  1. 添加交互界面:

    # 可添加Gradio或Streamlit创建Web界面
    import gradio as grgr.Interface(fn=generate_image,inputs=[gr.Text(label="Prompt"),gr.Text(label="Negative Prompt"),gr.Slider(384, 768, value=512, step=64, label="Width"),gr.Slider(384, 768, value=512, step=64, label="Height")],outputs=gr.Gallery()
    ).launch()
  2. 使用新模板:

    # 更换模型名称即可使用不同版本
    "stabilityai/stable-diffusion-2-1"  # SD 2.1版本
    "stabilityai/stable-diffusion-xl-base-1.0"  # SDXL 1.0

     3. 添加高级功能:

from diffusers import ControlNetModel, StableDiffusionControlNetPipeline# 使用ControlNet添加姿势/边缘控制
controlnet = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-canny",torch_dtype=torch.float16
)
pipe = StableDiffusionControlNetPipeline(...)

六、注意事项

1. 硬件要求

  • 需要NVIDIA GPU(推荐RTX 3060 12GB以上)

  • 至少8GB显存(SDXL需要12GB以上)

  • 支持CUDA的显卡驱动

2. 法律合规

  • 遵守模型许可证(Stable Diffusion使用CreativeML Open RAIL-M)

  • 不得生成违法或侵权内容

  • 商业使用需注意版权问题

3. 模型安全

  • 不建议完全禁用safety_checker

  • 谨慎处理用户输入提示词

  • 添加内容审核机制(针对生产环境)

建议在Jupyter Notebook或Colab中测试运行,首次执行需要下载约5GB的模型文件。可通过缓存机制(设置cache_dir参数)优化重复加载体验。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis框架七:缓存

精心整理了最新的面试资料,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 1、一级缓存: 基于PerpetualCache 的 HashMap本地缓存&#xf…

【Unity动画】导入动画资源到项目中,Animator播放角色动画片段,角色会跟随着动画播放移动。

导入动画资源到项目中,Animator播放角色动画片段,角色会跟随着动画播放移动,但我只想要角色在原地播放动画。比如:播放一个角色Run动画,希望角色在原地奔跑,而不是产生了移动距离。 问题排查: 1.是否勾选…

WLAN无线2.4G/5G频段划分和可用信道

互联网各领域资料分享专区(不定期更新): Sheet

2025年archlinux tigervnc分辨率设置不生效的问题

在此之前我知道的修改分辨率的方法,有两种: 1. 参数geometry实现 在ubuntu中配置vnc,可以参考: 《ubuntu server 20.04安装vnc远程桌面xfce4》 https://blog.csdn.net/lxyoucan/article/details/121672487 设置vnc的分辨率非常简单 vncse…

MySQL数据库(6)—— 表的增删查改

目录 一,表的CRUD 二,Create新增 2.1 SQL介绍 2.2 按行和列插入 2.3 插入否则更新 2.4 插入替换 三,Retrieve查找 3.1 SQL介绍 3.2 按列查询 3.3 查询字段为表达式 3.4 结果去重 3.5 where关键字 3.6 对结果排序 3.7 分页显示 …

【实战】用飞书多维表格+AI DeepSeeker做股票量价分析

用2万元起步资金,进行A股实战模拟。(量化分析无法知晓 消息面的事宜,是一个不足,但是可以代替 哪些一般水平的 股票分析师) https://zk4wn8rhv2.feishu.cn/base/OABmbEBa4a4zgOsw5JlcrfIPnzh?tabletblMK2bDhPW5Am9b&a…

深度学习之迁移学习resnet18模型及调用模型预测

迁移学习resnet18模型及调用模型预测 目录 迁移学习resnet18模型及调用模型预测1 迁移学习1.1 概念1.2 主要思想1.3 优点1.4 迁移学习的步骤 2 模型迁移和调整2.1 ResNet18模型2.2 新数据2.3 冻结参数2.4 微调层2.5 新增层2.6 数据预处理 3 代码测试3.1 微调模型代码测试及保存…

DeepSeek掀起推理服务器新风暴,AI应用迎来变革转折点?

AI 浪潮下,推理服务器崭露头角 在科技飞速发展的当下,AI 是耀眼明星,席卷各行业,深刻改变生活与工作模式,从语音助手到医疗诊断、金融风险预测,AI 无处不在。其发展分数据收集整理、模型训练、推理应用三个…

用openresty和lua实现壁纸投票功能

背景 之前做了一个随机壁纸接口,但是不知道大家喜欢对壁纸的喜好,所以干脆在实现一个投票功能,让用户给自己喜欢的壁纸进行投票。 原理说明 1.当访问http://demo.com/vote/时,会从/home/jobs/webs/imgs及子目录下获取图片列表&…

【保姆级教程】DeepSeek R1+RAG,基于开源三件套10分钟构建本地AI知识库

一、总体方案 目前在使用 DeepSeek 在线环境时,页面经常显示“服务器繁忙,请稍后再试”,以 DeepSeek R1 现在的火爆程度,这个状况可能还会持续一段时间,所以这里给大家提供了 DeepSeek R1 RAG 的本地部署方案。最后实现…

Java 常用类 10. Java System类

简介: 主要用于获取系统的属性数据和其他操作,构造方法(私有的)实际上 System 类是一些与系统相关属性和方法的集合,而且在System 类中所有的属性,都是静态的,要想引用这些属性和方法&#xff0…

从零开始构建一个语言模型中vocab_size(词汇表大小)的设定规则

从零开始构建一个语言模型就要设计一个模型框架,其中要配置很多参数。在自然语言处理任务中,vocab_size(词汇表大小) 的设定是模型设计的关键参数之一,它直接影响模型的输入输出结构、计算效率和内存消耗。 本文是在我前文的基础上讲解的:从零开始构建一个小型字符级语言…

python小项目编程-初级(5、词频统计,6、简单得闹钟)

1、词频统计 统计文本文件中每个单词出现的频率。 实现 import tkinter as tk from tkinter import filedialog, messagebox from collections import Counter import reclass WordFrequencyCounter:def __init__(self, master):self.master masterself.master.title("…

一文讲解Redis为什么读写性能高以及I/O复用相关知识点

Redis为什么读写性能高呢? Redis 的速度⾮常快,单机的 Redis 就可以⽀撑每秒十几万的并发,性能是 MySQL 的⼏⼗倍。原因主要有⼏点: ①、基于内存的数据存储,Redis 将数据存储在内存当中,使得数据的读写操…

计算机网络安全之一:网络安全概述

1.1 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及,越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是,支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而&#xff0…

程函方程的详细推导

以下是基于非均匀介质弹性波方程(无纵波假设)推导程函方程的详细过程,完整考虑纵波(P 波)和横波(S 波)的耦合效应:

【JavaEE进阶】MyBatis通过注解实现增删改查

目录 🍃前言 🍀打印日志 🌴传递参数 🎋增(Insert) 🚩返回主键 🎄删(Delete) 🌲改(Update) 🌳查(Select) 🚩起别名 🚩结果映射 🚩开启驼…

[AHOI2018初中组] 分组---贪心算法

贪心没套路果真如此。 题目描述 小可可的学校信息组总共有 n 个队员,每个人都有一个实力值 ai​。现在,一年一度的编程大赛就要到了,小可可的学校获得了若干个参赛名额,教练决定把学校信息组的 n 个队员分成若干个小组去参加这场…

DeepSeek动画视频全攻略:从架构到本地部署

DeepSeek 本身并不直接生成动画视频,而是通过与一系列先进的 AI 工具和传统软件协作,完成动画视频的制作任务。这一独特的架构模式,使得 DeepSeek 在动画视频创作领域发挥着不可或缺的辅助作用。其核心流程主要包括脚本生成、画面设计、视频合成与后期处理这几个关键环节。 …

用deepseek学大模型08-长短时记忆网络 (LSTM)

deepseek.com 从入门到精通长短时记忆网络(LSTM),着重介绍的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据, 模型应用场景和优缺点,及如何改进解决及改进方法数据推导…