User Guide

1. What This App Does

StableSteering is a research prototype for interactive image-generation steering. Instead of only rewriting prompts, it lets you evaluate candidate image variations across multiple rounds and provide feedback so the system can update its steering state.

The current version runs with a real Diffusers backend by default. The mock generator exists only inside explicit test harnesses.

The app also records backend and frontend trace events so session behavior is easier to inspect while you work.

If you are learning the system for the first time, start with student_tutorial.md.

2. Main Workflow

The basic flow is:

  1. enter a text prompt
  2. start a session around that prompt
  3. generate a round of candidate images
  4. provide feedback with the active mode controls
  5. submit feedback
  6. generate the next round
  7. review the session replay

Generation and feedback run asynchronously. That means the page stays responsive while the backend job is in progress.

3. Pages

Home

The home page shows:

Setup

The setup page lets you set:

That YAML block controls the sampler, updater, feedback mode, seed policy, candidate count, image settings, and other session-level strategy values.

Session

The session page lets you:

Replay

The replay page shows:

4. How to Use the Current MVP

Recommended usage:

  1. open the setup page
  2. start from a prompt you can easily recognize
  3. keep the default settings for your first run
  4. generate the first round
  5. use the currently selected feedback mode to express a clear preference
  6. submit feedback
  7. generate another round and compare how the state evolves

4.1 Progress and Status

When you generate a round or submit feedback, the session page shows:

The status text is phase-aware. You may see messages such as:

While work is running:

This is especially helpful with the real Diffusers backend, where image generation can take a noticeable amount of time.

5. Understanding the Candidate Cards

Each card shows:

The visible controls change with the selected feedback mode:

Feedback modes diagram

6. Understanding Replay

Replay is useful for:

7. Understanding Trace Reports

Each session also produces a backend-saved HTML trace report. It combines:

You can open it from the session page, or directly at /sessions/{session_id}/trace-report.

For a full worked example, generate the sample bundle with:

python scripts/create_real_e2e_example.py

That writes a complete example run under output/examples/real_e2e_example_run/.

8. Current Limitations

This prototype currently:

Trace data is persisted locally under data/traces/. Per-session reports are persisted under data/traces/sessions/<session_id>/report.html.

9. Best Practices