别再迷茫了!这份GitHub超3万星的AI绘画资源清单,让你从小白到大师一步到位
为什么值得关注这份资源清单
AI绘画正在席卷整个创意行业
2022年可以说是AI绘画的元年。从DALL-E 2到Midjourney,从Stable Diffusion到ControlNet,一场关于视觉创作的革命正在悄然改变我们的工作方式。而今天要介绍的这个GitHub仓库——hua1995116/awesome-ai-painting,正是目前最全面的AI绘画资源聚合站。
这个项目在GitHub上已经收获了超过3万颗星,拥有超过5000次的fork,被无数开发者和设计师视为AI绘画领域的”九阴真经”。无论你是想入门AI绘画的新手,还是想要深入研究的专业人士,这里都能找到你需要的资源。
这份清单的核心价值
这份awesome列表的价值体现在几个方面。首先是资源的系统性——从基础的模型介绍到进阶的训练技巧,从开源工具到商业平台,从Prompt工程到插件开发,几乎涵盖了AI绘画的方方面面。其次是更新的及时性——项目维护者持续跟踪最新技术进展,确保收录的资源都是业界最新的。最后是社区的活跃度——通过GitHub的Issue和PR机制,全球开发者不断贡献新的资源和修正。
环境搭建:打造你的AI绘画工作站
硬件准备
在开始AI绘画之前,合适的硬件配置至关重要。如果你想在本地运行Stable Diffusion等模型,推荐的配置如下:
显卡:NVIDIA RTX 3060 12GB 或更高(RTX 3080/3090/4090更佳)
内存:32GB DDR4 或更高
存储:至少500GB SSD(模型文件较大)
CPU:Intel i7 或 AMD Ryzen 7 及以上
对于预算有限的朋友,也可以考虑使用Google Colab或Kaggle提供的免费GPU资源。虽然有使用时长限制,但对于学习和轻度使用已经足够。
基础软件环境安装
首先确保你的系统已经安装了Python环境。建议使用Anaconda来管理Python环境,这样可以避免版本冲突问题。
# 检查Python版本
python --version
# 如果需要安装Anaconda,可以从官网下载:
# https://www.anaconda.com/download
创建新的conda环境并安装必要的依赖包:
# 创建新环境
conda create -n ai-painting python=3.10
# 激活环境
conda activate ai-painting
# 安装PyTorch(根据你的CUDA版本选择合适的命令)
# CUDA 11.8
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# CUDA 12.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Stable Diffusion WebUI部署
Stable Diffusion WebUI(又称AUTOMATIC1111 WebUI)是最流行的本地AI绘画工具。克隆仓库并进行安装:
# 克隆Stable Diffusion WebUI仓库
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 进入目录
cd stable-diffusion-webui
# Windows用户直接运行这个脚本
./webui-user.bat
# Linux用户运行
./webui-user.sh
首次运行会自动下载必要的模型文件。由于模型文件较大(通常5-10GB),建议提前配置好网络环境或使用代理。
# 如果网络较慢,可以在webui-user.bat中配置代理
# set COMMANDLINE_ARGS=--proxy http://127.0.0.1:7890
常用依赖包一览
为了更好地使用各种AI绘画工具,建议安装以下Python包:
# 基础工具包
pip install pillow numpy opencv-python
# 用于处理图像
pip install diffusers transformers accelerate safetensors
# 用于处理视频和动画
pip install imageio imageio-ffmpeg
# 用于处理Prompt
pip install gradio==3.50.2
# 用于管理模型
pip install huggingface_hub
# 验证安装是否成功
python -c "import torch; print(f'PyTorch version: {torch.__version__}'); print(f'CUDA available: {torch.cuda.is_available()}')"
核心功能详解:AI绘画工具全景图
文本生成图像(Text-to-Image)
这是AI绘画最核心的功能,也是大多数新手接触AI绘画的起点。用户输入一段文字描述(Prompt),AI模型会据此生成对应的图像。
Prompt示例:
"一个穿着汉服的少女站在樱花树下,粉色花瓣飘落,温暖的阳光,动漫风格,高质量,8k分辨率"
Negative Prompt示例:
"低质量,模糊,变形,丑脸,多余的手指,水印,文字"
Stable Diffusion的工作原理可以简单理解为三个步骤:首先,模型会生成一张完全随机的噪声图;然后,模型会根据Prompt的指导,逐步去除噪声;最后,经过多轮迭代,得到一张符合描述的清晰图像。
图像生成图像(Image-to-Image)
这个功能允许用户基于一张已有的图像进行创作。用户可以上传草图、照片或其他图片,AI会在此基础上进行风格转换或内容修改。
# 使用Stable Diffusion WebUI的img2img功能
# 主要参数说明:
# - Denoising Strength:控制保留原图的程度,值越大变化越大
# - 建议范围:0.3-0.7
# - 0.3-0.4:保留大部分原图结构
# - 0.5-0.6:中等程度变化
# - 0.7以上:完全重绘
常见的img2img应用场景包括:草图上色、照片转插画、风格迁移、分辨率提升等。
图像修复与细节增强(Inpainting/Outpainting)
Inpainting是指对图像的特定区域进行局部修改,而Outpainting则是对图像进行边界扩展。这两个功能让用户可以精确控制AI的创作范围。
Inpainting使用技巧:
1. 使用蒙版工具仔细勾勒需要修改的区域
2. 蒙版内的内容会被重新生成
3. 蒙版外的区域保持不变
4. 建议使用较小的Denoising Strength以保持连贯性
ControlNet精确控制
ControlNet是近期AI绘画领域最重要的技术突破之一。它允许用户通过额外的控制条件(如骨骼姿态、深度图、边缘线等)来精确控制图像生成的结果。
ControlNet支持的控制类型:
- Canny边缘检测
- 深度图(Depth Map)
- 骨骼姿态(Pose)
- 语义分割(Segmentation)
- 法线贴图(Normal Map)
- 线条艺术(Lineart)
- 手绘草图(Scribble)
LoRA微调模型
LoRA(Low-Rank Adaptation)是一种高效的模型微调技术。通过LoRA,用户可以用较小的数据集训练出具有特定风格的模型权重。
LoRA的优势:
- 文件体积小(通常100-200MB)
- 训练速度快
- 可以叠加使用多个LoRA
- 对原始模型的修改是可逆的
常用LoRA模型网站:
- Civitai (civitai.com)
- Hugging Face (huggingface.co)
- 模型站(国内镜像)
实战教程:从入门到精通
第一课:生成你的第一张AI绘画
让我们从最基础的文本生成图像开始。在Stable Diffusion WebUI中,按照以下步骤操作:
步骤一:选择合适的模型
模型选择建议:
- 通用场景:Stable Diffusion 1.5 / 2.1
- 动漫风格:Anything V5 / Counterfeit
- 真实照片风格:Realistic Vision / ChilloutMix
- 概念艺术:DreamShaper
步骤二:编写高质量的Prompt
Prompt编写是AI绘画的核心技能。一个好的Prompt通常包含以下几个部分:
正向Prompt结构:
[主体描述] + [场景/背景] + [光照条件] + [画面风格] + [画质要求]
示例:
"1girl, solo, beautiful detailed eyes, long wavy hair,
standing in a flower garden, morning sunlight,
cinematic lighting, anime style, masterpiece, best quality,
highly detailed, 8k, sharp focus"
# Negative Prompt示例
"""
worst quality, low quality, normal quality,
jpeg artifacts, signature, watermark, username,
blurry, bad anatomy, bad hands, text, error,
missing fingers, extra digit, fewer digits,
cropped, worst feet, ugly, deformed
"""
步骤三:调整关键参数
核心参数说明:
- Sampling Steps: 20-50,通常28-35效果最佳
- CFG Scale: 7-12,值越高越遵循Prompt,值越低越有创意
- Width/Height: 通常512x512或768x768,方形比例效果较好
- Seed: -1表示随机,固定种子可以复现结果
步骤四:生成与迭代
# 推荐的工作流程:
# 1. 先用低分辨率(512x512)快速生成多张预览
# 2. 选择最喜欢的一张进行放大(Hi-res fix)
# 3. 或者用img2img进一步调整
# 4. 最后使用Extra选项进行细节增强
第二课:掌握ControlNet骨骼控制
ControlNet能够让你通过骨骼姿态图精确控制人物的动作和姿势。
步骤一:准备姿态图
你可以使用以下工具生成骨骼姿态图:
推荐工具:
- posex.io (在线工具)
- OpenPose Editor (WebUI插件)
- 手动绘制(简单的火柴人即可)
# 骨骼图的基本格式
# 使用17关键点模型:
# 0: Nose, 1: Neck, 2: Right Shoulder, 3: Right Elbow
# 4: Right Wrist, 5: Left Shoulder, 6: Left Elbow
# 7: Left Wrist, 8: Right Hip, 9: Right Knee
# 10: Right Ankle, 11: Left Hip, 12: Left Knee
# 13: Left Ankle, 14: Right Eye, 15: Left Eye
# 16: Right Ear, 17: Left Ear
步骤二:配置ControlNet参数
参数设置:
- Enable: 勾选启用
- Preprocessor: openpose_full 或 openpose
- Model: control_openpose-fp16 (选择对应模型)
- Control Weight: 0.5-1.0 (控制影响力)
- Starting Control Step: 0 (从开始应用)
- Ending Control Step: 1 (到结束应用)
步骤三:组合使用多个ControlNet
高级技巧:同时使用多个ControlNet条件
- 第一个ControlNet: openpose控制姿态
- 第二个ControlNet: depth控制深度/距离感
- 第三个ControlNet: canny控制边缘细节
注意事项:
- 多个ControlNet会显著增加计算时间
- 需要在设置中启用"Multi ControlNet"
- 建议权重比例保持平衡
第三课:训练你的专属LoRA模型
LoRA训练让你能够创建具有特定风格或角色的模型变体。
步骤一:准备训练数据集
# 数据集要求
# 数量:10-30张高质量图片
# 质量:清晰、主题突出、无水印
# 格式:512x512或1024x1024,JPG或PNG
# 内容:同一角色或风格,避免混杂
# 目录结构示例
dataset/
├── img/
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
└── meta/
└── caption.json # 每张图片的描述文件
# caption.json格式示例
{
"image1.jpg": "1girl, portrait, detailed face",
"image2.jpg": "1girl, standing pose, full body"
}
步骤二:配置训练参数
训练参数说明:
- 网络维度 (lora_dim): 1-128,建议16或32
- 网络alpha (lora_alpha): 通常设置为dim的一半
- 学习率: 1e-4 到 1e-5
- 训练轮数 (epochs): 10-30轮
- Batch Size: 1-4(取决于显存大小)
- 分辨率: 512x512 或 768x768
步骤三:开始训练
# 使用kohya_ss进行训练
# 项目地址:https://github.com/kohya-ss/sd-scripts
# 基础训练命令
python train_network.py \
--pretrained_model_name_or_path=sd_model_path \
--train_data_dir=dataset_path \
--output_dir=output_path \
--output_name=my_lora \
--network_dim=32 \
--network_alpha=16 \
--learning_rate=1e-4 \
--max_train_steps=1000 \
--batch_size=1 \
--resolution=512,512 \
--save_every_n_epochs=5
步骤四:测试与优化
# 测试生成脚本
import torch
from diffusers import StableDiffusionPipeline
model_id = " runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(
model_id,
torch_dtype=torch.float16
)
pipe.to("cuda")
# 加载LoRA权重
pipe.load_lora_weights("path/to/your/lora.safetensors")
# 生成测试图像
image = pipe(
prompt="your prompt with trigger words",
height=512,
width=512,
num_inference_steps=30
).images[0]
image.save("output.png")
第四课:高清放大与细节增强
原始生成的图像分辨率通常较低,需要通过放大算法来提升质量。
放大算法比较
常用放大算法:
1. ESRGAN - 经典算法,速度快
2. RealESRGAN - 适合写实风格
3. SwinIR - 效果好,速度较慢
4. Ultimate SD Upscale - WebUI插件,综合表现优秀
推荐设置:
- 放大倍数:2x 或 4x
- 分块处理:Tile Size 512-768
- 边缘羽化:GAP 64-128
- 降噪强度:0.1-0.3
使用Ultimate SD Upscale插件
# 安装方法:在WebUI的Extensions页面搜索安装
# 参数配置:
# Upscaler: R-ESRGAN 4x+ (或其他高清模型)
# Scale: 2
# Tile Width/Height: 768
# Padding: 64
# Seam Fix Width: 256
# Seam Fix Fade: 0.1
# Seam Fix Weight: 0.5
# Controlnet Tile: 启用可提升一致性
第五课:批量处理与自动化工作流
对于需要大量生成图像的场景,可以使用Python脚本实现自动化。
# 批量生成脚本示例
import json
import os
from pathlib import Path
import torch
from diffusers import StableDiffusionPipeline
class BatchGenerator:
def __init__(self, model_path, output_dir):
"""初始化批量生成器"""
self.pipe = StableDiffusionPipeline.from_pretrained(
model_path,
torch_dtype=torch.float16,
safety_checker=None # 禁用安全检查器
)
self.pipe.to("cuda")
self.output_dir = Path(output_dir)
self.output_dir.mkdir(parents=True, exist_ok=True)
def load_prompts(self, prompts_file):
"""从JSON文件加载Prompt列表"""
with open(prompts_file, 'r', encoding='utf-8') as f:
return json.load(f)
def generate_batch(self, prompts, batch_size=4, seed=42):
"""批量生成图像"""
generator = torch.Generator(device="cuda").manual_seed(seed)
for i, prompt_data in enumerate(prompts):
prompt = prompt_data['prompt']
negative = prompt_data.get('negative', '')
num_images = prompt_data.get('count', 1)
for j in range(num_images):
image = self.pipe(
prompt=prompt,
negative_prompt=negative,
height=512,
width=512,
num_inference_steps=28,
guidance_scale=7.5,
generator=generator
).images[0]
# 保存图像
filename = f"{i}_{j}_{prompt_data.get('name', 'output')}.png"
image.save(self.output_dir / filename)
print(f"Generated: {filename}")
# 使用示例
generator = BatchGenerator(
model_path="models/stable-diffusion-v1-5",
output_dir="output/batch_results"
)
prompts = generator.load_prompts("prompts.json")
generator.generate_batch(prompts)
# prompts.json格式示例
[
{
"name": "fantasy_landscape",
"prompt": "a beautiful fantasy landscape with mountains and floating islands, sunset, cinematic lighting",
"negative": "low quality, ugly, distorted",
"count": 5
},
{
"name": "cyberpunk_city",
"prompt": "cyberpunk city at night, neon lights, rain, detailed architecture",
"negative": "daylight, sunny, low quality",
"count": 3
}
]
常见使用场景与案例分析
场景一:游戏美术资源制作
AI绘画在游戏开发中可以大大加速美术资源的制作流程。
应用方向:
- 角色立绘生成
- 场景概念设计
- 道具图标制作
- UI背景素材
- 头像和表情包
工作流建议:
1. 使用ControlNet + 草图控制整体构图
2. 通过img2img进行风格统一
3. Inpainting精修细节
4. 批量生成后人工筛选
场景二:商业插画与海报设计
AI绘画正在改变商业设计的工作方式。
应用方向:
- 产品宣传海报
- 社交媒体配图
- 书籍封面设计
- 广告banner
- 信息图表插画
注意事项:
- 需要注意版权问题
- 生成内容需符合广告法规定
- 重要场景建议人工审核
场景三:动漫与同人创作
AI绘画在二次元领域尤其受到欢迎。
应用方向:
- 同人志创作
- 角色设计参考
- 漫画分镜辅助
- 动画背景制作
- 头像和壁纸生成
推荐模型:
- Anything V5 / V6
- AbyssOrangeMix
- MeinaMix
- Counterfeit V3.0
场景四:建筑与室内设计可视化
AI绘画可以帮助设计师快速生成设计效果图。
应用方向:
- 建筑概念渲染
- 室内设计预览
- 景观设计提案
- 城市天际线规划
技巧分享:
- 使用深度图ControlNet保持结构正确
- 参考照片img2img提高真实感
- 使用Inpainting修改局部细节
技巧与最佳实践
Prompt工程进阶技巧
# 高级Prompt语法
# 1. 权重调整
# 使用括号增加权重,圆括号越多权重越高
"(masterpiece:1.5), (best quality:1.4), (ultra detailed:1.3)"
# 使用[]降低权重
"[low quality:0.8], [blurry:0.5]"
# 2. 混合多个概念
# 使用AND连接
"cat AND dog AND bird"
# 使用|进行交替
"day|night scene"
# 3. 颜色和材质控制
"hair color: blue, silver, gradient"
"skin texture: porcelain, smooth, realistic"
"material: metallic, glass, wooden"
# 4. 光照氛围控制
"dramatic lighting, rim light, volumetric lighting"
"soft ambient light, golden hour, backlighting"
# 5. 艺术家风格引用
"in the style of (artist name:1.2)"
"artwork by Greg Rutkowski, Artgerm, Alphonse Mucha"
参数调优指南
"""
参数优化速查表
Sampler选择:
- DPM++ 2M Karras: 速度快,质量好,推荐日常使用
- DPM++ SDE Karras: 细节丰富,适合复杂场景
- Euler a: 快速,适合探索
- DDIM: 适合高步数(50+)精细渲染
CFG Scale指南:
- 5-8: 偏向创意发挥
- 7-12: 平衡模式(推荐)
- 12-15: 严格遵循Prompt
- 15+: 可能出现伪影
Sampling Steps指南:
- 简单场景: 20-25步
- 标准场景: 28-35步
- 复杂场景: 35-50步
- 超精细: 50-100步
"""
# 特殊场景参数建议
scene_configs = {
"portrait": {
"steps": 30,
"cfg": 7,
"sampler": "DPM++ 2M Karras",
"prompt_tips": "focus on face details, detailed eyes, best face"
},
"landscape": {
"steps": 35,
"cfg": 8,
"sampler": "DPM++ 2M Karras",
"prompt_tips": "wide angle, detailed background, atmospheric"
},
"anime": {
"steps": 28,
"cfg": 7,
"sampler": "Euler a",
"prompt_tips": "anime style, vibrant colors, clean lines"
},
"photorealistic": {
"steps": 40,
"cfg": 8,
"sampler": "DPM++ SDE Karras",
"prompt_tips": "photorealistic, 8k, sharp focus, detailed texture"
}
}
显存优化技巧
# 显存不足时的解决方案
# 1. 减少生成分辨率
# 尝试 384x384 或 256x256
# 2. 启用Attention Slicing
# 适用于高分辨率和复杂Prompt
pipe.enable_attention_slicing()
# 3. 启用Flash Attention(如果可用)
pipe.enable_flash_attention()
# 4. 使用CPU卸载
pipe.enable_model_cpu_offload()
# 5. 启用VAE切片
pipe.enable_vae_slicing()
# 6. 分阶段生成
# 先生成低分辨率 -> 放大 -> img2img细化
# 完整优化示例
def optimize_pipeline(pipe):
"""优化管道以减少显存占用"""
# 降低模型精度
pipe.to(torch.float16)
# 启用各种优化
pipe.enable_attention_slicing()
pipe.enable_vae_slicing()
pipe.enable_model_cpu_offload()
return pipe
# 检查显存使用
import torch
print(f"当前显存占用: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")
print(f"显存峰值: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB")
质量提升技巧汇总
"""
高质量图像生成 checklist
前期准备:
[] 选择合适的模型
[] 准备高质量的参考图(如需要)
[] 明确画面主体和构图
Prompt编写:
[] 明确主体描述
[] 添加细节描写
[] 指定光照氛围
[] 注明风格和质量标签
[] 添加负面Prompt
参数调整:
[] 选择合适的Sampler
[] 调整Steps(不要太低)
[] CFG Scale在合适范围
[] 考虑启用高清修复
后期处理:
[] 使用合适的放大算法
[] 进行局部精修
[] 调整色彩和对比度
"""
# 高质量图像生成模板
high_quality_template = """
[主体] + [详细特征]
- 面部:detailed beautiful face, expressive eyes, perfect anatomy
- 发型:detailed hair, detailed strands, flowing hair
- 服装:elaborate detailed clothing, intricate details, fine fabric
[场景] + [环境细节]
- 背景:detailed background, beautiful scenery
- 光照:cinematic lighting, volumetric lighting, natural lighting
- 氛围:atmospheric, moody, ethereal
[风格] + [质量标签]
- 质量:masterpiece, best quality, ultra detailed
- 分辨率:8k, high resolution, sharp focus
- 风格:具体风格描述
[相机参数](可选)
- 镜头:DSLR, bokeh, shallow depth of field
- 角度:close-up portrait, dynamic angle
"""
更多AI绘画资源推荐
开源工具
主流WebUI:
- Stable Diffusion WebUI (AUTOMATIC1111)
https://github.com/AUTOMATIC1111/stable-diffusion-webui
- ComfyUI
https://github.com/comfyanonymous/ComfyUI
节点式工作流,灵活性高
- Fooocus
https://github.com/lllyasviel/Fooocus
简化版WebUI,易用性强
图像编辑工具:
- Visual Artifacts (VAE)
- ControlNet
- ADetailer (面部修复)
- Ultimate SD Upscale
模型资源站
海外平台:
- Hugging Face: 模型下载和分享
https://huggingface.co/models
- Civitai: LoRA和Checkpoint
https://civitai.com/
- Model Database: 各类模型汇总
https://civitai.com/models
国内镜像:
- 模型站:高速下载镜像
- HF镜像:Hugging Face国内镜像
学习资源
教程平台:
- Stable Diffusion Wiki
- Civitai Tutorials
- Stable Diffusion Art
- AI绘画研究社(B站)
Prompt学习:
- PromptHero
- PromptKnight
- Public Prompts
结语:开启你的AI绘画之旅
通过awesome-ai-painting这份资源清单,我们得以窥见AI绘画领域的全貌。从基础的文本生成图像,到高级的ControlNet控制,再到LoRA模型的微调训练,每一个功能都在不断拓展创作的边界。
重要的是,AI绘画不是要取代人类艺术家,而是成为创意工作的强大助手。学会善用这些工具,将大幅提升你的创作效率,同时让你能够将更多精力投入到真正的艺术表达中。
现在,是时候开始你的AI绘画之旅了。从这份资源清单中选择感兴趣的工具开始尝试,相信你会很快发现AI绘画的魅力所在。
相关资源链接:
awesome-ai-painting仓库:
https://github.com/hua1995116/awesome-ai-painting
Stable Diffusion WebUI:
https://github.com/AUTOMATIC1111/stable-diffusion-webui
ControlNet:
https://github.com/lllyasviel/ControlNet
Kohya LoRA训练脚本:
https://github.com/kohya-ss/sd-scripts
Civitai模型站:
https://civitai.com/
Hugging Face:
https://huggingface.co/
祝你在AI绘画的世界里探索愉快!
评论区