ai动漫代码 一些关于动漫的代码
import requests
import base64
获取access_token
def get_token:
host = '
response = requests.get(host)
return response.json["access_token"]
动漫化处理
def img2anime(img_path):
request_url = "
with open(img_path, 'rb') as f:
img = base64.b64encode(f.read)
params = {"image":img}
access_token = get_token
request_url += "?access_token=" + access_token
headers = {'content-type': 'application/x--form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
return response.json
from google import genai
from PIL import Image
设置API Key
genai.configure(api_key='你的API_KEY')
生成宫崎骏风格
def generate_ghibli_style(img_path):
img = Image.open(img_path)
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content([
将这张图片转为宫崎骏动画风格",
img])
return response.images[0]
import cv2
import onnxruntime as rt
加载预训练模型
sess = rt.InferenceSession('anime_model.onnx')
def frame2anime(frame):
预处理
inp = cv2.resize(frame, (256,256)).astype('float32')/127.5
inp = inp.transpose(2,0,1)[np.newaxis,...]
推理
out = sess.run(None, {'input': inp})[0]
后处理
out = (out.squeeze.transpose(1,2,0) + 1) 127.5
return out.astype('uint8')
处理整个视频
def video_process(video_path):
cap = cv2.VideoCapture(video_path)
while cap.isOpened:
ret, frame = cap.read
if not ret: break
anime_frame = frame2anime(frame)
cv2.imshow('Anime', anime_frame)
if cv2.waitKey(1) == ord('q'): break
cap.release
import torch
import torch.nn as nn
生成器网络
class Generator(nn.Module):
def __init__(self):
super.__init__
self.main = nn.Sequential(
nn.ConvTranspose2d(100, 512, 4, 1, 0, bias=False),
nn.BatchNorm2d(512),
nn.ReLU(True),
nn.ConvTranspose2d(512, 256, 4, 2, 1, bias=False),
nn.BatchNorm2d(256),
nn.ReLU(True),
nn.ConvTranspose2d(256, 128, 4, 2, 1, bias=False),
nn.BatchNorm2d(128),
nn.ReLU(True),
nn.ConvTranspose2d(128, 3, 4, 2, 1, bias=False),
nn.Tanh
def forward(self, input):
return self.main(input)
生成示例
def generate_samples(generator, num_samples):
noise = torch.randn(num_samples, 100, 1, 1)
fake_images = generator(noise)
return fake_images
import torch
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained(
stabilityai/stable-diffusion-2-1",
torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "Pixar style character portrait of a person, bright colors, soft lighting
image = pipe(prompt).images[0]
image.save("pixar_style.png")