You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python函数中调用带参数的style.py文件?

封装style.py调用为可配置参数的Python函数

这里给你两种常用的实现方式,分别适配不同的运行场景:

1. Jupyter Notebook/Lab 环境下的实现

如果你是在Jupyter环境中使用,直接基于原有的魔法命令改造,让函数支持自定义参数即可:

def run_style_transfer(gpu=0, image_path="xyz.png", output_path="abc.png"):
    !python style.py -gpu {gpu} -image {image_path} -output {output_path}

使用方式

调用时可以按需传入参数,不需要的参数用默认值:

# 使用默认参数
run_style_transfer()

# 自定义参数
run_style_transfer(gpu=1, image_path="my_photo.jpg", output_path="styled_photo.png")

2. 普通Python脚本环境下的实现

如果是在普通Python脚本中运行,!魔法命令无法使用,需要用标准库的subprocess模块来执行外部命令,安全性和可移植性更好:

import subprocess

def run_style_transfer(gpu=0, image_path="xyz.png", output_path="abc.png"):
    # 构造命令列表,避免shell注入风险
    cmd_command = [
        "python",
        "style.py",
        "-gpu", str(gpu),
        "-image", image_path,
        "-output", output_path
    ]
    
    # 执行命令并捕获输出
    execution_result = subprocess.run(cmd_command, capture_output=True, text=True)
    
    # 处理执行结果
    if execution_result.returncode == 0:
        print(f"风格迁移完成,结果已保存到 {output_path}")
    else:
        print("执行出错,错误信息:")
        print(execution_result.stderr)

使用方式

和Jupyter版本的调用逻辑一致:

run_style_transfer(gpu=0, image_path="input_img.png", output_path="final_result.png")

注意事项

  • 确保style.py文件和当前代码在同一目录下,或者在命令中传入style.py的绝对路径(比如"/home/user/projects/style.py")
  • GPU参数要和你的硬件配置匹配,比如只有单GPU的机器只能传入0
  • 如果使用虚拟环境,要确保调用的python是对应环境的解释器,必要时可以换成虚拟环境的python绝对路径

内容的提问来源于stack exchange,提问作者Atakan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:50:26