def table()

in benchmark/muse_table.py [0:0]


def table(df, device, batch_size):
    fdf = df[
        (df["Device"] == device)
        & (df["Use Xformers"] == True)
        & ((df["Use Fused Residual Norm"] == True) | (df["Use Fused Residual Norm"].isna()))
        & (df["Batch Size"] == batch_size)
    ]

    chart_values = {
        # "stable diffusion 1.5; timesteps 12": fdf[
        #     (fdf["Model Name"] == "stable_diffusion_1_5") & (fdf["Timesteps"] == "12")
        # ].iloc[0]["Median"],
        "stable diffusion 1.5; resolution 512; timesteps 20": fdf[
            (fdf["Model Name"] == "stable_diffusion_1_5") & (fdf["Timesteps"] == "20")
        ].iloc[0]["Median"],
        "sdxl; resolution 1024; timesteps 12": fdf[(fdf["Model Name"] == "sdxl") & (fdf["Timesteps"] == "12")].iloc[0][
            "Median"
        ],
        "sdxl; resolution 1024; timesteps 20": fdf[(fdf["Model Name"] == "sdxl") & (fdf["Timesteps"] == "20")].iloc[0][
            "Median"
        ],
        "ssd 1b; resolution 1024; timesteps 12": fdf[
            (fdf["Model Name"] == "ssd_1b") & (fdf["Timesteps"] == "12")
        ].iloc[0]["Median"],
        "ssd 1b; resolution 1024; timesteps 20": fdf[
            (fdf["Model Name"] == "ssd_1b") & (fdf["Timesteps"] == "20")
        ].iloc[0]["Median"],
        "wurst; resolution 1024; timesteps TODO": fdf[(fdf["Model Name"] == "wurst")].iloc[0]["Median"],
        "lcm; resolution 512; timesteps 4": fdf[(fdf["Model Name"] == "lcm") & (fdf["Timesteps"] == "4")].iloc[0][
            "Median"
        ],
        "lcm; resolution 512; timesteps 8": fdf[(fdf["Model Name"] == "lcm") & (fdf["Timesteps"] == "8")].iloc[0][
            "Median"
        ],
        "muse-256; resolution 256; timesteps 12": fdf[
            (fdf["Model Name"] == "muse") & (fdf["Resolution"] == 256) & (fdf["Timesteps"] == "12")
        ].iloc[0]["Median"],
        # "muse; resolution 256; timesteps 20": fdf[
        #     (fdf["Model Name"] == "muse") & (fdf["Resolution"] == 256) & (fdf["Timesteps"] == "20")
        # ].iloc[0]["Median"],
        "muse-512; resolution 512; timesteps 12": fdf[
            (fdf["Model Name"] == "muse") & (fdf["Resolution"] == 512) & (fdf["Timesteps"] == "12")
        ].iloc[0]["Median"],
        # "muse; resolution 512; timesteps 20": fdf[
        #     (fdf["Model Name"] == "muse") & (fdf["Resolution"] == 512) & (fdf["Timesteps"] == "20")
        # ].iloc[0]["Median"],
        "sd-turbo; resolution 512; timesteps 1": fdf[(fdf["Model Name"] == "sd_turbo")].iloc[0]["Median"],
        "sdxl-turbo; resolution 1024; timesteps 1": fdf[(fdf["Model Name"] == "sdxl_turbo")].iloc[0]["Median"],
    }

    chart_values = [x for x in chart_values.items()]
    chart_values = sorted(chart_values, key=lambda x: x[1])

    table = r"""
\begin{tabular}{|l|c|c|c|}
\hline
\textbf{ } & \textbf{inference time} & \textbf{timesteps} & \textbf{resolution} \\ \hline
"""

    for label, value in chart_values:
        # gross but we barely run this code
        model, resolution, timesteps = label.split(";")
        resolution = resolution.split(" ")[-1]
        timesteps = timesteps.split(" ")[-1]

        table += r"\textbf{" + f"{model}}} & {value} s & {timesteps} & {resolution}" + r" \\ \hline" + "\n"

    table += r"\end{tabular}"

    return table