手残党也能玩转AI绘画:Stable Diffusion风格迁移实战指南

“哥,我显卡才4G,能把女朋友照片整成吉卜力吗?”
“能,把显卡换成8G。”
……以上对话纯属放屁,今天咱们就用4G显存把真人照撸成宫崎骏,还要高清、无手、不崩脸,谁再劝你加钱升级,直接甩这篇文章给他。


先整点人话:Stable Diffusion到底是个啥

别被“扩散”俩字吓到,它其实就是一只赛博梵高,你喂它一句“星空下的JK少女”,它就在 latent 空间(可以当成草稿纸)里先胡乱涂鸦,再慢慢降噪,最后给你一张“看起来像那么回事”的图。
风格迁移只是多了一步:把草稿纸的一部分换成你给的风格参考图,让梵高照着抄配色、笔触、氛围,但主体还是你指定的内容。

核心公式记住一句话:
内容≈你的照片,风格≈宫崎骏截图,模型≈中介所,提示词≈中介所里的嘴替。


本地跑还是云端薅?部署方式大乱斗

1. 本地党:穷且益坚

  • 最低配置:GTX1650 4G + 8G 内存能跑,但得把分辨率压到 512×512,步数 20 步以内。
  • 推荐整合包
    • AUTOMATIC1111 WebUI(下文简称 A1111)——插件多到像拼多多,点两下就能装。
    • ComfyUI——节点式,像拼乐高,显存占用更低,就是第一次打开会怀疑人生。

一键启动脚本(Windows Powershell 复制即用):

# 先整好conda环境
conda create -n sd python=3.10 -y
conda activate sd
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
# 提前放好模型到 models/Stable-diffusion/
webui-user.bat --xformers --medvram

--medvram 是 4G 显存救星,它会先把模型切 CPU,再一块块搬回显存,速度掉 30%,但能跑。

2. 云端薅羊毛:富且任性

  • Google Colab:免费版给15G,K80 偶尔抽到 T4,够用。搜“Stable Diffusion Colab A1111”一抓一大把,记得把模型存 Google Drive,下次 30 秒开机。
  • 阿里云/腾讯云:学生机 10 块一个月,装完环境关机不扣钱,适合三天打鱼两天晒网的。

ControlNet:灵魂外挂,让 AI 别瞎蹦迪

没有 ControlNet 的风格迁移就像让哈士奇看家——分分钟给你撕成抽象派。
ControlNet 能干啥?把你给的边缘、深度、姿势锁死,让风格只改颜色、笔触,不把你家姐姐的脸挪到后脑勺。

安装(A1111 版)

  1. 打开 Extensions → Install from URL → 填
    https://github.com/Mikubill/sd-webui-controlnet
  2. 装完重启,在 txt2img 页面能看到新蹦出来的 ControlNet 区域。

真人转宫崎骏最稳组合

  • Preprocessor: canny(边缘检测)
  • Model: control_v11p_sd15_canny
  • Weight: 0.7(太高会油画感变石膏像)
  • Resize Mode: Resize and Fill(省得脸被裁半拉)

完整跑图代码(Python 脚本党)

# 保存为 style_transfer.py
import requests
import base64
import json

WEBUI_URL = "http://127.0.0.1:7860"
def readb64(path):
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode()

payload = {
    "prompt": "masterpiece, ghibli style, anime, a girl standing in flower field, "
              "sky vivid clouds, soft color palette, hayao miyazaki",
    "negative_prompt": "lowres, bad anatomy, extra hands, extra fingers, blurry, "
                       "photo, realistic, text, watermark",
    "steps": 25,
    "width": 768,
    "height": 768,
    "cfg_scale": 8,
    "seed": -1,
    "override_settings": {},
    "alwayson_scripts": {
        "controlnet": {
            "args": [{
                "input_image": readb64("face.jpg"),
                "model": "control_v11p_sd15_canny",
                "module": "canny",
                "weight": 0.7,
                "resize_mode": "Resize and Fill",
                "lowvram": True,      # 4G 显存救星
                "processor_res": 512,
                "threshold_a": 100,
                "threshold_b": 200
            }]
        }
    }
}

response = requests.post(WEBUI_URL + "/sdapi/v1/txt2img", json=payload)
if response.status_code == 200:
    r = response.json()
    with open("output.png", "wb") as f:
        f.write(base64.b64decode(r["images"][0]))
    print("搞定,图已保存 output.png")
