咱们今天不聊那些晦涩难懂的算法公式,也不搞那种“首先、其次、最后”的八股文。我就想跟你掏心窝子聊聊,怎么把你脑子里那些天马行空的念头,变成屏幕上让人眼前一亮的画作。我知道你试过Midjourney,也折腾过Stable Diffusion,但结果可能并不如意:要么提示词像天书,AI听不懂;要么画出来的手像鸡爪,脸像面具;要么干脆就是黑屏报错,让你怀疑人生。别急,这事儿真没那么玄乎。咱们就像剥洋葱一样,一层层把这层神秘的面纱揭开,你会发现,这其实就是一场关于“沟通”的游戏——你和机器之间的沟通。
第一步:打破迷信,认清你的两位“数字画师”
很多人有个误区,觉得AI绘画是魔法。其实不是,它是概率学加上海量数据的统计结果。你要做的,不是祈求神明,而是学会给两个性格迥异的助手下达指令。
Midjourney (MJ) 就像是那个才华横溢但有点傲娇的艺术总监。它审美极高,出图速度快,对光影、构图的直觉非常准。你只需要给它一个大概的方向,它就能给你惊喜。但它有个缺点:可控性差。你想让它把杯子放在左边,它可能非得放右边,你还不能太强硬。
Stable Diffusion (SD) 则像是那个拥有无限耐心、工具齐全的工厂技工。它开源、免费(如果你本地部署的话),而且极其灵活。你可以控制每一根线条的位置,每一个像素的色调。但它的门槛高,配置麻烦,而且你需要非常精准地告诉它你想要什么,否则它就会给你一堆乱码。
对于零基础的朋友,我的建议是:先用MJ找感觉,再用SD控细节。 别一上来就死磕SD的WebUI界面,那玩意儿里的参数多得像飞机的驾驶舱,新手进去只会晕头转向。
第二步:Midjourney实战——如何写出让AI“秒懂”的咒语
MJ的提示词逻辑其实很简单,可以总结为一个万能公式:
[主体描述] + [环境/背景] + [艺术风格] + [镜头/视角] + [光照/色彩] + [参数]
咱们拿个具体的例子。假设你想画一只“戴着墨镜的猫,在赛博朋克城市的屋顶上”。
错误示范:
cat sunglasses cyberpunk city roof结果: AI可能会给你画一只普通的猫,或者墨镜戴歪了,背景可能只是一片灰色的墙,完全没那味儿。
正确示范:
A cool cat wearing stylish black sunglasses, sitting on a neon-lit rooftop edge, looking down at the futuristic cyberpunk city below, rain-slicked surfaces reflecting neon signs, cinematic lighting, volumetric fog, hyper-realistic, 8k, wide angle shot --ar 16:9 --v 6.0
你看,这里多了很多细节:
- 动作与神态:
sitting... looking down赋予了画面故事感。 - 环境细节:
rain-slicked surfaces reflecting neon signs增加了质感和氛围。 - 技术参数:
--ar 16:9指定宽高比,--v 6.0指定使用最新的V6版本。
避坑指南:
- 不要用否定词,除非必要: MJ对“不”这个词理解能力有限。与其说“不要画狗”,不如直接描述你想要的主体。
- 风格关键词要具体: “好看”没用,“油画风格”、“水彩风格”、“吉卜力动画风格”才有用。
- 利用
/blend功能: 这是MJ的杀手锏。你可以上传两张图,比如一张蒙娜丽莎的脸和一张太空背景,MJ会自动融合两者的风格和内容。这是新手快速出大片的最简单途径。
第三步:Stable Diffusion入门——为什么你的图总是变形?
如果说MJ是“盲盒”,那SD就是“乐高”。你可以自己拼,但前提是你要懂积木怎么咬合。SD最常见的两个噩梦:手部崩坏和提示词无效。
1. 解决“提示词无效”:理解Embeddings和LoRA
在SD里,单纯的英文单词有时候不够用。你需要引入两个概念:Embeddings(嵌入) 和 LoRA(低秩适应模型)。
- Embeddings 像是“词汇表的扩展包”。比如你有一个叫
bad-hands-5的Embedding,把它加到负面提示词(Negative Prompt)里,AI就会极力避免画出手部畸形。 - LoRA 则是“特定风格的插件”。你想画动漫风?加载一个Anime LoRA。你想画特定的人物?加载对应人物的LoRA。
实战操作:
去Civitai(著名的AI模型社区)下载你喜欢的Checkpoint(大模型)和LoRA。假设你下载了一个名为 MajicMix Realistic 的大模型和一个 Cyberpunk City 的LoRA。
在你的提示词框里,不仅要写:
1girl, solo, long hair, blue eyes, cybernetic implants
还要加上LoRA的权重调用语法(不同WebUI略有差异,通用格式如下):
(cyberpunk_city:0.8)
这里的 0.8 是权重,表示这个LoRA对最终画面的影响程度。0.2太淡,1.0太重可能导致画面扭曲。
2. 解决“图片变形”:ControlNet是神器
很多新手放弃SD,是因为手画不像、姿势摆不好。这时候,请祭出ControlNet。
ControlNet允许你上传一张参考图,强制SD按照这张图的骨架、边缘或深度来生成新图。
场景模拟: 你想让一个虚拟模特穿上你设计的衣服,但她的手势很奇怪。
- 找一张你喜欢的模特照片。
- 在SD的ControlNet面板中,选择
OpenPose(姿态控制)。 - 上传照片,SD会提取模特的骨架线。
- 在正面提示词中描述衣服样式,在负面提示词中加入常见的崩坏词汇。
- 点击生成。
你会发现,无论你怎么换衣服、换背景,模特的姿势依然完美复刻了你原图中的优雅体态。这就是ControlNet的魅力——它给了你“导演”的权力,而不仅仅是“抽奖”的运气。
3. 代码示例:Python脚本自动化生成
虽然大多数SD用户用WebUI,但理解底层的API调用能帮你更好地调试。假设你在本地运行了一个基于Gradio或Flask的SD服务,你可以用Python发送请求:
import requests
import json
url = "http://localhost:7860/sdapi/v1/txt2img"
payload = {
"prompt": "masterpiece, best quality, 1girl, smiling, holding a coffee cup, sunny window, soft lighting",
"negative_prompt": "lowres, bad anatomy, extra limbs, poorly drawn face, poorly drawn hands, missing fingers",
"steps": 30,
"width": 512,
"height": 512,
"cfg_scale": 7, # 引导系数,越高越忠实于提示词,但也可能越僵硬
"seed": -1 # -1表示随机种子
}
headers = {
"Content-Type": "application/json"
}
response = requests.post(url=url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
result = response.json()
# 保存图片
import base64
image_data = result["images"][0]
with open("generated_art.png", "wb") as f:
f.write(base64.b64decode(image_data))
print("图片生成成功!")
else:
print(f"生成失败: {response.text}")
这段代码展示了如何通过编程精确控制生成的每一个参数。当你发现某次生成效果特别好时,记录下那个seed值,下次就能复现同样的构图。
第四步:进阶技巧——从“能用”到“精通”
当你熟悉了基本操作,接下来要解决的是一致性和后期处理的问题。
1. IP-Adapter:保持角色一致性的秘密武器
在MJ里,你可以用--cref(Character Reference)来保持角色脸部一致。在SD里,对应的强大工具是IP-Adapter。
它允许你上传一张参考图片(比如你朋友的照片),然后让AI生成的所有新图中,人物都保留那张照片的特征,同时改变服装、背景和动作。这对于创作系列漫画或品牌营销素材至关重要。
2. 高清修复(Hires. Fix)与放大
AI生成的初始图片通常只有512x512或1024x1024分辨率,直接打印出来会模糊。
- Hires. Fix: 在SD中开启高分辨率修复。它的工作原理是先以小尺寸生成草稿,然后放大并重新绘制细节。这能有效减少面部崩坏,增加皮肤纹理。
- 放大算法: 选择正确的放大算法。
R-ESRGAN 4x+适合照片,4x-UltraSharp适合动漫。不要盲目追求4倍放大,有时候2倍效果更自然。
3. 局部重绘(Inpainting):修补瑕疵的橡皮擦
如果生成的图中,背景有个不该有的垃圾桶,或者人物的手指还是有点怪,不要重新生成整张图。使用Inpainting功能:
- 涂抹出错的部分。
- 在提示词中详细描述你想替换的内容(例如:“clean background, no trash can”)。
- 调整Denoising Strength(重绘幅度)。数值越低,变化越小;数值越高,变化越大。通常0.3-0.5之间微调局部效果最佳。
第五步:给小朋友也能听懂的“创作心法”
为了让这篇文章更具普适性,我想用一个简单的比喻来总结整个流程。
想象你要拍一部电影:
- Midjourney 是你的摄影师。你告诉他“我要拍个酷酷的猫”,他咔嚓一下,给你一张很有氛围感的照片。你不用管光圈快门,他懂。
- Stable Diffusion 是你的整个剧组+后期工作室。你需要自己选演员(Checkpoint),自己设计服装(LoRA),自己打光(Prompt),甚至自己剪辑(Inpainting)。
- 提示词 就是你的剧本。写得越详细,演员演得越到位。
- ControlNet 就是你的走位指导。你告诉演员“站在这里,手举起来”,他就不会乱跑。
- 负面提示词 就是你的避雷针。告诉剧组“千万不要让演员穿红衣服,千万不要让灯光太暗”。
结语:拥抱变化,持续迭代
AI绘画技术更新速度极快。昨天还在用的模型,明天可能就过时了。所以,最重要的技能不是记住所有的参数,而是保持好奇心和试错的勇气。
不要害怕生成废图。每一个废图都是一次学习的机会。问问自己:为什么手画坏了?是不是权重太高?为什么颜色不对?是不是光照描述缺失?
当你开始享受这个过程,而不是只盯着最终结果时,你就已经入门了。现在,打开你的Midjourney或Stable Diffusion,写下第一个提示词吧。哪怕只是画一朵云,也是一次伟大的创造。记住,在这个数字时代,想象力是你唯一的限制。
