Qwen-Image-Lightning与Python入门教学:AI创意编程指南
Qwen-Image-Lightning与Python入门教学:AI创意编程指南
你是不是觉得Python编程有点枯燥,整天对着黑乎乎的终端敲代码,不知道学了能干嘛?或者你看到网上那些酷炫的AI生成图片,心里痒痒的,但又觉得门槛太高,不知道从哪开始?
今天咱们就来点不一样的。我不打算教你那些老掉牙的“打印Hello World”或者“计算斐波那契数列”。咱们直接上手,用Python玩转AI图像生成,一边学编程,一边做出能发朋友圈的酷炫作品。
想象一下这个场景:你写几行Python代码,输入一句“一只戴着墨镜的柯基在冲浪”,几秒钟后,一张高清的冲浪柯基图片就生成了。或者你想给朋友做个生日贺卡,写段代码,输入“生日蛋糕上写着‘生日快乐,老王’”,一张带定制文字的蛋糕图片就出来了。
这就是咱们今天要玩的:用Qwen-Image-Lightning这个AI模型,结合Python,实现从文字到图像的魔法转换。而且我保证,就算你昨天才安装Python,今天也能跟着做出来。
1. 环境准备:给你的电脑装上“魔法工具箱”
在开始变魔术之前,咱们得先把工具准备好。别担心,整个过程就像安装手机APP一样简单。
1.1 Python环境检查
首先,打开你的终端(Windows用户按Win+R,输入cmd;Mac用户打开终端应用)。输入下面这行命令,看看Python是不是已经装好了:
python --version
如果你看到类似“Python 3.8”或更高的版本号,那就没问题。如果提示“python不是内部或外部命令”,那你就需要先去Python官网下载安装包。记得安装时勾选“Add Python to PATH”这个选项。
1.2 安装必要的Python库
接下来,咱们需要安装几个Python库。你可以把这些库想象成乐高积木的不同零件,每个零件都有特定的功能。
在终端里输入以下命令:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
pip install diffusers transformers accelerate pillow
让我解释一下这些“积木零件”都是干嘛的:
- torch:这是PyTorch,一个深度学习框架,相当于AI的大脑
- diffusers:专门用来跑图像生成模型的库,咱们今天的主角
- transformers:处理文本输入的库,能把你的文字描述转换成AI能理解的语言
- pillow:Python里处理图片的库,用来保存和显示生成的图片
安装过程可能需要几分钟,取决于你的网速。如果遇到网络问题,可以试试加上国内镜像源:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple
1.3 验证安装是否成功
安装完成后,咱们写个简单的测试脚本,确保一切正常。创建一个新文件,命名为test_install.py,然后输入以下代码:
import torch
import diffusers
from PIL import Image
print("PyTorch版本:", torch.__version__)
print("CUDA是否可用:", torch.cuda.is_available())
print("Diffusers版本:", diffusers.__version__)
# 创建一个空白图片测试PIL
img = Image.new('RGB', (100, 100), color='red')
img.save('test_red.png')
print("测试图片已保存为test_red.png")
运行这个脚本:
python test_install.py
如果看到输出版本信息,并且生成了一个红色的测试图片,恭喜你,环境搭建成功!
2. 初识Qwen-Image-Lightning:你的AI画师
在开始写代码之前,咱们先简单了解一下今天要用的“魔法画笔”——Qwen-Image-Lightning。
2.1 什么是Qwen-Image-Lightning?
你可以把它想象成一个超级聪明的AI画师。你告诉它你想要什么画面(用文字描述),它就能给你画出来。而且这个画师有两个特别厉害的特点:
- 速度快:普通AI画师可能需要画50笔才能完成一幅画,但这个画师只需要4-8笔就能画出差不多的效果,速度提升了10倍以上。
- 文字能力强:很多AI画师不擅长在画里写文字,但这个画师特别擅长,你让它画个招牌,它真能把字写清楚。
2.2 它和普通AI画师有什么区别?
为了让你更直观地理解,我做了个简单的对比:
| 特点 | 普通AI模型 | Qwen-Image-Lightning |
|---|---|---|
| 生成速度 | 慢(可能需要几十秒) | 快(几秒钟) |
| 显存占用 | 高(可能需要8GB以上) | 低(4GB就能跑) |
| 文字渲染 | 一般(经常写错字) | 优秀(中英文都擅长) |
| 使用难度 | 较高(需要调很多参数) | 较低(开箱即用) |
说白了,Qwen-Image-Lightning就是为咱们这种想快速上手、不想折腾太多参数的人设计的。
3. 第一个AI图像生成程序:从文字到图片
好了,工具准备好了,画师也请来了,现在咱们开始真正的魔法表演。
3.1 创建你的第一个生成脚本
新建一个文件,命名为first_ai_image.py,咱们一步步来写代码。
首先,导入需要的库:
import torch
from diffusers import DiffusionPipeline
from PIL import Image
import os
print("正在加载AI画师...请稍等")
3.2 加载AI模型
这里有个小技巧:咱们不需要下载整个巨大的模型文件。Diffusers库会自动从网上下载需要的部分,就像在线看视频一样,看哪段下载哪段。
# 指定使用哪个模型
model_id = "Qwen/Qwen-Image-2512"
# 创建图像生成管道
pipe = DiffusionPipeline.from_pretrained(
model_id,
torch_dtype=torch.bfloat16, # 使用bfloat16精度,节省显存
device_map="auto" # 自动选择GPU或CPU
)
print("AI画师加载完成!")
3.3 加载加速模块(Lightning LoRA)
这是Qwen-Image-Lightning的精华所在。LoRA你可以理解为一个“加速器”,让模型跑得更快。
# 加载Lightning加速模块
lora_path = "lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32"
# 将加速模块应用到模型上
pipe.load_lora_weights(lora_path)
pipe.fuse_lora() # 融合加速模块,让推理更快
print("加速模块加载完成!现在可以快速生成图片了")
3.4 写一个简单的生成函数
为了让代码更整洁,咱们把生成图片的逻辑封装成一个函数:
def generate_image(prompt, output_name="output.png", steps=4):
"""
根据文字描述生成图片
参数:
prompt: 文字描述,比如"一只可爱的猫咪"
output_name: 输出图片的文件名
steps: 生成步数,4步就是快速模式,8步质量更好但慢一些
"""
print(f"正在生成:{prompt}")
# 设置随机种子,让结果可复现
generator = torch.Generator(device="cuda").manual_seed(42)
# 生成图片!
image = pipe(
prompt=prompt,
num_inference_steps=steps, # 生成步数
guidance_scale=1.0, # 提示词权重
generator=generator,
height=512, # 图片高度
width=512 # 图片宽度
).images[0]
# 保存图片
image.save(output_name)
print(f"图片已保存为:{output_name}")
# 显示图片(如果你在Jupyter Notebook里运行)
# display(image)
return image
3.5 运行你的第一个AI生成
现在,调用这个函数,生成你的第一张AI图片:
if __name__ == "__main__":
# 生成一张简单的图片
prompt = "一只戴着墨镜的柯基犬在海滩上晒太阳,风格卡通"
generate_image(prompt, "corgi_beach.png")
print("\n 恭喜!你的第一张AI图片生成成功!")
print("快去查看当前目录下的 corgi_beach.png 文件吧!")
运行这个脚本:
python first_ai_image.py
第一次运行可能会花点时间下载模型文件(大概几分钟),下载完成后就能看到生成过程了。如果你的电脑有GPU,整个过程大概10-20秒;如果只有CPU,可能需要1-2分钟。
4. 玩转提示词:如何让AI听懂你的话
你可能发现了,生成图片的质量很大程度上取决于你怎么“描述”你想要的画面。这就是所谓的“提示词工程”。别被这个词吓到,其实就是“怎么跟AI说话能让它听懂”。
4.1 提示词的基本结构
一个好的提示词通常包含这几个部分:
# 这是一个完整的提示词示例
good_prompt = """
主体:一个穿着汉服的女孩
场景:在樱花盛开的古风庭院里
动作:正在弹奏古筝
细节:阳光透过樱花洒下来,有花瓣飘落
风格:中国风水墨画风格,柔和的光线
质量:高清,细节丰富,8K分辨率
"""
# 实际使用时可以简化为:
simple_prompt = "一个穿着汉服的女孩在樱花盛开的庭院里弹奏古筝,中国风水墨画风格,高清细节"
4.2 不同风格的提示词示例
我整理了几个不同风格的提示词,你可以直接复制使用:
# 写实风格
realistic_prompt = "一个亚洲年轻女性在咖啡馆里用笔记本电脑工作,自然光,摄影风格,细节丰富,真实感强"
# 动漫风格
anime_prompt = "魔法少女在星空下施展魔法,动漫风格,大眼睛,色彩鲜艳,背景有星光特效"
# 科幻风格
sci_fi_prompt = "未来城市夜景,飞行汽车穿梭在高楼之间,霓虹灯闪烁,赛博朋克风格,雨中街道有倒影"
# 中国风
chinese_style_prompt = "山水画中的渔翁独钓寒江雪,水墨风格,留白艺术,意境深远"
# 包含文字的提示词(Qwen-Image-Lightning的强项)
text_prompt = "一个咖啡店招牌,上面写着'喵喵咖啡馆',下面有小字'营业时间:9:00-21:00',招牌是木质复古风格"
4.3 写一个批量生成脚本
现在咱们写个更实用的脚本,可以一次生成多张不同风格的图片:
import torch
from diffusers import DiffusionPipeline
from PIL import Image
import time
def batch_generate_images():
"""批量生成不同风格的图片"""
# 加载模型(只需要加载一次)
print("正在初始化AI画师...")
pipe = DiffusionPipeline.from_pretrained(
"Qwen/Qwen-Image-2512",
torch_dtype=torch.bfloat16,
device_map="auto"
)
# 加载加速模块
pipe.load_lora_weights("lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32")
pipe.fuse_lora()
print("准备就绪,开始生成...")
# 定义要生成的图片列表
image_tasks = [
{
"prompt": "一只橘猫在书店的窗台上睡觉,阳光洒在身上,旁边有本书",
"filename": "cat_in_bookstore.png",
"style": "写实"
},
{
"prompt": "机械龙在蒸汽朋克城市上空飞翔,齿轮和管道细节,黄昏时分",
"filename": "steampunk_dragon.png",
"style": "科幻"
},
{
"prompt": "生日蛋糕上写着'生日快乐,小明',周围有气球和礼物,温馨氛围",
"filename": "birthday_cake.png",
"style": "节日"
},
{
"prompt": "武侠剑客在竹林中对决,水墨画风格,动作飘逸,有剑气特效",
"filename": "wuxia_duel.png",
"style": "中国风"
}
]
# 批量生成
for i, task in enumerate(image_tasks):
print(f"\n正在生成第{i+1}张图片:{task['style']}风格")
start_time = time.time()
# 生成图片
image = pipe(
prompt=task["prompt"],
num_inference_steps=4,
guidance_scale=1.0,
height=512,
width=512
).images[0]
# 保存图片
image.save(task["filename"])
end_time = time.time()
print(f"✓ 生成完成!保存为 {task['filename']}")
print(f" 耗时:{end_time - start_time:.1f}秒")
print("\n 所有图片生成完成!")
print("生成的文件列表:")
for task in image_tasks:
print(f" - {task['filename']} ({task['style']}风格)")
if __name__ == "__main__":
batch_generate_images()
运行这个脚本,你会一次性得到4张不同风格的图片。看看AI是不是真的理解了你的描述?
5. 进阶技巧:让生成的图片更符合预期
有时候AI可能不会完全按照你的想法来,这时候就需要一些技巧来“引导”它。
5.1 使用负面提示词
负面提示词就是告诉AI“不要什么东西”。比如你不想要水印,不想要模糊,不想要畸形的手(AI画手一直是个难题)。
def generate_with_negative_prompt():
"""使用负面提示词生成更高质量的图片"""
pipe = DiffusionPipeline.from_pretrained(
"Qwen/Qwen-Image-2512",
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe.load_lora_weights("lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32")
pipe.fuse_lora()
prompt = "一个程序员在深夜写代码,桌子上有咖啡和多个显示器"
# 负面提示词:告诉AI要避免什么
negative_prompt = """
模糊,水印,文字,畸形手,多余的手指,扭曲的脸,
低质量,像素化,噪点,丑陋,恐怖,恐怖元素
"""
print("正在生成高质量程序员图片...")
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt, # 加入负面提示词
num_inference_steps=8, # 用8步获得更好质量
guidance_scale=1.2, # 稍微提高提示词权重
height=768, # 更高分辨率
width=512 # 竖屏比例
).images[0]
image.save("programmer_night.png")
print("高质量图片生成完成!")
return image
5.2 控制生成种子
生成种子就像图片的“DNA序列”。同样的种子+同样的提示词,会生成几乎一样的图片。这在你想要微调或者生成系列图片时特别有用。
def generate_variations():
"""生成同一主题的不同变体"""
pipe = DiffusionPipeline.from_pretrained(
"Qwen/Qwen-Image-2512",
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe.load_lora_weights("lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32")
pipe.fuse_lora()
base_prompt = "一个宇航员在火星表面,背后是地球"
# 用不同的种子生成变体
seeds = [42, 123, 456, 789, 999]
for i, seed in enumerate(seeds):
print(f"生成变体 {i+1}/5,种子:{seed}")
generator = torch.Generator(device="cuda").manual_seed(seed)
image = pipe(
prompt=base_prompt,
generator=generator,
num_inference_steps=4,
guidance_scale=1.0,
height=512,
width=512
).images[0]
image.save(f"astronaut_variant_{i+1}.png")
print("所有变体生成完成!")
print("你会发现,虽然主题相同,但每张图片的细节都不同")
5.3 调整图片尺寸和比例
不同的用途需要不同的图片比例:
def generate_different_sizes():
"""生成不同尺寸的图片"""
pipe = DiffusionPipeline.from_pretrained(
"Qwen/Qwen-Image-2512",
torch_dtype=torch.bfloat16,
device_map="auto"
)
pipe.load_lora_weights("lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32")
pipe.fuse_lora()
prompt = "日落时分的海边,椰子树剪影,温暖色调"
# 不同用途的图片尺寸
sizes = [
("手机壁纸", 1080, 1920), # 9:16 竖屏
("电脑壁纸", 1920, 1080), # 16:9 横屏
("正方形", 1024, 1024), # 1:1 正方形
("小红书封面", 1242, 1660), # 3:4 竖屏
]
for name, width, height in sizes:
print(f"生成{name}尺寸:{width}x{height}")
image = pipe(
prompt=prompt,
num_inference_steps=4,
guidance_scale=1.0,
height=height,
width=width
).images[0]
image.save(f"beach_{name}.png")
print("不同尺寸的图片已生成完成!")
6. 实战项目:制作个性化生日贺卡
学了这么多,咱们来个实战项目,把学到的都用上。我们要做一个自动生成个性化生日贺卡的程序。
6.1 项目需求
假设你的朋友小明要过生日了,你想送他一张AI生成的生日贺卡,要求:
- 贺卡上有他的名字
- 有生日相关的元素(蛋糕、气球等)
- 可以根据不同的朋友生成不同风格的贺卡
6.2 完整代码实现
import torch
from diffusers import DiffusionPipeline
from PIL import Image, ImageDraw, ImageFont
import datetime
class BirthdayCardGenerator:
"""生日贺卡生成器"""
def __init__(self):
print("初始化贺卡生成器...")
self.pipe = DiffusionPipeline.from_pretrained(
"Qwen/Qwen-Image-2512",
torch_dtype=torch.bfloat16,
device_map="auto"
)
self.pipe.load_lora_weights("lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32")
self.pipe.fuse_lora()
print("贺卡生成器准备就绪!")
def generate_background(self, name, style="温馨"):
"""生成贺卡背景图片"""
# 根据风格选择不同的提示词
style_prompts = {
"温馨": f"生日贺卡背景,柔和色调,有蛋糕、气球、礼物元素,温馨氛围,适合{name}的生日",
"酷炫": f"生日贺卡背景,炫酷科技风,霓虹灯效果,有数字'{name}'显示,未来感",
"自然": f"生日贺卡背景,自然风格,花草元素,阳光明媚,清新氛围,为{name}庆祝生日",
"简约": f"生日贺卡背景,简约设计,留白艺术,优雅字体写着'{name}',现代感"
}
prompt = style_prompts.get(style, style_prompts["温馨"])
print(f"正在生成{style}风格的背景...")
image = self.pipe(
prompt=prompt,
negative_prompt="文字,水印,模糊,低质量",
num_inference_steps=8, # 用8步获得更好质量
guidance_scale=1.2,
height=1024,
width=768
).images[0]
return image
def add_birthday_text(self, image, name, age=None):
"""在图片上添加生日文字"""
# 创建一个可以在图片上绘制的对象
draw = ImageDraw.Draw(image)
# 生日祝福语
if age:
text = f"Happy {age}th Birthday!\n{name}"
else:
text = f"Happy Birthday!\n{name}"
# 尝试加载字体,如果失败就用默认字体
try:
# 你可以下载一个好看的字体文件放在同级目录
font = ImageFont.truetype("arial.ttf", 60)
except:
font = ImageFont.load_default()
# 计算文字位置(居中)
text_width = draw.textlength(text, font=font)
text_height = 120 # 两行文字的大概高度
position = (
(image.width - text_width) // 2,
image.height - text_height - 50 # 底部留白
)
# 添加文字阴影效果(先画深色背景)
shadow_color = (0, 0, 0, 150) # 半透明黑色
for dx in [-2, 0, 2]:
for dy in [-2, 0, 2]:
if dx == 0 and dy == 0:
continue
draw.text(
(position[0] + dx, position[1] + dy),
text,
font=font,
fill=shadow_color
)
# 添加主文字(白色)
draw.text(
position,
text,
font=font,
fill=(255, 255, 255) # 白色
)
# 添加小字祝福
wishes = "Wishing you all the best on your special day!"
small_font = ImageFont.truetype("arial.ttf", 30) if 'font' in locals() else ImageFont.load_default()
wishes_width = draw.textlength(wishes, font=small_font)
draw.text(
((image.width - wishes_width) // 2, position[1] + 130),
wishes,
font=small_font,
fill=(255, 255, 200) # 浅黄色
)
return image
def generate_card(self, name, age=None, style="温馨"):
"""生成完整的生日贺卡"""
print(f"\n开始为{name}生成生日贺卡...")
print(f"风格:{style}")
if age:
print(f"年龄:{age}岁")
# 1. 生成背景
background = self.generate_background(name, style)
# 2. 添加文字
card = self.add_birthday_text(background, name, age)
# 3. 保存贺卡
filename = f"birthday_card_{name}_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
card.save(filename)
print(f"🎂 生日贺卡生成完成!")
print(f" 保存为:{filename}")
print(f" 尺寸:{card.width}x{card.height}像素")
return card, filename
def main():
"""主函数:为多个朋友生成贺卡"""
# 创建贺卡生成器
generator = BirthdayCardGenerator()
# 朋友列表
friends = [
{"name": "小明", "age": 25, "style": "温馨"},
{"name": "Alex", "age": 30, "style": "酷炫"},
{"name": "小花", "age": None, "style": "自然"}, # 不指定年龄
{"name": "David", "age": 28, "style": "简约"},
]
print(f"将为{len(friends)}位朋友生成生日贺卡")
print("=" * 50)
# 为每个朋友生成贺卡
generated_cards = []
for friend in friends:
card, filename = generator.generate_card(
name=friend["name"],
age=friend["age"],
style=friend["style"]
)
generated_cards.append({
"name": friend["name"],
"filename": filename,
"style": friend["style"]
})
print("-" * 50)
# 生成完成报告
print("\n" + "=" * 50)
print(" 所有生日贺卡生成完成!")
print("\n生成的文件列表:")
for card_info in generated_cards:
print(f" • {card_info['name']}: {card_info['filename']} ({card_info['style']}风格)")
print("\n 使用建议:")
print(" 1. 可以直接发送电子版给朋友")
print(" 2. 可以打印出来作为实体贺卡")
print(" 3. 可以分享到社交媒体@你的朋友")
print(" 4. 可以修改代码中的名字和风格,生成更多贺卡")
if __name__ == "__main__":
main()
运行这个程序,你会得到4张不同风格、不同名字的生日贺卡。每张贺卡都是独一无二的,而且完全个性化。
7. 常见问题与解决方案
在实际操作中,你可能会遇到一些问题。别担心,我整理了最常见的几个问题和解决方法。
7.1 内存不足问题
如果你的显卡显存小于4GB,可能会遇到内存不足的错误。试试这些方法:
# 方法1:使用更低精度的版本
pipe = DiffusionPipeline.from_pretrained(
"Qwen/Qwen-Image-2512",
torch_dtype=torch.float16, # 使用float16而不是bfloat16
device_map="auto"
)
# 方法2:启用CPU卸载(显存非常小时)
pipe.enable_model_cpu_offload()
# 方法3:使用更小的图片尺寸
image = pipe(
prompt="你的描述",
height=384, # 更小的高度
width=384, # 更小的宽度
num_inference_steps=4
).images[0]
7.2 生成速度慢
如果生成一张图片要等很久,可以尝试:
# 方法1:确保使用了Lightning加速
pipe.load_lora_weights("lightx2v/Qwen-Image-2512-Lightning-4steps-V1.0-fp32")
pipe.fuse_lora()
# 方法2:减少生成步数
image = pipe(prompt="描述", num_inference_steps=4) # 用4步而不是8步
# 方法3:检查是否在使用GPU
print("是否使用GPU:", torch.cuda.is_available())
print("GPU名称:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "无GPU")
7.3 图片质量不理想
如果生成的图片模糊或者不符合预期:
# 方法1:增加生成步数
image = pipe(prompt="描述", num_inference_steps=8) # 从4步增加到8步
# 方法2:调整提示词权重
image = pipe(prompt="描述", guidance_scale=1.5) # 默认1.0,可以尝试1.2-2.0
# 方法3:使用更详细的提示词
detailed_prompt = """
主体:一个微笑的女孩
场景:在向日葵花田中
动作:手捧向日葵,微微抬头
细节:阳光明媚,有蝴蝶飞舞,远处有小房子
风格:油画风格,笔触明显,色彩鲜艳
质量:高清,细节丰富,艺术感强
"""
7.4 中文提示词效果不好
Qwen-Image-Lightning对中文支持很好,但如果效果不理想:
# 方法1:中英文混合提示词
mixed_prompt = "一个女孩在读书,Chinese style painting,水墨画风格"
# 方法2:使用更简单直接的中文
simple_chinese = "山水画,有山有水有船,水墨风格"
# 方法3:关键部分用英文
key_english = "中国龙在天空飞翔,dragon detailed scales, majestic, clouds"
8. 总结与下一步学习建议
跟着教程走到这里,你已经掌握了用Python和Qwen-Image-Lightning生成AI图片的基本技能。从环境搭建到第一个生成程序,从简单的文字描述到复杂的生日贺卡项目,你不仅学会了技术操作,更重要的是理解了如何让AI为你创造价值。
回顾一下,咱们今天其实做了几件挺酷的事情:把枯燥的Python学习变成了有趣的创意实践,用代码召唤出了一个AI画师,还让它为你的朋友定制了生日贺卡。这种“学以致用”的感觉,比单纯记语法要有意思多了吧?
用下来我感觉,Qwen-Image-Lightning对新手确实很友好,速度快、要求低,而且中文支持好。虽然有些复杂场景下细节可能不如那些需要几十步的模型,但对于大多数日常需求来说完全够用了。
如果你还想继续深入,我建议可以从这几个方向试试:一是研究一下怎么用AI生成更复杂的多图系列,比如漫画故事;二是学习怎么把生成的图片用到实际项目里,比如网站配图或者社交媒体内容;三是探索其他AI模型,看看不同模型有什么特点。最重要的是保持动手实践,每个小项目都会让你对Python和AI有更深的理解。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐
所有评论(0)