else:
    print("GG,报错:", response.text)

跑之前先把 face.jpg 换成你的真人照,命令行 python style_transfer.py,30 秒后收图。


LoRA:小模型撬动大风格,别再把“宫崎骏”三个字打在 prompt 里硬蹭

LoRA 就像给 SD 打激素,只训练几 MB 的小补丁,就能把大模型掰成指定画风。
优势:

  • 模型体积 8~144MB,下载 30 秒。
  • 不改动原模型,随时插拔。

哪里薅 LoRA

  • Civitai 搜关键词 ghibli style lora,按“Most Downloaded”排序,抄作业都选第一名。
  • 国内镜像站 liblib.ai 速度嗖嗖的。

使用方法(A1111)

  1. .safetensors 丢到 models/Lora/
  2. 在 prompt 里敲触发词:
    <lora:ghibli_style_offset:0.8>
    冒号后 0.8 是权重,1.0 会崩,0.6 以下像兑水牛奶。

完整 prompt 模板(真人转宫崎骏)

<lora:ghibli_style_offset:0.8>, masterpiece, anime, ghibli style, 
1girl, standing, detailed face, soft eyes, pastel color, 
flower field, cumulus clouds, hayao miyazaki
Negative prompt:
photo, realistic, text, watermark, lowres, bad anatomy, 
extra fingers, blurry, jpeg artifacts
Steps: 25, Sampler: DPM++ 2M Karras, Size: 768x768

1girl 换成 1boy 就能给男朋友整成《千与千寻》里的白龙,别问我是怎么知道的。


从真人照到动漫风:一步步喂给 SD 吃的数据配方

1. 裁脸

用 Photoshop 或 Photopea 把脸裁成 1:1,背景留白,减少无关像素,显存直接省 30%。

2. 抠姿势(可选)

想保留原姿势?用 OpenPose Editor 插件,把骨架导出成 512×512 PNG,再喂 ControlNet,姿势稳如老狗。

3. 放大再降噪

真人照 2K 分辨率直接塞进去会爆显存,先缩到 768 短边,再用 Topaz Gigapixel 或 Real-ESRGAN 4×放大,最后裁回 768×768,画质秒回高清。


提示词不是写作文,是给 AI 画重点

别写“她有着星辰般的眼眸倒映着前世乡愁”——AI 只会当你放 P。
正确姿势:关键词 + 风格 + 构图 + 光效,逗号隔开,越靠前权重越高。

常用词速查表(抄作业直接粘)

  • 画质:masterpiece, best quality, 8k, extremely detailed
  • 风格:ghibli style, anime, pastel color, soft shading
  • 构图:full body, upper body, looking at viewer, from below
  • 光效:soft light, rim light, volumetric fog
  • 负面:lowres, bad anatomy, extra hands, blurry, photo, realistic

Negative Prompt 别偷懒,不然 AI 真敢给你加八只手

很多人只写 “bad hands”,结果跑出来三只手。
终极兜底模板,复制粘贴永不翻车:

lowres, bad anatomy, bad hands, text, error, missing fingers, 
extra digit, fewer digits, cropped, worst quality, low quality, 
normal quality, jpeg artifacts, signature, watermark, username, 
blurry, artist name, nosebleed, grayscale, monochrome, 
multiple views, comic, sketch, duplicate face, malformed limbs

别嫌长,显存又不会怀孕。


分辨率一拉高就崩?高清修复的正确打开姿势

1. 先小图后放大

txt2img 阶段 512×512,出图后再用 SD Upscale 脚本:

  • Scale 2×
  • Tile 512 overlap 64
  • Denoising 0.3(低于 0.4 不会变脸)

2. 终极懒人包:Ultimate SD Upscale 插件

把上面参数一键封装,还能自动拼回大图,4G 显存跑 2K 无压力。
脚本里勾选 Ultimate SD UpscaleTarget size type: 2×Denoising 0.35,20 步搞定。


风格迁移翻车现场大盘点:脸歪了、衣服融了、背景炸了

翻车症状 病因 急救
脸歪 ControlNet weight 太低 提到 0.7~0.8
衣服融成油画 Denoising 太高 降到 0.4 以下
背景烟花爆炸 真人照背景太复杂 提前把背景抠绿幕,换纯色
手指八爪鱼 没写 “bad hands” 把负面模板粘满

