Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ execution engines differ; the depicted content and motion should agree.

These controls are independent unless noted otherwise:

| Control | Slow reference | Default | Aggressive | Main impact |
| Control | Slow reference | Balanced fast | Aggressive | Main impact |
|---|---:|---:|---:|---|
| Denoising passes | `--steps 50` | `--steps 20` | `--steps 4..7` | The number always names actual denoising passes. |
| Whole denoiser reuse | `--reuse 1` | `--reuse 2` | `--reuse 3` | At 20 steps: 20, 11, or 8 fresh DiT evaluations. |
Expand Down Expand Up @@ -369,6 +369,11 @@ the media semantics:
-o outputs/fox-image-audio.mp4
```

Reference images use `--ref-image-size match` by default, which preserves the
source aspect ratio while scaling down to approximately the output canvas area.
Use `--ref-image-size max` to retain more source detail, downscaling only when
the source's short edge exceeds 2048 pixels. Neither mode enlarges the source.

Reference flags may be repeated and their command-line order is preserved.
Standalone audio must accompany an image or video reference. Audio references
must be 2–15 seconds; at most three audio inputs are accepted and their total
Expand Down
4 changes: 4 additions & 0 deletions h3.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,11 @@ typedef struct {
int denoise_steps;
} h3_frame;

/* The frame and its RGB data remain valid only for the duration of the call.
* Return zero to continue generation or nonzero to cancel it. */
typedef int (*h3_frame_callback)(const h3_frame *frame, void *opaque);
/* The phase string remains valid only for the duration of the call. Return
* zero to continue generation or nonzero to cancel it. */
typedef int (*h3_progress_callback)(const char *phase, int completed, int total,
void *opaque);

Expand Down
8 changes: 4 additions & 4 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ static void usage(const char *program) {
" --frames N Requested frames (default: 56)\n"
" --seconds N Requested duration at 24 fps (instead of --frames)\n"
" --steps N Denoising passes (default: 20)\n"
" --reuse N Denoiser reuse: 1 close, 2 fast, 3 aggressive\n"
" --layers N DiT blocks: 50 exact, 45 fast, 40 aggressive\n"
" --core-reuse N Core refresh: 1 exact, 4 fast, 6 aggressive\n"
" --reuse N Denoiser reuse: 1 close (default), 2 fast, 3 aggressive\n"
" --layers N DiT blocks: 50 exact (default), 45 fast, 40 aggressive\n"
" --core-reuse N Core refresh: 1 exact (default), 4 fast, 6 aggressive\n"
" --token-reduction Pair video tokens in middle DiT blocks\n"
" --use-int8-row-fc2 Faster one-scale int8 FC2 (M5)\n"
" --use-reference-rope Disable native 256 RoPE adaptation\n"
Expand All @@ -54,7 +54,7 @@ static void usage(const char *program) {
" --ref-video-audio VIDEO AUDIO Append video + soundtrack\n"
" --ref-audio PATH Append an ordered standalone audio clip\n"
" --frames-dir PATH Write generated frames as PPM files\n"
" --show Display a frame after every denoising step (M5)\n"
" --show Display a frame after every denoising step\n"
" --zoom N Terminal image zoom (default: 2 for Retina)\n"
" --profile Print per-phase Metal timing and allocation data\n"
" --info Inspect model/device without mapping weights\n"
Expand Down