返回Skills库
使用AI模型(FLUX、Nano Banana 2)生成或编辑图像。用于通用图像生成,包括照片、插图、艺术品、视觉资产、概念艺术和任何非技术图表或原理图。对于流程图、电路、通路和技术图表,请改用scientific-schematics技能。
图像生成
概述
图像生成技能使用DALL-E 3(OpenAI)或Stable Diffusion(Stability AI)根据文本描述生成高质量图像。它支持多种生成模式,包括文本到图像、图像到图像、图像编辑和图像修复。
何时使用此技能
使用图像生成当:
- 创建科学可视化:生成分子结构、细胞过程、生物系统的插图
- 生成图表:创建流程图、示意图、概念图
- 创建插图:为论文、演示文稿、海报生成插图
- 图像编辑:修改现有图像、添加元素、更改风格
- 图像修复:修复损坏的图像、移除不需要的元素
- 概念设计:可视化实验设计、产品概念、用户界面
核心功能
1. DALL-E 3(OpenAI)
文本到图像
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.images.generate(
model="dall-e-3",
prompt="一个详细的蛋白质结构图,显示α螺旋和β折叠,使用科学准确的配色方案",
size="1024x1024",
quality="standard",
n=1
)
image_url = response.data[0].url图像编辑
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.images.edit(
model="dall-e-2",
image=open("original.png", "rb"),
mask=open("mask.png", "rb"),
prompt="在图像中添加一个DNA双螺旋结构",
n=1,
size="1024x1024"
)
image_url = response.data[0].url图像变体
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.images.create_variation(
model="dall-e-2",
image=open("original.png", "rb"),
n=1,
size="1024x1024"
)
image_url = response.data[0].url2. Stable Diffusion
文本到图像
from diffusers import StableDiffusionPipeline
import torch
# 加载模型
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 生成图像
prompt = "一个详细的蛋白质结构图,显示α螺旋和β折叠,使用科学准确的配色方案"
negative_prompt = "模糊、低质量、变形"
image = pipe(
prompt,
negative_prompt=negative_prompt,
num_inference_steps=50,
guidance_scale=7.5
).images[0]
# 保存图像
image.save("protein_structure.png")图像到图像
from diffusers import StableDiffusionImg2ImgPipeline
import torch
from PIL import Image
# 加载模型
pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 加载输入图像
init_image = Image.open("input.png").convert("RGB")
# 生成图像
prompt = "将此图像转换为科学插图风格"
negative_prompt = "模糊、低质量、变形"
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
image=init_image,
strength=0.75,
guidance_scale=7.5,
num_inference_steps=50
).images[0]
# 保存图像
image.save("output.png")图像修复
from diffusers import StableDiffusionInpaintPipeline
import torch
from PIL import Image
# 加载模型
pipe = StableDiffusionInpaintPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 加载图像和掩码
init_image = Image.open("original.png").convert("RGB")
mask_image = Image.open("mask.png").convert("RGB")
# 修复图像
prompt = "在掩码区域添加一个DNA双螺旋结构"
negative_prompt = "模糊、低质量、变形"
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
image=init_image,
mask_image=mask_image,
guidance_scale=7.5,
num_inference_steps=50
).images[0]
# 保存图像
image.save("inpainting.png")3. 高级功能
批量生成
from diffusers import StableDiffusionPipeline
import torch
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
prompts = [
"蛋白质结构图1",
"蛋白质结构图2",
"蛋白质结构图3"
]
for i, prompt in enumerate(prompts):
image = pipe(prompt, num_inference_steps=50).images[0]
image.save(f"protein_structure_{i}.png")风格迁移
from diffusers import StableDiffusionControlNetPipeline
import torch
from PIL import Image
# 加载模型
pipe = StableDiffusionControlNetPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
controlnet="lllyasviel/sd-controlnet-canny",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 加载边缘图
control_image = Image.open("edges.png")
# 生成图像
prompt = "科学插图风格"
image = pipe(
prompt=prompt,
control_image=control_image,
num_inference_steps=50,
controlnet_conditioning_scale=1.0
).images[0]
image.save("style_transfer.png")超分辨率
from diffusers import StableDiffusionUpscalePipeline
import torch
from PIL import Image
# 加载模型
pipe = StableDiffusionUpscalePipeline.from_pretrained(
"stabilityai/sd-x2-latent-upscaler",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 加载低分辨率图像
low_res_img = Image.open("low_res.png")
# 超分辨率
prompt = "高质量科学插图"
upscaled_image = pipe(
prompt=prompt,
image=low_res_img,
num_inference_steps=50,
guidance_scale=7.5
).images[0]
# 保存图像
upscaled_image.save("high_res.png")常见工作流
工作流1:生成科学插图
from diffusers import StableDiffusionPipeline
import torch
# 加载模型
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 生成多个变体
prompts = [
"一个详细的蛋白质结构图,显示α螺旋和β折叠,使用科学准确的配色方案,专业科学插图风格",
"细胞膜结构图,显示磷脂双分子层、膜蛋白和胆固醇分子,3D渲染风格",
"DNA复制过程图,显示解旋酶、DNA聚合酶和引物酶,教育插图风格"
]
for i, prompt in enumerate(prompts):
image = pipe(
prompt,
num_inference_steps=50,
guidance_scale=7.5
).images[0]
image.save(f"scientific_illustration_{i}.png")工作流2:图像编辑和优化
from diffusers import StableDiffusionImg2ImgPipeline
import torch
from PIL import Image
# 加载模型
pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 加载原始图像
original_image = Image.open("original.png").convert("RGB")
# 编辑图像
prompts = [
"将图像转换为科学插图风格",
"提高图像质量,使其更清晰和专业",
"添加科学标注和标签"
]
for i, prompt in enumerate(prompts):
edited_image = pipe(
prompt=prompt,
image=original_image,
strength=0.75,
num_inference_steps=50,
guidance_scale=7.5
).images[0]
edited_image.save(f"edited_image_{i}.png")工作流3:创建流程图
from diffusers import StableDiffusionPipeline
import torch
# 加载模型
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
# 生成流程图
prompts = [
"PCR反应流程图,显示变性、退火和延伸步骤,专业科学插图风格",
"蛋白质合成流程图,显示转录和翻译过程,教育插图风格",
"细胞信号转导通路图,显示受体激活和下游信号,专业科学插图风格"
]
for i, prompt in enumerate(prompts):
image = pipe(
prompt,
num_inference_steps=50,
guidance_scale=7.5
).images[0]
image.save(f"flowchart_{i}.png")最佳实践
- 提示工程:使用详细、具体的描述以获得更好的结果
- 负面提示:使用负面提示避免不需要的元素
- 迭代优化:生成多个变体并选择最好的
- 后处理:使用图像编辑工具进一步优化生成的图像
- 风格一致性:在系列图像中使用一致的提示以保持风格
- 分辨率:使用高分辨率模型或超分辨率以获得更好的质量
- GPU加速:使用GPU加速以提高生成速度
与其他工具集成
与matplotlib集成
import matplotlib.pyplot as plt
from diffusers import StableDiffusionPipeline
import torch
# 生成图像
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
image = pipe("科学插图", num_inference_steps=50).images[0]
# 使用matplotlib显示
plt.figure(figsize=(10, 10))
plt.imshow(image)
plt.axis('off')
plt.show()与Pillow集成
from PIL import Image, ImageDraw, ImageFont
from diffusers import StableDiffusionPipeline
import torch
# 生成图像
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
image = pipe("科学插图", num_inference_steps=50).images[0]
# 添加标注
draw = ImageDraw.Draw(image)
font = ImageFont.truetype("arial.ttf", 24)
draw.text((50, 50), "蛋白质结构", fill="white", font=font)
# 保存图像
image.save("annotated_image.png")与OpenCV集成
import cv2
import numpy as np
from diffusers import StableDiffusionPipeline
import torch
# 生成图像
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
)
pipe = pipe.to("cuda")
image = pipe("科学插图", num_inference_steps=50).images[0]
# 转换为OpenCV格式
cv_image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
# 应用图像处理
processed_image = cv2.GaussianBlur(cv_image, (5, 5), 0)
# 保存图像
cv2.imwrite("processed_image.png", processed_image)故障排除
问题:生成图像质量差
- 解决方案:增加num_inference_steps,调整guidance_scale,或使用更好的提示
问题:生成速度慢
- 解决方案:使用GPU加速,减少num_inference_steps,或使用更小的模型
问题:不符合预期
- 解决方案:改进提示,添加负面提示,或生成多个变体
问题:内存不足
- 解决方案:使用更小的模型,减少batch size,或使用CPU
问题:风格不一致
- 解决方案:在提示中指定风格,使用ControlNet,或使用风格迁移
其他资源
- DALL-E文档: https://platform.openai.com/docs/guides/images
- Stable Diffusion文档: https://huggingface.co/docs/diffusers
- Diffusers库: https://github.com/huggingface/diffusers
- 提示工程指南: https://prompthero.com/stable-diffusion-prompts
兼容工具
Claude CodeOpenClawHermes Agent
站内相关工具
数据来源:claude-scientific-skills(MIT 许可) | 查看上游来源
上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18
本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明。