# Install NOVAI
pip install novai
# Generate an image
from novai import Canvas
canvas = Canvas()
node = canvas.add_model("stable-diffusion-xl")
result = node.generate("A cyberpunk city at dusk")
result.save("output.png")
// Install NOVAI
// npm install @novai/sdk
import { Canvas } from "@novai/sdk";
const canvas = new Canvas();
const node = canvas.addModel("stable-diffusion-xl");
const result = await node.generate("A cyberpunk city at dusk");
result.save("output.png");
# Create an AI pipeline
from novai import Workflow
wf = Workflow()
wf.add_node("input", "text_prompt")
wf.add_node("process", "stable-diffusion-xl")
wf.add_node("output", "image_saver")
wf.connect("input", "process")
wf.connect("process", "output")
wf.run("A futuristic city")
# Outputs to /output/result.png
import { Workflow } from "@novai/sdk";
const wf = new Workflow();
wf.addNode("input", "text_prompt");
wf.addNode("process", "stable-diffusion-xl");
wf.addNode("output", "image_saver");
wf.connect("input", "process");
wf.connect("process", "output");
await wf.run("A futuristic city");
# Register a custom node
from novai import Extension, NodeRegistry
@NodeRegistry.register("my-filter")
class MyFilter(Extension):
def process(self, image):
# Apply custom filter
return image.invert().blur(2)
# Now use in canvas:
canvas.add_model("my-filter")
import { Extension, registerNode } from "@novai/sdk";
@registerNode("my-filter")
class MyFilter extends Extension {
process(image: Image) {
return image.invert().blur(2);
}
}