遇到图崩了怎么办?三步定位法快速排雷

  1. 看 Console:显存 OOM 就降分辨率或开 --medvram
  2. 关 LoRA 测裸模:图正常说明 LoRA 冲突,降权重或换版本。
  3. 逐条注释 Prompt:一半一半删,定位哪个词触发崩坏。
    30 秒找出元凶,比烧香拜佛管用。

显存不够别硬刚,这几个参数调低立马回血

参数 作用 4G 显存建议值
–medvram 模型分批加载 必开
–opt-split-attention 注意力切片 必开
Resolution 出图分辨率 ≤768 短边
Steps 采样步数 20~25
Batch size 一次性张数 1
ControlNet processor_res 预处理器分辨率 512

偷偷改几个配置,出图速度直接起飞

  1. xFormers:A1111 启动加 --xformers,速度 +30%,显存 -20%。
  2. Sampler:DPM++ 2M Karras 步数 20 就能媲美 Euler 30 步。
  3. Token合并:把长 prompt 里重复词合并,比如“1girl, beautiful girl”→“1girl”,提速 5%。

批量处理?脚本+API自动化安排上

把 100 张真人照全变宫崎骏,还要下班前交稿?上脚本!

import os, base64, requests, json

WEBUI = "http://127.0.0.1:7860"
os.makedirs("out", exist_ok=True)

def api_img2img(init_img, prompt, neg, save_name):
    with open(init_img, "rb") as f:
        img = base64.b64encode(f.read()).decode()
    payload = {
        "init_images": [img],
        "prompt": prompt,
        "negative_prompt": neg,
        "steps": 20,
        "denoising_strength": 0.55,  # 风格迁移力度
        "width": 768,
        "height": 768,
        "override_settings": {"sd_model_checkpoint": "ghibliMix.safetensors"},
        "alwayson_scripts": {
            "controlnet": {
                "args": [{
                    "input_image": img,
                    "model": "control_v11p_sd15_canny",
                    "module": "canny",
                    "weight": 0.7,
                    "resize_mode": "Resize and Fill"
                }]
            }
        }
    }
    r = requests.post(WEBUI + "/sdapi/v1/img2img", json=payload).json()
    with open(save_name, "wb") as f:
        f.write(base64.b64decode(r["images"][0]))

prompt = "<lora:ghibli_style_offset:0.8>, masterpiece, ghibli style, anime, 1girl"
neg = "lowres, bad hands, photo, realistic"

for idx, file in enumerate(os.listdir("in")):
    api_img2img(f"in/{file}", prompt, neg, f"out/{idx}.png")
    print(f"第 {idx+1} 张出锅")
print("批量完事儿,下班!")

把真人照全放 in/ 文件夹,运行脚本,泡杯咖啡回来收图。


不同艺术风格(水墨/油画/像素)适配技巧差异

风格 关键 LoRA 触发词 专用 Negative
水墨 chinese_ink_v2 ink painting, monochrome colorful, photo
油画 oil painting lora oil on canvas, thick brush anime, clean line
像素 pixel_art_lora pixel art, 8bit, dither smooth, gradient

思路一样,换 LoRA 换触发词,参数照抄,30 秒切换画风。


别光顾着出图,版权和伦理红线得心里有数

  1. 真人脸:别用别人的照片商用,明星脸更别碰,律师函比显存爆掉更酸爽。
  2. LoRA 模型:Civitai 上标 “SAI 1.0” 的禁止商用,接单前先翻协议。
  3. NSFW:公司电脑跑瑟图,IT 部门后台看得一清二楚,别问我怎么知道的。

最后一嗓子:AI 是工具,审美才是你的超能力

Stable Diffusion 再牛,也扛不住你非要把“五彩斑斓的黑”打满屏。
多刷 ArtStation、Pinterest,把配色、构图刻进脑子,再回来看 AI,就像给哈士奇套了牵引绳——
想让它往哪儿跑,它就得往哪儿跑。

祝各位 4G 显存也能壁纸自由,出图不崩脸,手指不多不少永远五根。
要是还翻车,把报错截图甩群里,老哥在线帮你骂显卡。

在这里插入图片描述

Logo

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

更多推荐