A simple gRPC client for Draw Things written in TypeScript for Node.js
A TypeScript/Node.js client library for the Draw Things gRPC API.
This library wraps the generated gRPC and FlatBuffers code into a user-friendly interface, making it easy to generate images, manage models, and interact with Draw Things programmatically.
npm install dt-grpc-ts
# or
yarn add dt-grpc-tsEnsure your Draw Things app is running and the HTTP/gRPC server is enabled (usually on port 7859).
import { DTService, buildRequest } from 'dt-grpc-ts'
async function main() {
// Connect to the Draw Things service
const service = new DTService('localhost:7859')
// Build a request
const request = buildRequest({
width: 512,
height: 512,
steps: 20,
model: 'Generic (SD 1.5).ckpt' // Use exact model filename or name
}, "a cute cat sitting on a park bench")
// Generate the image
console.log("Generating image...")
const images = await service.generateImage(request)
// Save the result
await images[0].toFile('cat.png')
console.log("Saved to cat.png")
}
main().catch(console.error)The main entry point. It handles the connection to the Draw Things gRPC server.
const service = new DTService('localhost:7859')A helper to construct image generation requests. It supports method chaining for adding images, masks, hints (ControlNet), and overrides.
const req = buildRequest(config, prompt, negativePrompt)
.addImage(await ImageBuffer.fromFile('input.png')) // For img2img
.addHint('depth', await ImageBuffer.fromFile('depth_map.png'), 1.0) // ControlNetA wrapper around image data, powered by sharp. It handles format conversions (Tensor <-> Buffer) and resizing automatically.
const img = await ImageBuffer.fromFile('image.png')
const resized = await resize(img, 512, 512)- Clone the repository.
- Install dependencies:
yarn install - Build the project:
yarn build - Run tests:
yarn test
MIT