chore: rename bulkgen to hokusai
This commit is contained in:
parent
a28cc97aed
commit
4def49350e
32 changed files with 215 additions and 213 deletions
38
README.md
38
README.md
|
|
@ -1,9 +1,11 @@
|
|||
# bulkgen
|
||||
# hokusai
|
||||
|
||||
A build tool for AI-generated artifacts. Define image and text targets in a YAML config, and bulkgen handles dependency resolution, incremental builds, and parallel execution.
|
||||
A build tool for AI-generated artifacts. Define image and text targets in a YAML config, and hokusai handles dependency resolution, incremental builds, and parallel execution.
|
||||
|
||||
Uses [Mistral](https://mistral.ai) and [OpenAI](https://openai.com) for text generation, and [BlackForestLabs](https://blackforestlabs.ai) (FLUX) and [OpenAI](https://openai.com) for image generation.
|
||||
|
||||
The name Hokusai was chosen in honor of [Katsushika Hokusai](https://en.wikipedia.org/wiki/Hokusai), who produced over 30,000 paintings, sketches, woodblock prints, and images for picture books, many in larger series.
|
||||
|
||||
## Installation
|
||||
|
||||
Requires Python 3.13+.
|
||||
|
|
@ -28,7 +30,7 @@ export BFL_API_KEY="your-key"
|
|||
export OPENAI_API_KEY="your-key"
|
||||
```
|
||||
|
||||
2. Create a config file (e.g. `my-project.bulkgen.yaml`):
|
||||
2. Create a config file (e.g. `my-project.hokusai.yaml`):
|
||||
|
||||
```yaml
|
||||
defaults:
|
||||
|
|
@ -51,12 +53,12 @@ targets:
|
|||
3. Build:
|
||||
|
||||
```bash
|
||||
bulkgen build
|
||||
hokusai build
|
||||
```
|
||||
|
||||
## Config format
|
||||
|
||||
The config file must be named `<anything>.bulkgen.yaml` and placed in your project directory. One config file per directory.
|
||||
The config file must be named `<anything>.hokusai.yaml` and placed in your project directory. One config file per directory.
|
||||
|
||||
### Top-level fields
|
||||
|
||||
|
|
@ -127,7 +129,7 @@ targets:
|
|||
- research-notes.md # depends on an existing file
|
||||
```
|
||||
|
||||
bulkgen resolves dependencies automatically. If you build a single target, its transitive dependencies are included.
|
||||
hokusai resolves dependencies automatically. If you build a single target, its transitive dependencies are included.
|
||||
|
||||
### Archiving previous outputs
|
||||
|
||||
|
|
@ -145,7 +147,7 @@ On each rebuild of `hero.png`, the previous file is archived as `archive/hero.01
|
|||
|
||||
## CLI
|
||||
|
||||
### `bulkgen build [target]`
|
||||
### `hokusai build [target]`
|
||||
|
||||
Build all targets, or a specific target and its dependencies.
|
||||
|
||||
|
|
@ -153,11 +155,11 @@ Build all targets, or a specific target and its dependencies.
|
|||
- Runs independent targets in parallel
|
||||
- Continues building if a target fails (dependents of the failed target are skipped)
|
||||
|
||||
### `bulkgen clean`
|
||||
### `hokusai clean`
|
||||
|
||||
Remove all generated target files and the build state file (`.bulkgen.state.yaml`). Input files are preserved.
|
||||
Remove all generated target files and the build state file (`.hokusai.state.yaml`). Input files are preserved.
|
||||
|
||||
### `bulkgen graph`
|
||||
### `hokusai graph`
|
||||
|
||||
Print the dependency graph showing build stages:
|
||||
|
||||
|
|
@ -171,7 +173,7 @@ Stage 1 (targets): variant.png, summary.md
|
|||
|
||||
## Incremental builds
|
||||
|
||||
bulkgen tracks the state of each build in `.bulkgen.state.yaml` (auto-generated, add to `.gitignore`). A target is rebuilt when any of these change:
|
||||
hokusai tracks the state of each build in `.hokusai.state.yaml` (auto-generated, add to `.gitignore`). A target is rebuilt when any of these change:
|
||||
|
||||
- Input file contents (SHA-256 hash)
|
||||
- Prompt text
|
||||
|
|
@ -180,7 +182,7 @@ bulkgen tracks the state of each build in `.bulkgen.state.yaml` (auto-generated,
|
|||
|
||||
## Installation with Nix / home-manager
|
||||
|
||||
bulkgen provides a Nix flake with a home-manager module. Add the flake as an input and enable the module:
|
||||
hokusai provides a Nix flake with a home-manager module. Add the flake as an input and enable the module:
|
||||
|
||||
```nix
|
||||
# flake.nix
|
||||
|
|
@ -188,17 +190,17 @@ bulkgen provides a Nix flake with a home-manager module. Add the flake as an inp
|
|||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
bulkgen.url = "github:kfickel/bulkgen"; # adjust to your actual repo URL
|
||||
hokusai.url = "github:kfickel/hokusai"; # adjust to your actual repo URL
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, home-manager, bulkgen, ... }: {
|
||||
outputs = { nixpkgs, home-manager, hokusai, ... }: {
|
||||
# ... your existing config, then in homeConfigurations:
|
||||
homeConfigurations."user" = home-manager.lib.homeManagerConfiguration {
|
||||
# ...
|
||||
modules = [
|
||||
bulkgen.homeManagerModules.bulkgen
|
||||
hokusai.homeManagerModules.hokusai
|
||||
{
|
||||
programs.bulkgen.enable = true;
|
||||
programs.hokusai.enable = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
@ -206,11 +208,11 @@ bulkgen provides a Nix flake with a home-manager module. Add the flake as an inp
|
|||
}
|
||||
```
|
||||
|
||||
This places the `bulkgen` binary on your `$PATH`. To use a different package build (e.g. from a different system or overlay), set `programs.bulkgen.package`.
|
||||
This places the `hokusai` binary on your `$PATH`. To use a different package build (e.g. from a different system or overlay), set `programs.hokusai.package`.
|
||||
|
||||
The flake also exposes:
|
||||
|
||||
- `packages.<system>.bulkgen` — the standalone package, usable without home-manager (e.g. `nix run github:kfickel/bulkgen`)
|
||||
- `packages.<system>.hokusai` — the standalone package, usable without home-manager (e.g. `nix run github:kfickel/hokusai`)
|
||||
- `devShells.<system>.default` — development shell with all dependencies
|
||||
|
||||
## Environment variables
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue